- Begreppet Line Follower Robot
- Komponenter krävs
- Kretsschema
- Programmering Atmega16 för Line Follower Robot
Här kommer vi att bygga ännu ett projekt med AVR Atmega16 Microcontroller. Om du är ny på AVR-mikrokontroller kan du hänvisa till tidigare AVR-projekt och handledning.
Att bygga en robot är alltid en spänning för alla elektronikhobbyister. Och den här spänningen kan maximeras om roboten automatiskt kan göra vissa saker utan några externa instruktioner. Line of Follower Robot är en av de mest byggda robotarna av elektroniknybörjare. Som namnet antyder kommer roboten att följa linjen ritad på ytan. Linjen behöver inte vara en rak linje. Linjer kan också ha valfri färg.
Vi har tidigare byggt Line Follower-robotprojekt med olika styrenheter:
- Line Follower Robot med 8051 Microcontroller
- Line Follower Robot med PIC Microcontroller
- Line Follower Robot med Arduino
- Line Follower Robot med Raspberry Pi
- Line Follower-robot med MSP430 Launchpad
Idag kommer vi att använda AVR-mikrokontroller för att bygga en Line follower-robot.
För det mesta används IR-sensorer för att upptäcka linjer. IR-sensorerna är bra för att upptäcka vita eller svarta ytor. Även om du kan använda andra sofistikerade sensorer som kommer att kunna upptäcka alla färger och kan skapa en robot som kan följa alla färglinjer. Roboten ska kunna detektera linje även om banan ändras genom att ändra vinkeln och fortsätta följa linjen. Det bör också stoppa varhelst stoppzonen kommer i raden.
Linjeföljrobotar används i stor utsträckning nu om dagen i tillverkningsindustrin, medicinska, inhemska applikationer och varulager. Robotarna är inte begränsade till endast dessa applikationer och kan utöka sina applikationer i många framtida applikationer.
Begreppet Line Follower Robot
IR-sensorerna är nyckelspelare i detta projekt. IR-sensorer är placerade framför robotens sida för att spåra den ritade svarta linjen och ytan. Roboten placeras mellan linjen och med hjälp av IR-sensorer håller roboten koll på linjen. IR-sensorer återkopplar avläsningen till mikrokontrollern och med hjälp av IR-avläsning flyttar mikrokontrollen motorerna till vänster eller höger sida och återför roboten till vägen.
Line Follower Robot kan spåra en linje med hjälp av en IR-sensor. Denna sensor har en IR-sändare och en IR-mottagare. IR-sändaren (IR-lysdioden) sänder ljuset och mottagaren (fotodiod) väntar på att det sända ljuset återvänder. Ett IR-ljus kommer bara tillbaka om det reflekteras av en yta. Medan alla ytor inte reflekterar ett IR-ljus, bara vit kan färgytan reflektera dem helt och svart färgyta kommer att iaktta dem helt som visas i figuren nedan. Läs mer om IR-sensormodul här.
Nu ska vi använda två IR-sensorer för att kontrollera om roboten följer linjen och två motorer för att korrigera roboten om den rör sig ut ur banan. Dessa motorer kräver hög ström och bör vara dubbelriktade; därför använder vi en motorförare-modul som L293D. Vi behöver också en mikrokontroller som ATmega16 för att instruera motorerna baserat på värdena från IR-sensorn. Ett förenklat blockschema av detsamma visas nedan.
Dessa två IR-sensorer kommer att placeras en på vardera sidan av linjen. Om ingen av sensorerna upptäcker en svart linje, instruerar AVR-mikrokontrollen motorerna att gå framåt som visas nedan
Om den vänstra sensorn kommer på svart linje instruerar mikrokontrollen roboten att svänga åt vänster genom att vrida höger hjul ensam.
Om höger sensor kommer på svart linje instruerar mikrokontrollen roboten att svänga åt höger genom att vrida det vänstra hjulet ensamt.
Om båda sensorerna kommer på svart linje stannar roboten.
På detta sätt kommer roboten att kunna följa linjen utan att komma utanför banan. Låt oss nu se hur kretsen och koden ser ut.
Komponenter krävs
- DC växelmotorer (2 enheter)
- IR-sensormodul (2 enheter)
- L293D-modul
- Trådlös strömkälla (t.ex. batteri, kraftbank)
- Robot Chaises
- Atmega16 Microcontroller IC
- 16Mhz kristalloscillator
- Två 100nF kondensatorer
- Två 22pF kondensatorer
- Tryckknapp
- Bygeltrådar
- Bakbord
- USBASP v2.0 (för att programmera Atmega16)
Kretsschema
Anslut alla komponenter som visas nedan i kretsschemat
Programmering Atmega16 för Line Follower Robot
Här programmeras Atmega16 med USBASP och Atmel Studio7.0. Om du inte vet hur Atmega16 kan programmeras med USBASP, besök länken. Komplett program ges i slutet av projektet, ladda bara upp programmet i Atmega16 med JTAG programmerare och Atmel Studio 7.0 som förklarats i föregående handledning.
Vi har försökt hålla koden så kort och enkel som möjligt. Så vi använder makron och specialfunktionsregister i den här koden.
if (bit_is_clear (PINA , leftSen)) { // kontrollera om vänster sensor är AV
Detta uttalande kontrollerar om PA0 där den vänstra sensorn är ansluten är LÅG eller HÖG.
Om du vill lära dig mer om detta uttalande och andra makron, gå till den här länken
Det finns fyra villkor som vi följer för att läsa genom IR-sensorer. IR-sensorer namnges efter deras placering i fronten av roboten. Vänster IR är vänster sensor och höger IR är höger sensor. Följande villkor kommer att avgöra robotens rörelse.
Vi har skrivit koden enligt ovanstående villkor. Enda förändringen är att vi bara använder två ingångsstift på L293D för att driva båda motorerna.
Komplett kod med en demonstrationsvideo ges nedan.