- Begrebet Line Follower Robot
- Komponenter, der kræves
- Kredsløbsdiagram
- Programmering Atmega16 til Line Follower Robot
Her skal vi bygge endnu et projekt med AVR Atmega16 Microcontroller. Hvis du er ny på AVR-mikrocontrollere, kan du henvise til tidligere AVR-projekter og tutorials.
At bygge en robot er altid en spænding for alle elektronikhobbyister. Og denne spænding kan maksimeres, hvis robotten automatisk kan gøre nogle ting uden nogen eksterne instruktioner. En af de mest almindeligt byggede robotter af elektronikbegyndere er Line Follower Robot. Som navnet antyder, vil robotten følge linjen tegnet på overfladen. Linjen behøver ikke at være en lige linje. Linjer kan også have enhver farve.
Vi har tidligere bygget Line Follower Robot-projekter ved hjælp af forskellige controllere:
- Line Follower Robot ved hjælp af 8051 Microcontroller
- Line Follower Robot ved hjælp af PIC Microcontroller
- Line Follower Robot ved hjælp af Arduino
- Line Follower Robot ved hjælp af Raspberry Pi
- Line Follower-robot ved hjælp af MSP430 Launchpad
I dag bruger vi AVR-mikrocontroller til at opbygge en Line follower-robot.
For det meste bruges IR-sensorer til at detektere linjer. IR-sensorer er gode til at registrere hvide eller sorte overflader. Selvom du kan bruge andre sofistikerede sensorer, som er i stand til at detektere alle farver og kan lave en robot, der kan følge alle farve linjer. Robotten skal være i stand til at registrere linie, selvom stien ændres ved at ændre vinklen og fortsætte med at følge linjen. Det skal også stoppe, hvor stopzonen kommer i linjen.
Line follower-robotter bruges i vid udstrækning nu om dagen i fremstillingsindustrien, medicinske, indenlandske applikationer og varelager. Robotterne er ikke begrænset til kun disse applikationer og kan udvide sine applikationer i mange fremtidige applikationer.
Begrebet Line Follower Robot
IR-sensorer er nøglespiller i dette projekt. IR-sensorer er placeret foran på robotten for at spore den trukkede sorte linje og overfladen. Robotten placeres imellem linjen og ved hjælp af IR-sensorer holder robotten styr på linjen. IR-sensorer giver feedback til aflæsningen til mikrokontroller, og ved hjælp af IR-aflæsning bevæger mikrokontrolleren motorerne til venstre eller højre side og bringer robotten igen til stien.
Line Follower Robot er i stand til at spore en linje ved hjælp af en IR-sensor. Denne sensor har en IR-sender og en IR-modtager. IR-senderen (IR-LED) sender lyset, og modtageren (fotodiode) venter på, at det transmitterede lys vender tilbage. Et IR-lys vender kun tilbage, hvis det reflekteres af en overflade. Mens alle overflader ikke reflekterer et IR-lys, kan kun farveoverfladen reflektere dem helt hvidt, og sort farveoverflade vil helt observere dem som vist i nedenstående figur. Lær mere om IR-sensormodul her.
Nu bruger vi to IR-sensorer til at kontrollere, om robotten er på sporet af linjen og to motorer til at rette robotten, hvis den bevæger sig ud af sporet. Disse motorer kræver høj strøm og skal være tovejs; derfor bruger vi et motordrivermodul som L293D. Vi har også brug for en mikrokontroller som ATmega16 for at instruere motorerne baseret på værdierne fra IR-sensoren. Et forenklet blokdiagram af det samme er vist nedenfor.
Disse to IR-sensorer placeres en på hver side af linjen. Hvis ingen af sensorerne registrerer en sort linje, pålægger AVR-mikrocontrolleren motorerne at bevæge sig fremad som vist nedenfor
Hvis venstre sensor kommer på sort linje, instruerer mikrokontrolleren robotten til at dreje til venstre ved at dreje det højre hjul alene.
Hvis højre sensor kommer på sort linje, instruerer mikrokontrolleren robotten til at dreje til højre ved at dreje det venstre hjul alene.
Hvis begge sensorer kommer på sort linje, stopper robotten.
På denne måde vil robotten kunne følge linjen uden at komme uden for sporet. Lad os nu se, hvordan kredsløbet og koden ser ud.
Komponenter, der kræves
- DC gearmotorer (2 enheder)
- IR-sensormodul (2 enheder)
- L293D-modul
- Trådløs strømkilde (f.eks. Batteri, strømbank)
- Robot Chaises
- Atmega16 Microcontroller IC
- 16Mhz krystaloscillator
- To 100nF kondensatorer
- To 22pF kondensatorer
- Trykknap
- Jumper Wires
- Brødbræt
- USBASP v2.0 (for at programmere Atmega16)
Kredsløbsdiagram
Tilslut alle komponenterne som vist nedenfor i kredsløbsdiagrammet
Programmering Atmega16 til Line Follower Robot
Her er Atmega16 programmeret ved hjælp af USBASP og Atmel Studio7.0. Hvis du ikke ved, hvordan Atmega16 kan programmeres ved hjælp af USBASP, skal du besøge linket. Komplet program gives i slutningen af projektet, bare upload programmet i Atmega16 ved hjælp af JTAG-programmør og Atmel Studio 7.0 som forklaret i tidligere tutorial.
Vi har forsøgt at holde koden så kort og enkel som vi kan. Så vi bruger makroer og specialfunktionsregistre i denne kode.
hvis (bit_is_clear (PINA , leftSen)) { // kontroller om venstre sensor er FRA
Denne erklæring kontrollerer, om PA0, hvor den venstre sensor er tilsluttet, er LAV eller HØJ.
Hvis du vil lære mere om denne erklæring og andre makroer, skal du gå til dette link
Der er fire betingelser, som vi følger for at læse gennem IR-sensorer. IR-sensorer navngives efter deres placering i fronten af robotten. Venstre IR er Venstre sensor og højre IR er højre sensor. Følgende betingelser afgør robotens bevægelse.
Vi har skrevet koden i henhold til ovenstående betingelser. Eneste ændring er, at vi kun bruger to indgangsstifter på L293D til at drive begge motorer.
Komplet kode med en demonstrationsvideo er angivet nedenfor.