- Material som krävs:
- Begrepp för linjeföljare
- Raspberry Pi Line Follower Robot Circuit Diagram and Explanation:
- Programmera din Raspberry PI:
- Raspberry Pi Line Follower i aktion:
Som vi alla vet är Raspberry Pi en underbar utvecklingsplattform baserad på ARM-mikroprocessor. Med sina höga beräkningskrafter och utvecklingsalternativ kan den utföra underverk i händerna på elektronikhobbyister eller studenter. För att lära dig mer om en Raspberry Pi och hur den fungerar, låt oss försöka bygga en Line Follower-robot med Raspberry Pi.
Om du är intresserad av robotik bör du vara mycket bekant med namnet “ Line Follower Robot ”. Denna robot kan följa en linje, bara genom att använda ett par sensorer och motorer. Det låter kanske inte effektivt att använda en kraftfull mikroprocessor som Raspberry Pi för att bygga en enkel robot. Men den här roboten ger dig utrymme för oändlig utveckling och robotar som Kiva (Amazon-lagerrobot) är ett exempel på detta. Du kan också kolla in våra andra Line Follower-robotar:
- Line Follower Robot med 8051 Microcontroller
- Line Follower Robot med Arduino
Material som krävs:
- Raspberry Pi 3 (vilken modell som helst ska fungera)
- IR-sensor (2Nos)
- DC växelmotor (2Nos)
- L293D Motor Driver
- Chaises (Du kan också bygga dina egna med kartonger)
- Kraftbank (alla tillgängliga strömkällor)
Begrepp för linjeföljare
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 beräkningsenhet som Raspberry Pi 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 de PI motorerna att gå framåt som visas nedan
Om vänster sensor kommer på svart linje, instruerar PI roboten att svänga åt vänster genom att vrida höger hjul ensam.
Om höger sensor kommer på svart linje instruerar PI 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.
Raspberry Pi Line Follower Robot Circuit Diagram and Explanation:
Det fullständiga kretsschemat för denna Raspberry Pi Line Follower Robot visas nedan
Som du kan se kretsen involverar två IR-sensorer och ett par motorer anslutna till Raspberry pi. Hela kretsen drivs av en mobil kraftbank (representerad av AAA-batteri i kretsen ovan).
Eftersom stiftdetaljerna inte nämns på Raspberry Pi, måste vi verifiera stiften med hjälp av bilden nedan
Som visas på bilden är det övre vänstra hörnstiftet på PI + 5V-stiftet, vi använder denna + 5V-stift för att driva IR-sensorerna som visas i kretsschemat (röd kabel). Sedan ansluter vi jordstiftet till marken på IR-sensorn och motordrivrutinmodulen med svart ledning. Den gula ledningen används för att ansluta utgångsstiftet på sensorn 1 och 2 till GPIO-stiften respektive 3.
För att driva motorerna behöver vi fyra stift (A, B, A, B). Dessa fyra stift är anslutna från GPIO14,4,17 respektive 18. Den orange och vita ledningen tillsammans utgör anslutningen för en motor. Så vi har två sådana par för två motorer.
Motorerna är anslutna till L293D Motor Driver- modulen som visas på bilden och drivmodulen drivs av en kraftbank. Se till att powerbankens jord är ansluten till Raspberry Pi-marken, först då fungerar din anslutning.
Programmera din Raspberry PI:
När du är klar med din montering och anslutningar bör din robot se ut så här.
Nu är det dags att programmera vår bot och få den igång. Den fullständiga koden för den här botten finns längst ner i denna handledning. Läs mer om program och kör kod i Raspberry Pi här. De viktiga raderna förklaras nedan
Vi ska importera GPIO-filer från biblioteket, nedanstående funktion gör att vi kan programmera GPIO-stift av PI. Vi döper också om "GPIO" till "IO", så i programmet när vi vill hänvisa till GPIO-stift kommer vi att använda ordet "IO".
importera RPi.GPIO som IO
Ibland, när GPIO-stiften, som vi försöker använda, kan göra några andra funktioner. I så fall får vi varningar när vi kör programmet. Kommandot nedan ber PI att ignorera varningarna och fortsätta med programmet.
IO.setwarnings (False)
Vi kan hänvisa GPIO-stift på PI, antingen med stiftnummer ombord eller med deras funktionsnummer. Precis som 'PIN 29' på tavlan är 'GPIO5'. Så vi säger här antingen att vi kommer att representera nålen här med '29' eller '5'.
IO.setmode (IO.BCM)
Vi ställer in 6 stift som ingångs- / utgångsstift. De två första stiften är ingångsstiften för att läsa IR-sensorn. De kommande fyra är utgångsstiften varav de första två används för att styra höger motor och de nästa två för vänster motor.
IO.setup (2, IO.IN) #GPIO 2 -> Left IR out IO.setup (3, IO.IN) #GPIO 3 -> Right IR out IO.setup (4, IO.OUT) #GPIO 4 - > Motor 1 terminal A IO.setup (14, IO.OUT) #GPIO 14 -> Motor 1 terminal B IO. setup (17, IO.OUT) #GPIO 17 -> Motor Left terminal A IO. setup (18, IO.OUT) #GPIO 18 -> Motor vänster terminal B
IR-sensorn matar ut "True" om den är över en vit yta. Så så länge som båda sensorerna säger True kan vi gå framåt.
if (IO.input (2) == True and IO.input (3) == True): #both white move forward IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
Vi måste göra en höger sväng om den första IR-sensorn kommer över en svart linje. Detta görs genom att läsa IR-sensorn och om villkoret är uppfyllt stoppar vi höger motor och roterar vänster motor ensam som visas i koden nedan
elif (IO.input (2) == False and IO.input (3) == True): #turn right IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO. Output (18, False) # 2B-
Vi måste svänga vänster om den andra IR-sensorn kommer över en svart linje. Detta görs genom att läsa av IR-sensorn och om villkoret är uppfyllt stoppar vi vänster motor och roterar höger motor ensam som visas i koden nedan
elif (IO.input (2) == True and IO.input (3) == False): #turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO. Utgång (18, True) # 2B-
Om båda sensorerna kommer över en svart linje betyder det att roboten måste stanna. Detta kan göras genom att båda terminalerna på motorn är sanna enligt koden nedan
annat: #blir fortfarande IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Raspberry Pi Line Follower i aktion:
Ladda upp pythonkoden för linjeföljare till din Raspberry Pi och kör den. Vi behöver en bärbar strömförsörjning, en kraftbank i det här fallet blir praktiskt därför har jag använt samma. Den jag använder kommer med två USB-portar, så jag har använt PI och andra till Power Motor Driver som visas på bilden nedan.
Nu är allt du behöver göra att skapa ditt eget svarta färgspår och släppa din bot över den. Jag har använt en svart färgisoleringstejp för att skapa spåret, du kan använda valfritt svart färgmaterial, men se till att din markfärg inte är mörk.
Den fullständiga bearbetningen av botten finns i videon nedan. Hoppas att du förstod projektet och gillade att bygga ett. Om du har några frågor, lägg upp dem i kommentarsektionen nedan.