- Концепт робота за следбенике линија
- Компоненте потребне
- Кружни дијаграм
- Програмирање Атмега16 за Лине Фолловер Робот
Овде ћемо градити још један пројекат са АВР Атмега16 микроконтролером. Ако сте нови у АВР микроконтролеру, можете се позвати на претходне АВР пројекте и упутства.
Изградња робота увек је узбуђење за све љубитеље електронике. А ово узбуђење се може максимизирати ако робот може аутоматски да ради неке ствари без икаквих спољних упутстава. Један од робота који најчешће граде електроничари је Лине Фолловер Робот. Као што му само име говори, робот ће пратити линију исцртану на површини. Линија не мора бити равна линија. Такође, линије могу бити било које боје.
Претходно смо изградили пројекте Лине Фолловер Робот користећи различите контролере:
- Робот за праћење линија помоћу микроконтролера 8051
- Робот за праћење линија помоћу ПИЦ микроконтролера
- Робот следбеник линије који користи Ардуино
- Лине Фолловер Робот који користи Распберри Пи
- Робот за следбенике линија помоћу МСП430 Лаунцхпад
Данас ћемо користити АВР микроконтролер за изградњу Робота који прати линију.
Углавном се ИР сензори користе за откривање линија. ИР сензори добро откривају беле или црне површине. Иако можете да користите друге софистициране сензоре који ће моћи да открију све боје и могу да направе робота који може да прати све линије боја. Робот треба да буде у стању да детектује линију чак и ако је путања промењена променом угла и настави да прати линију. Такође, требало би да се заустави где год зона заустављања долази у линији.
Роботи с следбеним линијама данас се увелико користе у производној индустрији, медицини, домаћој примени и складишту робе. Роботи нису ограничени само на ове апликације и могу их проширити у многим будућим апликацијама.
Концепт робота за следбенике линија
ИР сензори су кључни играч у овом пројекту. ИР сензори су постављени на предњу страну робота за праћење повучене црне линије и површине. Робот се поставља између линије и уз помоћ ИЦ сензора робот прати линију. ИЦ сензори повратно повезују очитавање са микроконтролером, а помоћу ИЦ очитавања микроконтролер помера моторе лево или десно и поново доводи робота на путању.
Лине Фолловер Робот је у могућности да прати линију уз помоћ ИЦ сензора. Овај сензор има ИР предајник и ИЦ пријемник. ИР предајник (ИР ЛЕД) преноси светлост, а пријемник (фотодиода) чека да се враћена светлост врати. ИЦ светло ће се вратити назад само ако га рефлектује површина. Док све површине не одражавају ИЦ светлост, само их бела површина у боји може у потпуности одбити, а површина црне боје у потпуности ће их посматрати као што је приказано на доњој слици. Овде сазнајте више о модулу ИР сензора.
Сада ћемо користити два ИР сензора да проверимо да ли је робот у трагу са линијом и два мотора да исправимо робота ако се помери са стазе. Ови мотори захтевају велику струју и требали би бити двосмерни; стога користимо моторни модул попут Л293Д. Такође ће нам требати микроконтролер попут АТмега16 који ће упутити моторе на основу вредности из ИР сензора. Поједностављени блок дијаграм истог приказан је у наставку.
Ова два ИР сензора биће постављена по један са обе стране линије. Ако ниједан сензор не детектује црну линију, тада АВР микроконтролер наређује моторима да се крећу напред као што је приказано доле
Ако леви сензор долази на црну линију, тада микроконтролер наређује роботу да скрене лево окретањем самог десног точка.
Ако десни сензор дође на црну линију, тада микроконтролер налаже роботу да се окрене десно окретањем самог левог точка.
Ако оба сензора дођу на црну линију, робот се зауставља.
На овај начин Робот ће моћи да прати линију без изласка из стазе. Сада да видимо како изгледају склоп и код.
Компоненте потребне
- ДЦ преносни мотори (2 јединице)
- Модул ИР сензора (2 јединице)
- Л293Д Модул
- Бежични извор напајања (нпр. Батерија, батерија напајања)
- Робот Цхаисес
- Атмега16 микроконтролер ИЦ
- Кристални осцилатор од 16 МХз
- Два кондензатора од 100 нФ
- Два кондензатора од 22 пФ
- Тастер
- Јумпер Вирес
- Бреадбоард
- УСБАСП в2.0 (за програмирање Атмега16)
Кружни дијаграм
Повежите све компоненте као што је приказано доле на дијаграму кола
Програмирање Атмега16 за Лине Фолловер Робот
Овде се Атмега16 програмира помоћу УСБАСП и Атмел Студио7.0. Ако не знате како Атмега16 може да се програмира помоћу УСБАСП-а, посетите везу. Комплетан програм је дат на крају пројекта, само отпремите програм у Атмега16 помоћу ЈТАГ програмера и Атмел Студио 7.0 као што је објашњено у претходном водичу.
Трудили смо се да код буде што краћи и једноставнији. Дакле, у овом коду користимо регистре макронаредби и посебних функција.
иф (бит_ис_цлеар (ПИНА , лефтСен)) { // проверити да ли је леви сензор ИСКЉУЧЕН
Ова изјава проверава да ли је ПА0 тамо где је повезан леви сензор ЛОВ или ХИГХ.
Ако желите да сазнате више о овој изјави и другим макроима, идите на ову везу
Постоје четири услова која следимо да бисмо читали ИР сензоре. ИР сензори су именовани према њиховом постављању испред робота. Леви ИР је леви сензор, а десни ИР десни сензор. Следећи услови ће одлучити о кретању робота.
Код смо написали према горе наведеним условима. Једина промена је та што користимо само две улазне иглице Л293Д за погон оба мотора.
Комплетни код са демонстрацијским видео записом дат је у наставку.