- Potrebni materijali:
- Koncepti linijskog sljedbenika
- Dijagram i objašnjenje robota sljedbenika linije Raspberry Pi:
- Programiranje vašeg Raspberry PI:
- Slijednik Raspberry Pi Line na djelu:
Kao što svi znamo, Raspberry Pi je prekrasna platforma za razvoj koja se temelji na ARM mikroprocesoru. Sa svojom velikom računskom snagom i razvojnim mogućnostima može stvoriti čuda u rukama hobista elektronike ili učenika. Da bismo saznali više o Raspberry Pi i kako on funkcionira, pokušajmo izgraditi Robot sljedbenika linija pomoću Raspberry Pi.
Ako ste zainteresirani za robotiku, trebali biste biti dobro upoznati s nazivom " Line Follower Robot ". Ovaj robot može slijediti liniju, samo koristeći par senzora i motora. Možda ne bi zvučalo učinkovito koristiti moćan mikroprocesor poput Raspberry Pi za izradu jednostavnog robota. Ali ovaj vam robot daje prostor za beskonačni razvoj, a roboti poput Kive (Amazonov skladišni robot) primjer su za to. Također možete provjeriti i druge naše robotske sljedbenike:
- Robot za sljedbenike linija pomoću mikrokontrolera 8051
- Robot sljedbenik crte koji koristi Arduino
Potrebni materijali:
- Raspberry Pi 3 (bilo koji model bi trebao raditi)
- IR senzor (2Nos)
- Istosmjerni motor (2Nos)
- L293D vozač motora
- Ležaljke (možete i sami izraditi pomoću kartona)
- Banka napajanja (bilo koji dostupan izvor napajanja)
Koncepti linijskog sljedbenika
Line Follower Robot je u mogućnosti pratiti liniju uz pomoć IR senzora. Ovaj senzor ima IR odašiljač i IR prijemnik. IR odašiljač (IR LED) prenosi svjetlost, a prijemnik (fotodioda) čeka da se vraćena svjetlost vrati. IR svjetlo vratit će se nazad samo ako ga reflektira površina. Dok sve površine ne odražavaju IR svjetlost, samo ih bijela površina boje može u potpunosti odbiti, a površina crne boje u potpunosti će ih promatrati kako je prikazano na donjoj slici. Ovdje saznajte više o modulu IR senzora.



Sada ćemo upotrijebiti dva IR senzora da provjerimo je li robot u tragu s linijom i dva motora za ispravljanje robota ako se pomakne s kolosijeka. Ovi motori zahtijevaju veliku struju i trebali bi biti dvosmjerni; stoga koristimo modul motornog pogona poput L293D. Također će nam trebati računski uređaj poput Raspberry Pi za upućivanje motora na temelju vrijednosti iz IR senzora. Pojednostavljeni blok dijagram istog prikazan je u nastavku.

Ova dva IR senzora bit će postavljena jedan s obje strane crte. Ako niti jedan senzor ne prepozna crnu crtu, PI upućuje motore da se pomaknu prema naprijed kako je prikazano dolje

Ako lijevi senzor dolazi na crnu liniju, PI nalaže robotu da skrene ulijevo okrećući samo desni kotačić.

Ako desni senzor dođe na crnu crtu, PI nalaže robotu da se okrene desno okretanjem samo lijevog kotača.

Ako oba senzora dođu na crnu liniju, robot se zaustavlja.

Na taj će način Robot moći pratiti liniju bez izlaska iz staze. Sada da vidimo kako izgledaju sklop i kod.
Dijagram i objašnjenje robota sljedbenika linije Raspberry Pi:
Kompletna shema sklopa za ovaj sljedbenik robota Raspberry Pi prikazana je u nastavku

Kao što vidite, sklop uključuje dva IR senzora i par motora spojenih na Raspberry pi. Kompletni krug napaja mobilna banka napajanja (predstavljena AAA baterijom u krugu gore).
Budući da se detalji o pribadačama ne spominju na Raspberry Pi-u, moramo provjeriti pribadače pomoću donje slike

Kao što je prikazano na slici, gornji lijevi kutni pin PI-a je + 5V pin, koristimo ovaj + 5V pin za napajanje IR senzora, kao što je prikazano na shemi spojeva (crvena žica). Zatim crnom žicom spajamo klinove uzemljenja na masu IR senzora i modula motornog pogona. Žuta žica služi za povezivanje izlazni pin osjetnika 1 i 2 u igle i 3 GPIO respektivno.
Za pogon motora potrebne su nam četiri zatiča (A, B, A, B). Ove su četiri pinove povezane s GPIO14,4,17 odnosno 18. Narančasta i bijela žica zajedno čine vezu za jedan motor. Dakle, imamo dva takva para za dva motora.
Motori su povezani s modulom pokretačkog programa L293D, kao što je prikazano na slici, a pogonski modul napaja baterija napajanja. Provjerite je li uzemljenje napajanja spojeno na uzemljenje Raspberry Pi, samo tada će vaša veza raditi.
Programiranje vašeg Raspberry PI:
Kad završite sa montažom i vezama, vaš bi robot trebao izgledati otprilike ovako.


Sada je vrijeme da programiramo našeg bota i pokrenemo ga. Kompletni kôd za ovog bota nalazi se na dnu ovog vodiča. Ovdje saznajte više o programu i pokretanju koda u Raspberry Pi. U nastavku su objašnjeni važni redovi
Uvest ćemo GPIO datoteku iz knjižnice, donja funkcija omogućuje nam programiranje GPIO pinova PI. Također smo preimenovali "GPIO" u "IO", pa ćemo u programu kad god se želimo pozvati na GPIO pinove upotrijebiti riječ "IO".
uvezi RPi.GPIO kao IO
Ponekad, kada GPIO pinovi, koje pokušavamo koristiti, možda rade neke druge funkcije. U tom ćemo slučaju primiti upozorenja tijekom izvršavanja programa. Ispod naredba govori PI-u da zanemari upozorenja i nastavi s programom.
IO.setwarnings (False)
GPIO pinove PI možemo uputiti bilo brojem pina na ploči ili brojem njihove funkcije. Poput 'PIN 29' na ploči je 'GPIO5'. Dakle, ovdje kažemo ili ćemo ovdje predstavljati pin s '29' ili '5'.
IO.setmode (IO.BCM)
Postavljamo 6 pinova kao ulazne / izlazne pinove. Prva dva pina su ulazni pinovi za očitavanje IR senzora. Sljedeće četiri su izlazne zatiči, od kojih se prva dva koriste za upravljanje desnim motorom, a sljedeća dva za lijevi motor.
IO.setup (2, IO.IN) #GPIO 2 -> Lijevi IR izlaz IO.setup (3, IO.IN) #GPIO 3 -> Desni IR izlaz IO.setup (4, IO.OUT) #GPIO 4 - > Stezaljka A IO.setup motora 1 (14, IO.OUT) #GPIO 14 -> Stezaljka I IO.setora motora 1 (17, IO.OUT) #GPIO 17 -> I I.setup (18, IO).OUT) #GPIO 18 -> Lijevi terminal B motora
IR senzor daje "True" ako je na bijeloj površini. Dakle, dok oba senzora kažu Istina, možemo ići naprijed.
if (IO.input (2) == True i IO.input (3) == True): # oba bijela pomaknuti prema naprijed IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
Moramo skrenuti udesno ako prvi IR senzor dođe preko crne crte. To se postiže očitavanjem IR senzora i ako je uvjet zadovoljen zaustavljamo desni motor i okrećemo samo lijevi motor kako je prikazano u donjem kodu
elif (IO.input (2) == False i IO.input (3) == True): #okrenite desno IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, Tačno) # 2A + IO.izlaz (18, Netačno) # 2B-
Moramo skrenuti ulijevo ako drugi IR senzor dođe preko crne crte. To se postiže očitavanjem IR senzora i ako je uvjet zadovoljen zaustavljamo lijevi motor i rotiramo sami desni motor kako je prikazano u donjem kodu
elif (IO.input (2) == True i IO.input (3) == False): #okrenite lijevo IO.put (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, Tačno) # 2A + IO.izlaz (18, Tačno) # 2B-
Ako oba senzora dođu preko crne crte, to znači da se robot mora zaustaviti. To se može postići tako da obje stezaljke motora budu istinite, kao što je prikazano na donjem kodu
else: #stay still IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Slijednik Raspberry Pi Line na djelu:
Prenesite python kôd za sljedbenike linija na vaš Raspberry Pi i pokrenite ga. Potreban nam je prijenosni izvor napajanja, banka napajanja u ovom slučaju postaje korisna, stoga sam i ja koristio isti. Ovaj koji koristim dolazi s dva USB priključka pa sam ga koristio za napajanje PI-ja, a drugi za napajanje pokretačkog pogona motora, kao što je prikazano na donjoj slici.

Sada sve što morate učiniti je postaviti vlastiti trag u crnoj boji i pustiti svog bota preko njega. Za izradu zapisa upotrijebio sam izolacijsku traku u crnoj boji, a možete koristiti bilo koji materijal crne boje, ali pripazite da vaša osnovna boja nije tamna.

Kompletan rad bota možete pronaći na video ispod. Nadam se da ste razumjeli projekt i uživali u njegovoj izradi. Ako imate pitanja, objavite ih u odjeljku za komentare u nastavku.
