- Koncept robota sljedbenika linija
- Komponente potrebne
- Kružni dijagram
- Programiranje Atmega16 za Line Follower Robot
Ovdje ćemo graditi još jedan projekt s AVR Atmega16 mikrokontrolerom. Ako ste novi u AVR mikrokontroleru, možete se pozvati na prethodne AVR projekte i upute.
Izgradnja robota uvijek je uzbuđenje za sve ljubitelje elektronike. A ovo uzbuđenje može se maksimizirati ako robot može automatski raditi neke stvari bez ikakvih vanjskih uputa. Jedan od najčešće izrađenih robota kod početnika elektronike je Line Follower Robot. Kao što mu samo ime govori, robot će slijediti crtu nacrtanu na površini. Linija ne mora biti ravna crta. Također, linije mogu biti bilo koje boje.
Prethodno smo izgradili projekte Line Follower Robot koristeći različite kontrolere:
- Robot za sljedbenike linija pomoću mikrokontrolera 8051
- Robot sljedbenik crte pomoću PIC mikrokontrolera
- Robot sljedbenik crte koji koristi Arduino
- Robot sljedbenik linija koji koristi Raspberry Pi
- Robot sljedbenik linija koji koristi MSP430 Launchpad
Danas ćemo koristiti AVR mikrokontroler za izgradnju Robota sljedbenika linija.
Uglavnom se IR senzori koriste za otkrivanje linija. IR senzori su dobri u otkrivanju bijelih ili crnih površina. Iako možete koristiti druge sofisticirane senzore koji će moći prepoznati sve boje i mogu napraviti robota koji može pratiti sve linije boja. Robot bi trebao moći otkriti liniju, čak i ako se putanja promijeni promjenom kuta, te nastaviti pratiti liniju. Također, trebalo bi se zaustaviti gdje god zona zaustavljanja dolazi u liniji.
Roboti s linijskim sljedbenicima danas se uvelike koriste u proizvodnoj industriji, medicini, domaćoj primjeni i skladištu robe. Roboti nisu ograničeni samo na ove aplikacije i mogu ih proširiti u mnogim budućim aplikacijama.
Koncept robota sljedbenika linija
IR senzori su ključni igrač u ovom projektu. IR senzori postavljeni su na prednju stranu robota za praćenje povučene crne crte i površine. Robot je smješten između linije i uz pomoć IR senzora robot prati liniju. IR senzori povratno očitavaju mikrokontroler i uz pomoć IR očitanja mikrokontroler pomiče motore lijevo ili s desne strane i ponovno dovodi robota na put.
Line Follower Robot je u mogućnosti pratiti liniju uz pomoć IR senzora. Ovaj senzor ima IR odašiljač i IR prijemnik. IR odašiljač (IR LED) prenosi svjetlost, a prijemnik (fotodioda) čeka da se vraćena svjetlost vrati. IR svjetlo vratit će se nazad samo ako ga reflektira površina. Dok sve površine ne odražavaju IR svjetlost, samo ih bijela površina boje može u potpunosti odbiti, a površina crne boje u potpunosti će ih promatrati kako je prikazano na donjoj slici. Ovdje saznajte više o modulu IR senzora.



Sada ćemo upotrijebiti dva IR senzora da provjerimo je li robot u tragu s linijom i dva motora za ispravljanje robota ako se pomakne s kolosijeka. Ovi motori zahtijevaju veliku struju i trebali bi biti dvosmjerni; stoga koristimo modul motornog pogona poput L293D. Trebat će nam i mikrokontroler poput ATmega16 za podučavanje motora na temelju vrijednosti iz IR senzora. Pojednostavljeni blok dijagram istog prikazan je u nastavku.
Ova dva IR senzora bit će postavljena jedan s obje strane crte. Ako niti jedan senzor ne prepozna crnu crtu, tada AVR mikrokontroler upućuje motore da se pomaknu naprijed kako je prikazano dolje

Ako lijevi senzor dolazi na crnu crtu, tada mikrokontroler nalaže robotu da skrene ulijevo okrećući samo desni kotačić.

Ako desni senzor dolazi na crnu crtu, tada mikrokontroler upućuje robota da skrene udesno okrećući samo lijevi kotačić.

Ako oba senzora dođu na crnu liniju, robot se zaustavlja.

Na taj će način Robot moći pratiti liniju bez izlaska iz staze. Sada da vidimo kako izgledaju sklop i kod.
Komponente potrebne
- Istosmjerni motori (2 jedinice)
- Modul IR senzora (2 jedinice)
- L293D modul
- Bežični izvor napajanja (npr. Baterija, banka napajanja)
- Ležaljke robota
- Atmega16 mikrokontroler IC
- Kristalni oscilator od 16 MHz
- Dva kondenzatora od 100 nF
- Dva kondenzatora od 22pF
- Pritisnite tipku
- Jumper žice
- Breadboard
- USBASP v2.0 (za programiranje Atmega16)
Kružni dijagram
Spojite sve komponente kako je prikazano dolje na shemi spojeva

Programiranje Atmega16 za Line Follower Robot
Ovdje je Atmega16 programiran pomoću USBASP-a i Atmel Studio7.0. Ako ne znate kako se Atmega16 može programirati pomoću USBASP-a, posjetite vezu. Kompletni program dat je na kraju projekta, samo prenesite program u Atmega16 pomoću JTAG programera i Atmel Studio 7.0 kako je objašnjeno u prethodnom vodiču.
Pokušali smo da kôd bude što kraći i jednostavniji. Dakle, u ovom kodu koristimo makronaredbe i posebne registre funkcija.
if (bit_is_clear (PINA , leftSen)) { // provjeri je li lijevi senzor ISKLJUČEN
Ova izjava provjerava je li PA0 tamo gdje je spojen lijevi senzor LOW ili HIGH.
Ako želite saznati više o ovoj izjavi i drugim makronaredbama, idite na ovu vezu
Četiri su uvjeta koja slijedimo kako bismo čitali IR senzore. IR senzori su imenovani prema njihovom smještaju ispred Robota. Lijevi IR je lijevi senzor, a desni IR desni senzor. Sljedeći uvjeti odlučit će o kretanju robota.

Kod smo napisali prema gore navedenim uvjetima. Jedina promjena je u tome što za pogon oba motora koristimo samo dvije ulazne iglice L293D.
Kompletni kôd s demonstracijskim videom dat je u nastavku.
