- Linjaseuraajarobotin käsite
- Tarvittavat komponentit
- Piirikaavio
- Atmega16: n ohjelmointi linjaseuraajarobotille
Täällä rakennamme vielä yhden projektin AVR Atmega16 -mikrokontrollerilla. Jos olet uusi AVR-mikrokontrollerien käyttäjä, voit viitata aiempiin AVR-projekteihin ja opetusohjelmiin.
Robotin rakentaminen on aina jännitystä kaikille elektroniikan harrastajille. Ja tämä jännitys voidaan maksimoida, jos robotti pystyy tekemään joitain asioita automaattisesti ilman ulkoisia ohjeita. Yksi elektroniikan aloittelijoiden yleisimmin rakentamista robotteista on Line Follower Robot. Kuten nimestä voi päätellä, robotti seuraa pinnalle piirrettyä linjaa. Viivan ei tarvitse olla suora. Myös viivat voivat olla mitä tahansa värejä.
Olemme aiemmin rakentaneet Line Follower -robotiprojekteja käyttämällä erilaisia ohjaimia:
- Linjaseuraajarobotti 8051-mikrokontrollerilla
- Linjaseuraajarobotti PIC-mikrokontrollerilla
- Linjaseurainrobotti Arduinolla
- Linjaseuraajarobotti Raspberry Pi: llä
- Linjaseuraajarobotti MSP430 Launchpadin avulla
Tänään käytämme AVR-mikrokontrolleria rakentamaan linjaseuraajarobotin.
Enimmäkseen IR-antureita käytetään viivojen havaitsemiseen. IR-anturit tunnistavat hyvin valkoiset tai mustat pinnat. Vaikka voit käyttää muita hienostuneita antureita, jotka pystyvät havaitsemaan kaikki värit ja voivat tehdä robotin, joka pystyy seuraamaan kaikkia väriviivoja. Robotin pitäisi pystyä havaitsemaan viiva, vaikka polkua muutettaisiin muuttamalla kulmaa, ja seurata linjaa. Sen tulisi myös pysähtyä kaikkialle, missä pysäytysalue tulee linjalle.
Linjaseuraajarobotteja käytetään nykyään laajasti valmistusteollisuudessa, lääketieteessä, kotitalouksissa ja tavaravarastossa. Robotit eivät rajoitu vain näihin sovelluksiin, ja ne voivat laajentaa sovelluksiaan monissa tulevissa sovelluksissa.
Linjaseuraajarobotin käsite
IR-anturit ovat avainasemassa tässä projektissa. Infrapuna-anturit sijoitetaan robotin etupuolelle vedetyn mustan viivan ja pinnan seuraamiseksi. Robotti sijoitetaan linjan väliin, ja infrapuna-antureiden avulla robotti seuraa linjaa. IR-anturit palauttavat lukeman mikrokontrollerille ja infrapunalukeman avulla mikrokontrolleri liikuttaa moottoreita vasemmalle tai oikealle puolelle ja tuo robotin taas polulle.
Linjaseuraajarobotti pystyy seuraamaan linjaa infrapunatunnistimen avulla. Tässä anturissa on IR-lähetin ja IR-vastaanotin. IR-lähetin (IR LED) lähettää valon ja vastaanotin (valodiodi) odottaa lähetetyn valon paluuta. IR-valo palaa takaisin vain, jos pinta heijastaa sitä. Vaikka kaikki pinnat eivät heijasta infrapunavaloa, vain valkoinen väripinta voi heijastaa ne kokonaan ja musta väri pinta havaitsee ne täysin alla olevan kuvan mukaisesti. Lisätietoja IR-anturimoduulista on täällä.
Nyt käytämme kahta infrapuna-anturia tarkistaaksemme, onko robotti radalla linjan kanssa, ja kahdella moottorilla korjaamaan robotin, jos robotti liikkuu radalta. Nämä moottorit vaativat suurta virtaa ja niiden tulisi olla kaksisuuntaiset; siksi käytämme moottorin ohjainmoduulia, kuten L293D. Tarvitsemme myös ATmega16: n kaltaisen mikrokontrollerin ohjaamaan moottoreita IR-anturin arvojen perusteella. Samanlainen yksinkertaistettu lohkokaavio on esitetty alla.
Nämä kaksi IR-anturia sijoitetaan yksi linjan molemmille puolille. Jos mikään antureista ei havaitse mustaa viivaa, AVR-mikrokontrolleri kehottaa moottoreita liikkumaan eteenpäin alla olevan kuvan mukaisesti
Jos vasen anturi tulee mustalle viivalle, mikro-ohjain kehottaa robottia kääntymään vasemmalle pyörittämällä oikeaa pyörää yksin.
Jos oikea anturi tulee mustalle viivalle, mikro-ohjain kehottaa robottia kääntymään oikealle kiertämällä vasenta pyörää yksin.
Jos molemmat anturit tulevat mustalle linjalle, robotti pysähtyy.
Tällä tavalla robotti pystyy seuraamaan linjaa menemättä radan ulkopuolelle. Katsotaan nyt, kuinka piiri ja koodi näyttävät.
Tarvittavat komponentit
- DC-vaihdemoottorit (2 kpl)
- IR-anturimoduuli (2 yksikköä)
- L293D-moduuli
- Langaton virtalähde (esim. Akku, virtapankki)
- Robottituolit
- Atmega16-mikrokontrolleri-IC
- 16MHz kristalloskillaattori
- Kaksi 100nF-kondensaattoria
- Kaksi 22pF-kondensaattoria
- Paina nappia
- Neulalangat
- Leipälauta
- USBASP v2.0 (Atmega16: n ohjelmointiin)
Piirikaavio
Liitä kaikki komponentit alla olevan piirikaavion mukaisesti
Atmega16: n ohjelmointi linjaseuraajarobotille
Tässä Atmega16 ohjelmoidaan USBASP: n ja Atmel Studio7.0: n avulla. Jos et tiedä kuinka Atmega16 voidaan ohjelmoida USBASP: n avulla, käy sitten linkissä. Täydellinen ohjelma annetaan projektin lopussa, lataa ohjelma Atmega16: een käyttämällä JTAG-ohjelmoijaa ja Atmel Studio 7.0: ta edellisessä opetusohjelmassa kuvatulla tavalla.
Olemme yrittäneet pitää koodin mahdollisimman lyhyenä ja yksinkertaisena. Joten käytämme tässä koodissa makroja ja erikoistoimintorekistereitä.
if (bit_is_clear (PINA , leftSen)) { // tarkista, onko vasen anturi POIS
Tämä lauseke tarkistaa, onko PA0, johon vasen anturi on kytketty, LOW tai HIGH.
Jos haluat oppia lisää tästä lauseesta ja muista makroista, siirry tähän linkkiin
IR-antureiden lukemiseen on neljä ehtoa, joita seuraamme. IR-anturit on nimetty niiden sijainnin mukaan robotin etupuolelle. Vasen IR on vasen anturi ja oikea IR on oikea anturi. Seuraavat olosuhteet ratkaisevat robotin liikkeen.
Olemme kirjoittaneet koodin yllä olevien ehtojen mukaisesti. Ainoa muutos on, että käytämme vain kahta L293D: n tulotappia molempien moottoreiden ajamiseksi.
Täydellinen koodi esittelyvideolla on alla.