Вериги

Как да изградим робот - Урок 3: Изграждане на робот за следене на линии: 16 стъпки

Age of Wonders 3 Let's Play

Age of Wonders 3 Let's Play

Съдържание:

Anonim

След като изпълним основните функции, вече сме готови да предоставим на робота Arduino подобрена възможност - Line-tracking!

В този урок ще ви научат стъпка по стъпка, за да направите робот за проследяване на линия Arduino. За да направите този урок лесен за следване, за пример се използва комплект робот Arduino (Pirate: 4WD Arduino Mobile Robot Kit с Bluetooth 4.0).

Меню уроци:

Урок 1: Въведение

Урок 2: Създайте основен робот Arduino

Урок 3: Изграждане на Arduino Robot

Урок 4: Изграждане на робот Arduino, който може да избегне препятствия

Урок 5: Изградете робот Arduino със светлинни и звукови ефекти

Урок 6: Изграждане на робот Arduino, който може да наблюдава околната среда

Урок 7: Изграждане на управляван с Bluetooth Arduino робот

Хардуерни части, от които се нуждаете:

Сензор за следене на линия за Arduino × 3

градина:

Етап 1:

Ширина 2.5CM Черна електрическа лента × 1

Стъпка 2:

1M * 1M Бяла дъска × 1

Стъпка 3:

M3 * 30MM Найлонова опора (винтове, гайки) × 3

Стъпка 4:

Инструкции за сглобяване

Не е трудно да се сглоби роботът Arduino. Моля, следвайте инструкциите по-долу.

Етап 1:

Първо, имате нужда от 3 найлонови опора и придружаващите ги винтове и гайки.

Стъпка 5:

Стъпка 2: Закрепване на найлоновите опори

Използвайки гайки, прикрепете найлоновите опори върху мини датчиците. Когато прикрепяте опорите, моля, обърнете внимание на тяхната посока: гайките и сондите трябва да са в една посока.

Стъпка 6:

Стъпка 3: Сглобяване на борда на сензора

Свалете горната плоча от роботизираната платформа. След това прикрепете панела на сензора към предната част на платформата.

Стъпка 7:

Стъпка 4: Сглобяване на сензора за проследяване на линия

Първо свържете сензора с проводника, предназначен за предаване на данни. След това използвайте винтовете М3, за да прикрепите сензорите към разширителната платка, която се издава от предната част на платформата.

Стъпка 8:

Свързване на хардуера

След като сглобите сензорите, не бързайте да поставите обратно горната плоча на платформата - преди да направите това, трябва първо да свържете сензорите с Romeo BLE.

Картината от лявата страна показва правилното ABC разположение на сензорите на борда на сензора, което съответства на щифтове 10, 9 и 8 на Romeo BLE. Когато свързвате сензорите, уверете се, че сте ги свързали в правилната последователност. След като свържете сензорите, поставете обратно горната плоча на платформата обратно на основата.

Стъпка 9:

Регулиране на сензорите

Преди да изтеглите кода, ние трябва да коригираме нашите сензори. Първо, включете USB кабела във вашия Romeo BLE (Arduino Robot Control Board с Bluetooth 4.0), за да го захранвате. Както се вижда на снимката по-долу, сензорът по-долу има глава за винт на Philips; тази глава на винта може да се използва за регулиране на разстоянието на сензора. Вземете бял лист хартия и го поставете под сондата на сензора (цветът на хартията се използва за целите на калибрирането). Вземете отвертка и я използвайте, за да затегнете винта на Philips. Ще почувствате, че сондата на сензора физически се движи нагоре и надолу в зависимост от това колко здраво сте затегнали главата на винта. Ще видите също и светодиодът на сензора да светне веднага след като сте започнали да затягате. Затегнете главата на винта, докато точката на сондата е около 2 см над лист хартия.

Стъпка 10:

кодиране на стоките

Включете USB. Изтеглете кода на Arduino, наречен “HuntingLineBlack.ino”, от GitHub. Кликнете върху бутона Upload (Качване) в Arduino IDE, за да качите кода на вашия BLE контролен борд.

Стъпка 11:

Конфигуриране на пътя на Arduino Robot

Извадете бялата си дъска. Използвайте 2,5 cm широка електрическа лента, за да изведете път на дъската, както е показано на долната снимка.

Стъпка 12:

Ширината на жицата е приблизително 2,5 см, приблизителното разстояние между сензорите А и С. Избрахме пътя по-горе по причини, свързани с кода; по-късен раздел ще обясни по-задълбочено това разсъждение.

Стъпка 13:

Предаване: Как работи

Как да накараме робота да остане на пътя си? Трябва да се уверим, че роботът е постоянно разположен в средата на пистата. Роботът използва 3-те си сензора за предаване, за да калибрира позицията си спрямо пистата - след като тя се завърти встрани, роботът ще се самонастрои обратно към средата.

Когато нашият робот се движи, ще се случат три условия.

Стъпка 14:

(а) Когато роботът първо започне да се движи по трасето, само средният сензор (B) открива черната линия - левият и десният сензори все още не са влезли в игра. Колата ще остане центрирана по протежение на пистата и ще продължи напред.

Стъпка 15:

б) След като продължи по пътя си, роботът може да започне да се отдалечава от центъра. При тези обстоятелства левият и десният сензор ще се опитат да открият черната линия и да насочат робота обратно към пистата. Например, ако роботът се насочи към дясната страна на пистата, колата ще трябва да се рецентрира, като се обърне наляво - левият сензор ще се задейства и автоматично ще завърти робота, докато той се центрира.

Стъпка 16:

(c) Обратно, ако роботът се върти към лявата страна на пистата, десният сензор ще се задейства и ще регулира пътя на робота, докато той се центрира.

Обобщение на кода

Няма нужда да обсъждаме основния код - нека разгледаме частта, свързана с предаването.

int RightValue; // Сензор за десен трактор на пин 8

int MiddleValue; // Сензор за среден трактор на пин 9

int LeftValue; // Сензор за ляв трактор на Pin 10

// четене на 3 пинови стойности на сензор за следене на линии

RightValue = digitalRead (8);

MiddleValue = digitalRead (9);

LeftValue = digitalRead (10);

Използвайте три променливи - RightValue, MiddleValue, LeftValue - за да запишете стойностите на 3-те сензора.

Функцията digitalRead (pin) се използва за отчитане на стойността на цифровия вход / изход. Ако тази част е все още неясна, моля, вижте нашето Ръководство за терминология или уебсайта на Arduino.

Когато средният сензор за предаване открие черна линия (пистата), тя ще произведе LOW енергия. Когато открият бяло пространство, те ще произвеждат ВИСОКАТА енергия.

Пример А по-долу илюстрира принципите на работа на предавателния код. Когато средният сензор открие черна линия (пистата), тя ще произведе LOW енергия. Когато лявото / дясното сензори открият празно пространство, те ще произвеждат висок изход.

if (MiddleValue == LOW) {// линия в средата Robot.Speed ​​(100,100); забавяне (10);}

иначе, ако ((LeftValue == HIGH) && (RightValue == HIGH)) {Robot.Speed ​​(100,100); забавяне (10);}

Ако сензорите открият черната линия / пистата вляво, като също така открият бяло пространство надясно, роботът ще завие наляво. Вижте Пример Б по-долу:

иначе ако ((LeftValue == LOW) && (RightValue == HIGH)) {Robot.Speed ​​(-100,100); // завиване наляво (10);}

Обратно, ако сензорите разпознаят черната линия / пътеката надясно, като също така открият бяло пространство вляво, роботът ще завие надясно. Вижте Пример C по-долу:

иначе, ако ((LeftValue == HIGH) && (RightValue == LOW)) {Robot.Speed ​​(100, -100); // завъртете надясно (10);}