- Konseptet med Line Follower Robot
- Komponenter kreves
- Kretsdiagram
- Programmering Atmega16 for Line Follower Robot
Her skal vi bygge enda et prosjekt med AVR Atmega16 Microcontroller. Hvis du er ny på AVR-mikrokontrollere, kan du se på tidligere AVR-prosjekter og opplæringsprogrammer.
Å bygge en robot er alltid en spenning for alle elektronikkhobbyister. Og denne spenningen kan maksimeres hvis roboten automatisk kan gjøre noen ting uten eksterne instruksjoner. Line of Follower Robot er en av de mest bygget robotene av elektronikkbegynnere. Som navnet antyder, vil roboten følge linjen tegnet på overflaten. Linjen trenger ikke være en rett linje. Dessuten kan linjene være i alle farger.
Vi har tidligere bygget Line Follower Robot-prosjekter ved hjelp av forskjellige kontrollere:
- Line Follower Robot med 8051 Microcontroller
- Line Follower Robot ved hjelp av PIC Microcontroller
- Line Follower Robot ved hjelp av Arduino
- Line Follower Robot ved hjelp av Raspberry Pi
- Line Follower Robot ved hjelp av MSP430 Launchpad
I dag vil vi bruke AVR-mikrokontroller til å bygge en Line follower-robot.
For det meste brukes IR-sensorer til å oppdage linjer. IR-sensorene er gode til å oppdage hvite eller svarte overflater. Selv om du kan bruke andre sofistikerte sensorer som vil kunne oppdage alle farger og kan lage en robot som kan følge alle fargelinjer. Roboten skal kunne oppdage linje selv om banen endres ved å endre vinkelen og fortsette å følge linjen. Det bør også stoppe hvor stoppsonen kommer i linjen.
Linjefølgerroboter brukes mye nå om dagen i produksjonsindustri, medisinsk, innenlandske applikasjoner og varelager. Robotene er ikke begrenset til bare disse applikasjonene og kan utvide applikasjonene i mange fremtidige applikasjoner.
Konseptet med Line Follower Robot
IR-sensorene er nøkkelspilleren i dette prosjektet. IR-sensorer er plassert på forsiden av roboten for å spore den tegnede svarte linjen og overflaten. Roboten plasseres mellom linjen og ved hjelp av IR-sensorer holder roboten oversikt over linjen. IR-sensorer gir tilbakemelding om avlesningen til mikrokontrolleren, og ved hjelp av IR-avlesing beveger mikrokontrolleren motorene til venstre eller høyre side og bringer igjen roboten til banen.
Line Follower Robot er i stand til å spore en linje ved hjelp av en IR-sensor. Denne sensoren har en IR-sender og IR-mottaker. IR-senderen (IR-LED) sender lyset og mottakeren (fotodiode) venter på at det sendte lyset kommer tilbake. Et IR-lys vil bare komme tilbake hvis det reflekteres av en overflate. Mens alle overflater ikke reflekterer et IR-lys, kan bare fargeoverflaten reflektere dem helt, og den svarte overflaten vil fullstendig observere dem som vist i figuren nedenfor. Lær mer om IR-sensormodul her.
Nå skal vi bruke to IR-sensorer for å sjekke om roboten er i sporet med linjen og to motorer for å korrigere roboten hvis den beveger seg ut av sporet. Disse motorene krever høy strøm og skal være toveis; derfor bruker vi en motordrivermodul som L293D. Vi trenger også en mikrokontroller som ATmega16 for å instruere motorene basert på verdiene fra IR-sensoren. Et forenklet blokkdiagram av det samme er vist nedenfor.
Disse to IR-sensorene blir plassert en på hver side av linjen. Hvis ingen av sensorene oppdager en svart linje, instruerer AVR-mikrokontrolleren motorene om å bevege seg fremover som vist nedenfor
Hvis venstre sensor kommer på svart linje, instruerer mikrokontrolleren roboten å svinge til venstre ved å dreie på høyre hjul alene.
Hvis høyre sensor kommer på svart linje, instruerer mikrokontrolleren roboten å svinge til høyre ved å dreie venstre hjul alene.
Hvis begge sensorene kommer på svart linje, stopper roboten.
På denne måten vil roboten kunne følge linjen uten å komme utenfor sporet. La oss nå se hvordan kretsen og koden ser ut.
Komponenter kreves
- DC-girmotorer (2 enheter)
- IR-sensormodul (2 enheter)
- L293D-modul
- Trådløs strømkilde (f.eks. Batteri, strømbank)
- Robot Chaises
- Atmega16 Microcontroller IC
- 16Mhz krystalloscillator
- To kondensatorer på 100nF
- To 22pF kondensatorer
- Trykknapp
- Jumper Wires
- Brettbrett
- USBASP v2.0 (for å programmere Atmega16)
Kretsdiagram
Koble til alle komponentene som vist nedenfor i kretsdiagrammet
Programmering Atmega16 for Line Follower Robot
Her er Atmega16 programmert ved hjelp av USBASP og Atmel Studio7.0. Hvis du ikke vet hvordan Atmega16 kan programmeres ved hjelp av USBASP, kan du gå til lenken. Komplett program gis på slutten av prosjektet, bare last opp programmet i Atmega16 ved hjelp av JTAG programmerer og Atmel Studio 7.0 som forklart i forrige opplæring.
Vi har prøvd å holde koden så kort og enkel som mulig. Så vi bruker makroer og spesielle funksjonsregistre i denne koden.
hvis (bit_is_clear (PINA , leftSen)) { // sjekk om venstre sensor er AV
Denne erklæringen sjekker om PA0 der venstre sensor er koblet til er LAV eller HØY.
Hvis du vil lære mer om denne uttalelsen og andre makroer, kan du gå til denne lenken
Det er fire forhold som vi følger for å lese gjennom IR-sensorer. IR-sensorer er navngitt i henhold til plasseringen i fronten av roboten. Venstre IR er Venstre sensor og høyre IR er høyre sensor. Følgende forhold vil avgjøre bevegelsen til roboten.
Vi har skrevet koden i henhold til vilkårene ovenfor. Eneste endring er at vi bare bruker to inngangspinner på L293D til å kjøre begge motorene.
Komplett kode med en demonstrasjonsvideo er gitt nedenfor.