Направите овог робота за следбенике линија за пројекат сајма науке

Испробајте Наш Инструмент За Елиминисање Проблема





У овом посту сазнајемо како да направимо роботски круг следбеника линија користећи Ардуино, који ће прелазити преко посебно нацртаног распореда линија и верно ће га следити све док је сензорима доступан и може да га прати.

Аутор навнеет сајван



Шта је Робот следбеник линија

Аутономни робот је машина која може предузети низ радњи по упутству програмера, а да их човек не контролише ручно у реалном времену.

Линијски следбеници (ЛФР) су такође аутономни роботски аутомобили који се воде једним или више сензора и црном или белом линијом путање. Они чине основу модерних самовозећих аутомобила.



Као и сваки аутономни робот, следбеници линија имају јединицу за обраду сигнала и доношење одлука, сензоре и актуаторе. Ако сте почетник у роботици и желите да се тиме озбиљно позабавите, овде би требало да започнете. Почнимо да правимо.

За израду овог пројекта користио сам два инфрацрвена сензора и погон на сва три точка. Минимални број сензора који се може користити је један, а максимално осам је довољно за праћење линије засноване на ПИД-у.

Компоненте потребне:

Ардуино уно

Шасија

Два мотора на батерије (б.о.) И компатибилне гуме

Рицинусова лопта

Два инфрацрвена сензора

Модул возача мотора

Напајање

Ардуино ИДЕ софтвер

Сада, погледајмо наше компоненте:

АРДУИНО ОНЕ : Замислите то као контролну собу нашег робота. Сада постоји много много развојних плоча које су узете у обзир за овај пројекат, али Ардуино УНО једноставно није могао да се мери са другима. Није да је наш главни јунак био супериорнији у погледу својих вишедимензионалних карактеристика.

Да је то био случај, Распберри Пи и Интел Едисон би га ударили између очију. Најупечатљивији аргументи који су довели до избора Ардуино УНО формирани су комбинацијом карактеристика, цене, величине и захтева за пројекат.

Неки релевантни разлози су:

ВЕЛИЧИНА : Прилично је мали у поређењу са развојним плочама заснованим на Атмега16 или Атмега8, троши мало простора на шасији, тако да добијате компактан и прикладан бот.

Ово је заиста важно на такмичењима из роботике. Верујте ми да не бисте волели да лутате около са тим великим ружним ботом, мењајући места по читав дан.

Мање величине, бржи робот и ефикаснија окретања.

НАЈБОЉА ПРОТОТИПНА ТАБЛА : Несумњиво, Ардуино УНО има најбољу комбинацију карактеристика за израда прототипа . Једном када су ваши кругови на месту и ваш пројекат буде савршено функционисао, можете га заменити нечим мањим и јефтинијим попут Ардуино Нано и Аттини85 иц.

За оне који праве пратиоце линија за факултетске пројекте, предлажем да на крају замените УНО са Нано.

ШАСИЈА : То је оквир који држи све компоненте у положају. Постоји неколико тачака које треба узети у обзир приликом куповине нове шасије,

Требао би бити лаган и јак.

За пројекте је боље ако их купите на пијаци. Али ако се припремате за такмичење, топло препоручујем да прилагодите своје, имајући у виду димензије и захтеве такмичења.

Изаберите пластичну или дрвену шасију. Када метални оквири дођу у контакт са Ардуином, одређени број пинова се кратко споји. Ово је велики фактор на који се морате фокусирати док пазите на шасију.

Смањите шасију што је могуће ниже - ово даје стабилност боту.

МОТОРИ : Користите лагану батерију (Б.О.) д.ц. мотори.

ЦАСТОР БАЛЛ : Нормални точкићи омогућавају транслаторно кретање дуж једне осе, али је котачић дизајниран да се креће дуж било ког правца на површини. Даје нам погон на сва три точка.

Разлог за преферирање погона на три точка над 4 точка је због његовог релативно бржег окретања. Можда сте приметили циклус-рикше који се пробијају кроз саобраћај попут гмизаваца. Исти је случај и са нашим роботом.

СЕНЗОРИ : То је уређај који открива или мери било који физички параметар нашег окружења и претвара га у електричне сигнале. У овом случају откривени параметар су инфрацрвени зраци.

Сензори су изузетно битни за сваког робота. Па, ако је ардуино мозак нашег бота, сензори би могли играти улогу очију. Ево неколико ствари о сензорима:

Сензори морају бити оријентисани на начин који води (и) према земљи.

Требало би да буде постављено на предњи крај вашег бота.

Минимални размак између њих мора бити већи од ширине црне линије.

МОТОРНА ВОЗАЧКА ТАБЛА : Моторни покретачи су међуспремнички кругови који узимају нисконапонске сигнале за напајање мотора којима је потребан виши напон.

У нашем случају, Ардуино може да обезбеди довољан напон за погон мотора, али не може да пружи довољну струју. Ардуино УНО 5в и ГНД пинови имају тренутну оцену од 200мА, док било која ГПИО пинова има оцену од 40 мА. Ово је много ниже од мотора за покретање и заустављање који нам требају.

Постоје два покретача мотора која више волим за овај пројекат: Л298Н и Л293Д. Обоје су подједнако погодни за израду овог пројекта.

Иако, Л293Д је релативно јефтинији али има малу струју. Њихове везе су приближно исте. Пошто сам дао везе за обоје, потпуно је на вама како ћете направити бота.

НАПАЈАЊЕ :

Користите адаптер од 12 в или батерију (не више од 12 волти).

Постављање компонената (од предњег до задњег краја):

Сензори на челу вашег бота.

Точак у средини.

Мотори и гуме позади у једном реду.

Везе:

СЕНЗОРИ за АРДУИНО :

Повежите затик сензора са ардуино пином као што је приказано,

Осигурач сензораАрдуино пин
ВЦЦ (5в)
ГНД (Г)ГНД
ЛЕВИ СЕНЗОР ВАН (ДО)пин 6
ДЕСНИ СЕНЗОР ВАН (ДО)пин 7

Напомена: Да бисте проверили да ли су ваши сензори напајани, усмерите камеру мобилног телефона на ИЦ предајник. На екрану ћете видети ЛЕД лампицу која се не може видети голим очима. Неке модерне камере за мобилне телефоне имају инфрацрвени филтер. Дакле, молим вас узмите то у обзир.

МОТОР ДО МОТОРНИХ ВОЗАЧА:

Сваки мотор има два терминала која треба повезати са возачем мотора. Никада не покушавајте да их директно повежете са ардуином. Гледајући са задње стране свог бота, са моторима у вашој близини и удаљеним сензорима, повежите их на следећи начин:

МОТОРЛ298НЛ293Д
ЛИЈЕВИ МОТОРПИН 1 И 2ПИН 7 И 8
ДЕСНИ МОТОРПИН 13 И 14ПИН 9 И 10

МОТОРНИ ВОЗАЧ до АРДУИНО УНО:

МОТОРНИ ВОЗАЧ (Л298Н)АРДУИНО ОНЕ
ПИН 4ВИНО
ПИН 5ГНД
ПИН 6
ПИН 8 и ПИН 9ПИН 3 и ПИН 9
ПИН 10 и ПИН 11ПИН 5 и ПИН 10
ПИН 7 и ПИН 12
МОТОРНИ ВОЗАЧ (Л293Д)АРДУИНО ОНЕ
ПИН 3ВИНО
ПИН 2ГНД
ПИН 1
ПИН 5 И ПИН 6ПИН 3 и ПИН 9
ПИН 11 И ПИН 12ПИН 5 и ПИН 10
ПИН 4 и ПИН 5

НАПОМЕНА: Клинови 8 и 9 од л298н користе се за управљање мотором повезаним на 1 и 2. И, 10 и 11 управљачки мотор повезан са клиновима 13 и 14. Слично томе, клинови 5 и 6 од л293д се користе за управљање мотором повезаним са 7 и 8.И, 12 и 11 управљачки мотор повезан на пинове 9 и 10.

Ево нас људи, до краја дизајнерског дела. Још увек имамо кодирање, али пре тога ћемо проћи кроз принципе који омогућавају праћење линија.

Како ради инфрацрвени сензор:

Инфрацрвени сензори (ИР сензори) могу да се користе за осећање контраста у бојама и близине предмета. Принцип који лежи иза рада ИР сензора је прилично основни.

Као што видимо, има два ЛЕД-а - лед који емитује инфрацрвени зрак и фотодиоду. Они делују као пар предајник-пријемник. Када препрека дође испред емитерских зрака, они се одбијају назад и пресрећу их пријемник.

Ово генерише дигитални сигнал који се може напајати микроконтролерима и актуаторима да предузму неопходне мере у случају наилажења на препреку.

Основне физике нам кажу да црно тело апсорбује све електромагнетне зраке које на њега падају, док га бело тело рефлектује. Овај принцип користи пратилац линије како би направио разлику између беле и црне површине.

Како ради робот следбеник линија:

РАСПОРЕД ПРАКСЕ

У нормалном стању, робот се креће на такав начин да су оба сензора препланула, а црна линија усред оба сензора.

Програмирано је да окреће оба мотора тако да се бот креће у правцу напред.

Сасвим природно, како време пролази, један од два сензора долази преко црне линије.

Ако леви сензор дође преко линије, леви мотори се заустављају и као резултат бот почиње да се окреће улево, осим ако се леви сензор врати на белу површину и постигне се нормално стање.

Слично томе, када десни сензор дође преко црне линије, десни мотори се заустављају и следствено томе бот се сада окреће удесно, уколико се сензор не врати преко беле површине. Овај механизам окретања познат је под називом диференцијални погонски механизам.

ДИЈАГРАМ КОЛА:

ДЕТАЉИ О ОЖИЧЕЊУ:

ПРОГРАМИРАЊЕ И КОНЦЕПТИ:

Завршивши са делом кола, прећи ћемо на део за програмирање. У овом одељку ћемо разумети програм који контролише нашег робота. Ево кода: / *
Created and tested by Navneet Singh Sajwan
*Based on digital output of two sensors
*Speed control added
*/
int left, right
int value=250
void setup()
{
pinMode(6,INPUT)//left sensor
pinMode(7,INPUT)//right sensor
pinMode(9,OUTPUT)//left motor
pinMode(3,OUTPUT)//left motor
pinMode(10,OUTPUT)//right motor
pinMode(5,OUTPUT)//right motor
// Serial.begin(9600)
}
void read_sensors()
{
left=digitalRead(6)
right= digitalRead(7)
}
void move_forward()
{
analogWrite(9,value)//3,9 for left motor
digitalWrite(3,LOW)
analogWrite(10,value)//10,5 for right motor
digitalWrite(5,LOW)
}
void turn_left()
{
digitalWrite(9,LOW)//9,3 for left motor
digitalWrite(3,LOW)
analogWrite(10,value)//10,5 for right motor
digitalWrite(5,LOW)
}
void turn_right()
{
analogWrite(9,value)// 9,3 for left motor
digitalWrite(3,LOW)
digitalWrite(10,LOW)// 10,5 for right motor
digitalWrite(5,LOW)
}
void halt()
{
digitalWrite(9,LOW)// 9,3 for left motor
digitalWrite(3,LOW)
digitalWrite(10,LOW)// 10,5 for right motor
digitalWrite(5,LOW)
}
void print_readings()
{
Serial.print(' leftsensor')
Serial.print(' ')
Serial.print(left)
Serial.print('rightsensor')
Serial.print(' ')
Serial.print(right)
Serial.println()
}
void loop()
{
read_sensors()
while((left==0)&&(right==1)) // left sensor is over black line
{
turn_left()
read_sensors()
print_readings()
}
while((left==1)&&(right==0)) // right sensor is over black line
{
turn_right()
read_sensors()
print_readings()
}
while((left==0)&&(right==0)) // both sensors over the back line
{
halt()
read_sensors()
print_readings()
}
while((left==1)&&(right==1))// no sensor over black line
{
move_forward()
read_sensors()
print_readings()
}
}

Опис коришћених функција:

реад_сенсорс (): Потребна су очитавања оба сензора и похрањена у променљиве лево и десно.

мове_форвард (): Када ардуино изврши ову функцију, оба мотора се крећу у правцу напред.

турн_лефт (): Леви заустављачи мотора. Бот скреће лево.

турн_ригхт (): Десна заустављања мотора. Бот скреће десно.

зауставити (): Бот се зауставља.

принт_реадингс (): Приказује очитавања сензора на серијском монитору. За ово морате да коментаришете „Сериал.бегин (9600)“ у воид сетуп-у.

ЧИТАЊА СЕНЗОРА:

СЕНЗОР НАД ЛИНИЈОМЧИТАЊА СЕНЗОРА
ЛИЈЕВОЈЕЛ ТАКО
ЛЕВИ СЕНЗОР01
ДЕСНИ СЕНЗОР10
НИЈЕДАН11
ОБОЈЕ00

КОНТРОЛА БРЗИНЕ:

Понекад је брзина мотора толико велика да пре него што ардуино протумачи сигнале сензора, робот изгуби линију. Укратко, бот не прати линију због велике брзине и стално губи линију иако је алгоритам тачан.

Да бисмо избегли такве околности, смањујемо брзину бота користећи ПВМ технику. У горњем коду постоји променљива са именом валуе.

Само смањите нумеричку вредност у функцији да бисте смањили брзину. У Ардуино УНО можете имати само вредности пвм између 0 и 255.

аналогВрите (пин, вредност)

0<= value <=255

Ово је крај мог поста на линији следбеника. Надам се да је довољно детаљан да одговори на све ваше горуће упите, а ако у најређој стварности није, онда вам увек имамо на располагању одељак за коментаре. Коментирајте своје сумње. Срећно се петљајте!




Претходно: Роботски аутомобил којим управља мобилни телефон помоћу ДТМФ модула Следеће: Прекидач за укључивање / искључивање наизменичне мреже са контролисаном лозинком