- Необходими материали:
- Концепции на Line Follower
- Схема и обяснение на робот на последовател на Raspberry Pi Line и обяснение:
- Програмиране на вашия Raspberry PI:
- Raspberry Pi Line Follower в действие:
Както всички знаем, Raspberry Pi е прекрасна платформа за развитие, базирана на ARM микропроцесор. Със своята голяма изчислителна мощност и възможности за развитие той може да направи чудеса в ръцете на любителите на електрониката или студентите. За да научите повече за Raspberry Pi и как работи, нека опитаме да изградим Line Follower Robot с помощта на Raspberry Pi.
Ако се интересувате от роботика, трябва да сте добре запознати с името „ Line Follower Robot “. Този робот е способен да следва линия, само като използва двойка сензор и двигатели. Може да не звучи ефективно да използвате мощен микропроцесор като Raspberry Pi за изграждане на обикновен робот. Но този робот ви дава място за безкрайно развитие и роботи като Kiva (робот на склад на Amazon) са пример за това. Можете също да проверите другите ни роботи за последователи на линии:
- Line Follower Robot с помощта на микроконтролер 8051
- Line Follower Robot, използващ Arduino
Необходими материали:
- Raspberry Pi 3 (всеки модел трябва да работи)
- IR сензор (2Nos)
- Двигател с постоянен ток (2Nos)
- L293D Двигател на двигателя
- Шезлонги (Можете също така да създадете свои собствени, като използвате картони)
- Банка за захранване (всеки наличен източник на захранване)
Концепции на Line Follower
Line Follower Robot е в състояние да проследява линия с помощта на IR сензор. Този сензор има IR предавател и IR приемник. IR предавателят (IR LED) предава светлината и приемникът (фотодиод) изчаква предадената светлина да се върне обратно. IR светлината ще се върне обратно само ако се отразява от повърхност. Докато всички повърхности не отразяват IR светлина, само бялата цветна повърхност може напълно да ги отразява, а черна цветна повърхност ще ги наблюдава напълно, както е показано на фигурата по-долу. Научете повече за модула за IR сензор тук.
Сега ще използваме два IR сензора, за да проверим дали роботът е в коловоза с линията и два мотора, за да коригираме робота, ако той се изнесе извън пистата. Тези двигатели изискват висок ток и трябва да бъдат двупосочни; следователно използваме модул на моторния драйвер като L293D. Ще ни трябва и изчислително устройство като Raspberry Pi, за да инструктира двигателите въз основа на стойностите от IR сензора. Опростена блок-схема на същото е показана по-долу.
Тези два IR сензора ще бъдат поставени един от двете страни на линията. Ако никой от сензорите не открие черна линия, той PI инструктира двигателите да се движат напред, както е показано по-долу
Ако левият сензор идва на черна линия, PI инструктира робота да се обърне наляво, като завърти дясното колело сам.
Ако десният сензор идва на черна линия, PI инструктира робота да се обърне надясно, като завърти само лявото колело.
Ако и двата сензора са на черна линия, роботът спира.
По този начин Роботът ще може да следва линията, без да излиза извън пистата. Сега нека видим как изглежда веригата и кода.
Схема и обяснение на робот на последовател на Raspberry Pi Line и обяснение:
Пълната схема на веригата за този робот за последователи на Raspberry Pi е показана по-долу
Както можете да видите схемата включва два IR сензора и двойка двигатели, свързани към Raspberry pi. Цялата верига се захранва от мобилна банка за захранване (представена от AAA батерия в схемата по-горе).
Тъй като подробностите за щифтовете не са споменати на Raspberry Pi, трябва да проверим щифтовете, като използваме долната снимка
Както е показано на снимката, горният ляв ъглов щифт на PI е + 5V щифт, ние използваме този + 5V щифт за захранване на IR сензорите, както е показано на електрическата схема (червена жична). След това свързваме заземителните щифтове към масата на IR сензора и модула на драйвера на двигателя с помощта на черна жица. В жълт проводник се използва за свързване на пин на сензора 1 и 2 към щифтовете GPIO и 3 съответно.
За да задвижваме двигателите, са ни необходими четири щифта (A, B, A, B). Тези четири щифта са свързани съответно от GPIO14,4,17 и 18. Оранжевата и бялата жица заедно образуват връзката за един двигател. Имаме две такива двойки за два двигателя.
Двигателите са свързани към модула L293D Motor Driver, както е показано на снимката, а модулът на драйвера се захранва от захранваща банка. Уверете се, че земята на захранващата банка е свързана със земята на Raspberry Pi, само тогава връзката ви ще работи.
Програмиране на вашия Raspberry PI:
След като приключите със сглобяването и връзките, вашият робот трябва да изглежда нещо подобно.
Сега е време да програмираме нашия бот и да го стартираме. Пълният код за този бот може да бъде намерен в долната част на този урок. Научете повече за Програмиране и стартиране на код в Raspberry Pi тук. Важните редове са обяснени по-долу
Ще импортираме GPIO файл от библиотеката, функцията по-долу ни позволява да програмираме GPIO пинове на PI. Преименуваме също „GPIO“ на „IO“, така че в програмата, когато искаме да се позовем на GPIO щифтове, ще използваме думата „IO“.
импортирайте RPi.GPIO като IO
Понякога, когато GPIO щифтовете, които се опитваме да използваме, може да изпълняват някои други функции. В този случай ще получим предупреждения, докато изпълняваме програмата. Командата по-долу казва на PI да игнорира предупрежденията и да продължи с програмата.
IO.setwarnings (False)
Можем да отнесем GPIO пиновете на PI, или чрез пинов номер на борда, или чрез номера на тяхната функция. Подобно на „ПИН 29“ на платката е „GPIO5“. Така че ние казваме тук, или ще представим щифта тук с '29' или '5'.
IO.setmode (IO.BCM)
Задаваме 6 щифта като входни / изходни щифтове. Първите два щифта са входните щифтове за четене на IR сензора. Следващите четири са изходните щифтове, от които първите два се използват за управление на десния мотор, а следващите два за левия мотор.
IO.setup (2, IO.IN) #GPIO 2 -> Ляв IR изход IO.setup (3, IO.IN) #GPIO 3 -> Десен IR изход IO.setup (4, IO.OUT) #GPIO 4 - > Двигател 1 клема A IO.setup (14, IO.OUT) #GPIO 14 -> Двигател 1 клема B IO.setup (17, IO.OUT) #GPIO 17 -> Двигател ляв терминал A IO.setup (18, IO.OUT) #GPIO 18 -> Клема B на двигателя отляво
IR сензорът извежда „True“, ако е над бяла повърхност. Така че, докато и двата сензора казват True, можем да продължим напред.
if (IO.input (2) == True и IO.input (3) == True): # и двете бели се движат напред IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO. output (18, False) # 2B-
Трябва да направим десен завой, ако първият IR сензор се появи над черна линия. Това се прави чрез четене на IR сензора и ако условието е изпълнено, спираме десния мотор и завъртаме само левия мотор, както е показано в кода по-долу
elif (IO.input (2) == False и IO.input (3) == True): # обърнете се надясно IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, Вярно) # 2A + IO. Изход (18, False) # 2B-
Трябва да направим ляв завой, ако вторият IR сензор минава през черна линия. Това става чрез четене на IR сензора и ако условието е изпълнено, спираме левия мотор и въртим сами десния мотор, както е показано в кода по-долу
elif (IO.input (2) == True и IO.input (3) == False): # завъртете наляво IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, Вярно) # 2A + IO. Изход (18, Вярно) # 2B-
Ако и двата сензора преминават през черна линия, това означава, че роботът трябва да спре. Това може да се направи, като и двете клеми на двигателя бъдат верни, както е показано на кода по-долу
else: #stay still IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Raspberry Pi Line Follower в действие:
Качете python кода за последовател на редове на вашия Raspberry Pi и го стартирайте. Имаме нужда от преносимо захранване, в този случай захранваща банка става удобна, следователно използвах същото. Този, който използвам, се доставя с два USB порта, така че използвах за захранване на PI, а другия към Power Motor Driver, както е показано на снимката по-долу.
Сега всичко, което трябва да направите, е да настроите своя собствена черна цветна писта и да пуснете своя бот над нея. Използвал съм черна цветна изолационна лента, за да създам песента, в която можете да използвате всеки черен цветен материал, но се уверете, че основният ви цвят не е тъмен.
Пълната работа на бота може да бъде намерена във видеото, дадено по-долу. Надявам се, че сте разбрали проекта и ви е било приятно да го изградите. Ако имате въпроси, публикувайте ги в раздела за коментари по-долу.