- Необходими материали:
- Концепции на Line Follower
- Електрическа схема и обяснение:
- Програмиране на PIC микроконтролер:
- PIC Line Follower в действие:
Line Follower Robot е прост, но завладяващ робот за изграждане на повечето ученици / любители. В този урок ще научим как работи роботът за последовател на линии и как можем да го изградим с помощта на PIC Microcontroller PIC16F877A. PIC16F877A е 40-пинов многофункционален MCU от Microchip, ние използвахме тази интегрална схема в нашата пълна серия уроци по PIC. Ако сте нов, тук може да искате да разгледате тези уроци за PIC, за да научите основите на тази интегрална схема и как да качвате програми в микроконтролера. Тъй като вече разгледахме тази информация в нашите уроци, ще ги пропуснем в обяснението по-долу.
Ако се интересувате от роботика, трябва да сте добре запознати с името „ Line Follower Robot “. Този робот е способен да следва линия, само като използва двойка сензор и двигатели. Този робот ви дава място за безкрайно развитие и роботи като Kiva (робот на склад на Amazon) са пример за това. Можете също да проверите другите ни роботи за последователи на линии:
- Line Follower Robot с помощта на микроконтролер 8051
- Line Follower Robot, използващ Arduino
- Line Follower Robot с помощта на Raspberry Pi
Необходими материали:
- PIC16F877A
- IR сензор (2Nos)
- Двигател с постоянен ток (2Nos)
- L293D Двигател на двигателя
- Шезлонги (Можете също така да създадете свои собствени, като използвате картони)
- Банка за захранване (всеки наличен източник на захранване)
Концепции на Line Follower
Line Follower Robot е в състояние да проследява линия с помощта на IR сензор. Този сензор има IR предавател и IR приемник. IR предавателят (IR LED) предава светлината и приемникът (фотодиод) изчаква предадената светлина да се върне обратно. IR светлината ще се върне обратно само ако се отразява от повърхност. Докато всички повърхности не отразяват IR светлина, само бялата цветна повърхност може напълно да ги отразява, а черна цветна повърхност ще ги наблюдава напълно, както е показано на фигурата по-долу. Научете повече за модула за IR сензор тук.
Сега ще използваме два IR сензора, за да проверим дали роботът е в коловоза с линията и два мотора, за да коригираме робота, ако той се изнесе извън пистата. Тези двигатели изискват висок ток и трябва да бъдат двупосочни; следователно използваме модул на моторния драйвер като L293D. Ще ни трябва и микроконтролер като PIC, за да инструктира двигателите въз основа на стойностите от IR сензора. Опростена блок-схема на същото е показана по-долу.
Тези два IR сензора ще бъдат поставени един от двете страни на линията. Ако нито един от сензорите не ги разпознае черна линия, микроконтролерът PIC инструктира двигателите да се движат напред, както е показано по-долу
Ако левият сензор идва на черна линия, тогава микроконтролерът инструктира робота да завие наляво, като завърти дясното колело сам.
Ако десният сензор идва на черна линия, тогава микроконтролерът инструктира робота да се обърне надясно, като завърти само лявото колело.
Ако и двата сензора са на черна линия, роботът спира.
По този начин Роботът ще може да следва линията, без да излиза извън пистата. Сега нека видим как изглежда веригата и кода.
Електрическа схема и обяснение:
Пълната схема на веригата за този базиран на PIC Line Follower Robot е показана по-долу
Схемата използва два IR сензора и двойка мотори с постоянен ток, заедно с модул за задвижване на двигателя, както е показано по-горе. Модулът на двигателния двигател, използван в този проект, е L293D, ще ни трябва двигател, тъй като изходният щифт на микроконтролера PIC не може да подаде достатъчно ток, за да задвижат двигателите. Този модул ще се захранва директно от източника на захранване (5V), както е показано в схемата. Модулът има четири щифта (два за всеки двигател), които са свързани към PIC за управление на посоката на двигателите. Разполагаме и с два IR сензора, които действат като вход към PIC микроконтролера. Тези сензори ще се издигнат високо (1), ако са над бяла повърхност и ще се понижат (0), когато са над черна повърхност. Пълните връзки на щифтовете са илюстрирани в таблицата по-долу.
S.No |
Свързан от |
Свързан с |
1 |
IR сензор Ляв външен щифт |
RD2 (щифт 21) |
2 |
IR сензор Десен външен щифт |
RD3 (щифт 22) |
4 |
Двигател 1 Канал A щифт |
RC4 (щифт 23) |
5 |
Двигател 1 Канал B щифт |
RC5 (щифт 25) |
6 |
Двигател 2 Канал A щифт |
RC6 (щифт 26) |
7 |
Двигател 2 Канал B щифт |
RC7 (щифт 27) |
В действителния хардуер съм използвал захранваща банка, която ще даде изход от + 5V директно през своя USB порт; следователно заобиколих регулатора на напрежение 7805 и захранвах PIC, сензорите и двигателите, използвайки същото. Можете да направите същото като използвате 12V батерия заедно с регулатор, както е показано в схемата.
Програмиране на PIC микроконтролер:
След като сте готови с вашия хардуер, е време да започнете да програмирате. Най- пълната програма на този PIC линия Последовател робот проект се дава в края на тази страница. Важните парчета обаче са обяснени по-долу.
Инициализирайте I / O щифтовете чрез следващите редове. Двата щифта на IR сензора действат като входни, а четирите моторни щифта действат като изходни щифтове.
TRISD2 = 1; TRISD3 = 1; // Измийте щифтовете на IR сензора се декларират като вход TRISC4 = 0; TRISC5 = 0; // пинове на мотор 1, декларирани като изход TRISC6 = 0; TRISC7 = 0; // Двигател 2 щифта, декларирани като изход
Сега трябва да прочетем състоянието както на IR сензора, така и да управляваме двигателя съответно. Например, ако и двата сензора са високи (не попадат под черна линия), тогава преместваме двата мотора напред, както е показано в програмата по-долу.
if (RD2 == 1 && RD3 == 1) // И двата сензора не са над ограничителната линия {RC4 = 0; RC5 = 1; // Двигател 1 напред RC6 = 1; RC7 = 0; // Двигател 2 напред}
Ако левият сензор минава през черната линия, ние правим завой надясно, като държим мотора 1 неподвижен и завъртаме мотора 2 в посока напред. Този тип струговане се нарича диференциално струговане.
иначе ако (RD2 == 0 && RD3 == 1) // Лявият сензор е над черна линия {RC4 = 1; RC5 = 1; // Двигател 1 стоп RC6 = 1; RC7 = 0; // Двигател 2 напред}
По същия начин, ако десният сензор минава през черната линия, тогава ботът е направен да направи ляв завой, като държи втория мотор неподвижен и завърта първия мотор сам в посока напред, както е показано по-долу.
иначе ако (RD2 == 1 && RD3 == 0) // Десният сензор е над черна линия {RC4 = 0; RC5 = 1; // Двигател 1 напред RC6 = 1; RC7 = 1; // спиране на двигател 2}
И накрая, ако и двата сензора попаднат под черна линия, е време да спрете бота. Това може да се направи, като се направят всички щифтове на двата мотора високи. Кодът, който прави същото, е показан по-долу
else // И двата сензора над черна линия {RC4 = 1; RC5 = 1; // Двигател 1 стоп RC6 = 1; RC7 = 1; // спиране на двигател 2}
Това е, че програмата е готова и може да бъде качена в PIC с помощта на всеки програмист като PicKit.
PIC Line Follower в действие:
След като хардуерът и кодът са готови, е време за някои действия. Както казах по-рано, аз използвах Power Bank за захранване на бота, така че всичко, което трябва да направя, е просто да свържа захранващата банка към бота, който има настроен хардуер и вече качен код.
Платката PIC Perf е направена за нашата серия уроци по PIC, в която научихме как да използваме PIC микроконтролера. Може да искате да се върнете към тези уроци за PIC Microcontroller, използващи MPLABX и XC8, ако не знаете как да запишете програма с помощта на Pickit 3, тъй като ще пропусна цялата тази основна информация.
Сега просто стартирайте бота над черна линия и трябва да го гледате следвайки линията.
В началото може да срещнете някои трудности, в този случай прочетете по-нататък. Ако колелата се въртят в противоположна посока, просто разменете полярността на двигателя, който колелото се върти в обратна посока. Ако ботът се отклонява от линията, сменете IR сензора и всичко трябва да е добро.
Пълната работа на бота може да бъде намерена във видеото, дадено по-долу. Надявам се проектът да ви хареса и да ви хареса да изградите нещо подобно. Ако имате проблем с това да работи, можете да ги публикувате в раздела за коментари по-долу, за да го разрешите, или да използвате нашите форуми за обсъждане на техническо съдържание.