• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Как построить свой первый робот с Raspberry Pi

 

 

Этот урок покажет вам, как создать робота на основе языка  python, который избегает препятствия и свободно перемещается. Система использует инфракрасные модули для обнаружения объектов.

 

Компоненты робота Raspberry Pi

.

Вся система избегает столкновения с препятствиями благодаря встроенным датчикам. Здесь этот робот использует два инфракрасных сенсорных модуля, которые могут обнаруживать объекты в диапазоне 5-6 см. Этот датчик выдает цифровой сигнал LOW (0 В), если в пределах его диапазона находится объект. И выдает цифровой сигнал HIGH (5 В) в противном случае.

 

ИК-датчик на Raspberry Pi

в роботе

 

Так как же работают эти ИК-датчики? Эти модули состоят из пары ИК-светодиодов приемника и передатчика. Когда объект попадает на ИК-датчик, поверхность объекта отражает часть ИК-света обратно к приемнику. Таким образом, приемник выдает сигнал LOW, уведомляющий о том, что объект находится перед датчиком.

 

Raspberry Pi-робот

 

Датчики подключены к входным контактам GPIO Raspberry Pi. Затем pi, используя скрипт python, проверяет, не уменьшены ли контакты GPIO, подключенные к ИК-датчикам. Если он пойдет на низком уровне, то он приказывает двигателям постоянного тока сначала двигаться в обратном направлении, а затем поворачиваться. Более того, этот робот сначала активируется, когда мы нажимаем кнопку на макете, после чего Raspberry Pi управляет двигателями постоянного тока, чтобы двигаться вперед через плату драйвера L293D.

 

 

Raspberry Pi GPIO

 

Во-первых, вам нужно включить свой Raspberry Pi после подключения к монитору, клавиатуре и т. Д. Затем мы должны проверить ИК-модули датчиков. Для этого подключите ИК-модули к вашей Raspberry Pi, как показано на следующей схеме. Подайте питание на датчик, подав 5V (+ pin), GND (- pin) из Raspberry Pi. Подключите контакт B на датчиках к контактам 3 GPIO pIO GPI pi. Вы можете проверить вывод pin GPI pasp, как показано на схеме контактов. Мы используем конфигурацию GPIO.BOARD, что означает, что выводы нумеруются в соответствии с их обычным порядком на плате (1,2,3, ..). Прочитайте конфигурацию контактов на сенсорном модуле и подключите соответственно.

 

Схема подключения - ИК-датчик Raspberry Pi

 

Затем вам нужно скопировать и вставить следующий код и сохранить его как файл python irtest.py:

 

import RPi.GPIO as GPIO

import time

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BOARD)

GPIO.setup(3, GPIO.IN)                            #Right sensor connection

GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP) #Left sensor connection

while True:

          i=GPIO.input(3)                         #Reading output of right IR sensor

          j=GPIO.input(16)                        #Reading output of left IR sensor

          if i==0:                                #Right IR sensor detects an object

               print "Obstacle detected on Left",i

               time.sleep(0.1)

          elif j==0:                              #Left IR sensor detects an object

print "Obstacle detected on Right",j

               time.sleep(0.1)

После сохранения этого файла и его запуска: «sudo python irtest.py». Вы заметите, что когда вы блокируете датчик рукой, на экране появляется следующий вывод:

 

Выход ИК-датчика от python

 

После тестирования модулей ИК-датчиков, вам необходимо подключить и протестировать модуль L293D и двигатели. Включите модуль L293D, подключив + и - штырьки платы к батарее 9 В. Также подключите «-» платы к GND Raspberry Pi. Вы можете обратиться к схеме подключения здесь для завершения соединений:

 

Схема подключения робота Raspberry Pi

 

Затем вы должны предоставить входные данные для платы. Четыре выходных контакта GPIO от Raspberry Pi управляют направлением вращения двух двигателей. Затем два вывода двигателей подключаются к 4 выходным клеммам платы. Затем двигатели, в зависимости от команды от Raspberry Pi, питаются от батареи 9 В. Логика управления двигателями из Raspberry Pi приведена ниже:

 

Логическая схема управления Raspberry Pi L293D

 

Здесь HIGH означает сигнал 5V или цифровой 1, а LOW - 0V или цифровой 0. Например: GPIO.output (5,1), эта команда посылает сигнал HIGH (цифровой 1), чтобы вывести 5 на пине Raspberry Pi. Таким образом, направление каждого мотора можно контролировать, записывая сигналы HIGH / LOW через два вывода GPIO из pasp pi. Затем вам нужно направить нажимную кнопку Raspberry Pi, как показано на приведенной выше схеме соединений. Эта кнопка используется для активации робота. После подключения робота вам нужно прикрепить колеса. Используйте двустороннюю ленту для фиксации деталей на шасси робота. После этого у вас будет еонструкция, которая выглядит примерно так:

 

Сборка робота Raspberry Pi

 

После подключения двигателей вам необходимо их проверить. Используйте приведенный ниже код для проверки двигателей и L293D. Убедитесь, что вы подключили плату драйвера (L293D) и подключены согласно приведенной выше схеме. После этого скопируйте приведенный ниже код и сохраните его как файл python: motor.py на вашем paspberry pi. Затем запустите его с помощью команды: sudo python motor.py. Вы заметите, что оба двигателя сначала вращаются в одном направлении, а затем через секунду вращаются в противоположном направлении. Этот процесс повторяется, пока вы его не прерываете.


 import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD)

GPIO.setup(5,GPIO.OUT)   #Left motor input A

GPIO.setup(7,GPIO.OUT)   #Left motor input B

GPIO.setup(11,GPIO.OUT)  #Right motor input A

GPIO.setup(13,GPIO.OUT)  #Right motor input B

GPIO.setwarnings(False)

 

while True:

        print "Rotating both motors in clockwise direction"

        GPIO.output(5,1)

        GPIO.output(7,0)

        GPIO.output(11,1)

        GPIO.output(13,0)

        time.sleep(1)     #One second delay

 

        print "Rotating both motors in anticlockwise direction"

        GPIO.output(5,0)

        GPIO.output(7,1)

        GPIO.output(11,0)

        GPIO.output(13,1)

        time.sleep(1)     

#One second delay

После завершения всех настроек оборудования вам необходимо загрузить и скопировать эту программу на Python отсюда на ваш paspberry pi. Эта программа , называемая : robot.py , выполняется с помощью команды: sudo python robot.py. Она оживит ваш робот, и он начнет двигаться, когда вы нажмете кнопку. И вы заметите, как он избегает объекты перед своими датчиками и свободно перемещается.

 

Raspberry Pi робот

 

Всякий раз, когда ваши ИК-модули обнаруживают объект в пределах 5 см перед ним, они сообщают Raspberry Pi, что объект находится рядом с ним (отправка цифровых сигналов LOW). Затем pi посылает команды двигателю, заставляя его двигаться в обратном направлении, а затем поворачивая вправо / влево, и снова робот движется вперед, уклоняясь от объекта. Робот активируется, когда мы снова нажимаем кнопку.После копирования кода на свой Raspberry Pi, вы можете сделать его по-настоящему беспроводным, используя для этого аккумулятор для смартфонов. И USB-ключ для Wi-Fi, чтобы общаться с ним.

 

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 379



          

Радио для всех© 2024