- Materiale necesare:
- Conceptele de Line Follower
- Schema și explicația circuitului robotului Raspberry Pi Line Follower
- Programarea Raspberry PI:
- Raspberry Pi Line Follower în acțiune:
După cum știm cu toții, Raspberry Pi este o minunată platformă de dezvoltare bazată pe microprocesor ARM. Cu puterea sa de calcul și opțiunile de dezvoltare ridicate, poate face minuni în mâinile pasionaților de electronice sau studenților. Pentru a afla mai multe despre un Raspberry Pi și cum funcționează, haideți să încercăm să construim un robot Line Follower folosind Raspberry Pi.
Dacă sunteți interesat de robotică, atunci ar trebui să fiți foarte familiarizați cu numele „ Line Follower Robot ”. Acest robot este capabil să urmeze o linie, doar folosind o pereche de senzori și motoare. S-ar putea să nu pară eficient să folosești un microprocesor puternic precum Raspberry Pi pentru a construi un robot simplu. Însă, acest robot vă oferă spațiu pentru o dezvoltare infinită, iar roboți precum Kiva (robotul de depozit Amazon) sunt un exemplu în acest sens. Puteți verifica și ceilalți roboți ai noștri Line Follower:
- Line Follower Robot folosind microcontrolerul 8051
- Line Follower Robot folosind Arduino
Materiale necesare:
- Raspberry Pi 3 (orice model ar trebui să funcționeze)
- Senzor IR (2Nos)
- Motor cu transmisie DC (2Nos)
- Driver motor L293D
- Scaune (Puteți, de asemenea, să vă construiți propriile dvs. folosind cartoane)
- Power bank (Orice sursă de energie disponibilă)
Conceptele de Line Follower
Line Follower Robot este capabil să urmărească o linie cu ajutorul unui senzor IR. Acest senzor are un transmițător IR și un receptor IR. Transmițătorul IR (LED IR) transmite lumina, iar receptorul (fotodiodă) așteaptă ca lumina transmisă să revină înapoi. O lumină IR se va întoarce înapoi numai dacă este reflectată de o suprafață. În timp ce, toate suprafețele nu reflectă o lumină IR, doar albul, suprafața culorii le poate reflecta complet, iar suprafața neagră le va observa complet așa cum se arată în figura de mai jos. Aflați mai multe despre modulul senzorului IR aici.
Acum vom folosi doi senzori IR pentru a verifica dacă robotul este în linie cu linia și două motoare pentru a corecta robotul dacă acesta se deplasează în afara pistei. Aceste motoare necesită curent mare și ar trebui să fie bidirecționale; prin urmare, folosim un modul de driver de motor ca L293D. De asemenea, vom avea nevoie de un dispozitiv de calcul precum Raspberry Pi pentru a instrui motoarele pe baza valorilor de la senzorul IR. O diagramă bloc simplificată a acestuia este prezentată mai jos.
Acești doi senzori IR vor fi așezați unul pe ambele părți ale liniei. Dacă niciunul dintre senzori nu detectează o linie neagră, PI le instruiește motoarele să avanseze așa cum se arată mai jos
Dacă senzorul stâng vine pe linia neagră, atunci PI îi instruiește robotul să vireze la stânga rotind roata dreaptă singură.
Dacă senzorul din dreapta vine pe linia neagră, atunci PI îi instruiește robotul să vireze la dreapta rotind singur roata stângă.
Dacă ambii senzori intră pe linia neagră, robotul se oprește.
În acest fel, robotul va putea urma linia fără a ieși în afara pistei. Acum, să vedem cum arată circuitul și codul.
Schema și explicația circuitului robotului Raspberry Pi Line Follower
Schema completă a circuitului pentru acest robot Raspberry Pi Line Follower este prezentată mai jos
După cum puteți vedea, circuitul implică doi senzori IR și o pereche de motoare conectate la Raspberry pi. Circuitul complet este alimentat de o bancă de alimentare mobilă (reprezentată de o baterie AAA în circuitul de mai sus).
Deoarece detaliile pinilor nu sunt menționate pe Raspberry Pi, trebuie să verificăm pinii folosind imaginea de mai jos
Așa cum se arată în imagine, pinul din colțul din stânga sus al PI este pinul + 5V, folosim acest pin + 5V pentru a alimenta senzorii IR, așa cum se arată în schema circuitului (cablat roșu). Apoi conectăm pinii de masă la solul senzorului IR și al modulului Driverului motorului folosind fir negru. Firul galben este utilizat pentru a conecta PIN - ul de ieșire al senzorului 1 și 2 la pinii GPIO și respectiv 3.
Pentru a conduce motoarele, avem nevoie de patru pini (A, B, A, B). Acești patru pini sunt conectați de la GPIO14,4,17 și respectiv 18. Firul portocaliu și cel alb formează împreună conexiunea pentru un motor. Deci avem două astfel de perechi pentru două motoare.
Motoarele sunt conectate la modulul L293D Motor Driver așa cum se arată în imagine, iar modulul driverului este alimentat de o bancă de alimentare. Asigurați-vă că pământul băncii de alimentare este conectat la pământul Raspberry Pi, doar atunci conexiunea dvs. va funcționa.
Programarea Raspberry PI:
Odată ce ați terminat asamblarea și conexiunile robotului dvs. ar trebui să arate cam așa.
(…)Acum, este timpul să ne programăm botul și să îl pornim. Codul complet pentru acest bot poate fi găsit în partea de jos a acestui tutorial. Aflați mai multe despre program și rulați codul în Raspberry Pi aici. Liniile importante sunt explicate mai jos
Vom importa fișierul GPIO din bibliotecă, funcția de mai jos ne permite să programăm pinii GPIO ai PI. De asemenea, redenumim „GPIO” în „IO”, așa că în program ori de câte ori dorim să ne referim la pinii GPIO vom folosi cuvântul „IO”.
import RPi.GPIO ca IO
Uneori, când pinii GPIO, pe care încercăm să îi folosim, ar putea să îndeplinească alte funcții. În acest caz, vom primi avertismente în timpul executării programului. Comanda de mai jos îi spune PI să ignore avertismentele și să continue programul.
IO.setwarnings (Fals)
Putem consulta pinii GPIO ai PI, fie prin numărul pinului la bord, fie prin numărul funcției lor. La fel ca „PIN 29” de pe tablă este „GPIO5”. Deci, spunem aici fie că vom reprezenta pinul aici cu „29” sau „5”.
IO.setmode (IO.BCM)
Setăm 6 pini ca pini de intrare / ieșire. Primii doi pini sunt pinii de intrare pentru a citi senzorul IR. Următorii patru sunt pinii de ieșire din care primii doi sunt utilizați pentru a controla motorul drept și următorii doi pentru motorul stâng.
IO.setup (2, IO.IN) #GPIO 2 -> IR stânga IO.setup (3, IO.IN) #GPIO 3 -> IR dreapta 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 Stânga borna B
Senzorul IR emite „Adevărat” dacă este pe o suprafață albă. Deci, atât timp cât ambii senzori spun adevărat, putem merge mai departe.
if (IO.input (2) == Adevărat și IO.input (3) == Adevărat): # atât albul avansează IO.output (4, True) # 1A + IO.output (14, Fals) # 1B- IO.output (17, Adevărat) # 2A + IO.output (18, Fals) # 2B-
Trebuie să facem un viraj la dreapta dacă primul senzor IR vine peste o linie neagră. Acest lucru se face citind senzorul IR și dacă condiția este îndeplinită, oprim motorul drept și rotim singur motorul stâng așa cum se arată în codul de mai jos
elif (IO.input (2) == False și IO.input (3) == True): #turn dreapta IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, adevărat) # 2A + IO.output (18, fals) # 2B-
Trebuie să facem o virare la stânga dacă al doilea senzor IR trece peste o linie neagră. Acest lucru se face citind senzorul IR și dacă condiția este îndeplinită, oprim motorul stâng și rotim singur motorul drept, așa cum se arată în codul de mai jos
elif (IO.input (2) == True și IO.input (3) == False): #turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Dacă ambii senzori depășesc o linie neagră, înseamnă că robotul trebuie să se oprească. Acest lucru se poate face făcând ca ambele terminale ale motorului să fie adevărate așa cum se arată în codul de mai jos
else: #stay still IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Raspberry Pi Line Follower în acțiune:
Încărcați codul python pentru urmăritorul de linie pe Raspberry Pi și rulați-l. Avem nevoie de o sursă de alimentare portabilă, o bancă de energie în acest caz devine la îndemână, de aceea am folosit același lucru. Cel pe care îl folosesc vine cu două porturi USB, așa că l-am folosit pentru a alimenta PI și altul pentru a alimenta driverul motorului, așa cum se arată în imaginea de mai jos.
Acum tot ce trebuie să faceți este să vă configurați propria pistă de culoare neagră și să eliberați botul peste ea. Am folosit o bandă de izolație de culoare neagră pentru a crea pista, puteți utiliza orice material de culoare neagră, dar asigurați-vă că culoarea solului nu este întunecată.
Funcționarea completă a botului poate fi găsită la videoclipul prezentat mai jos. Sper că ați înțeles proiectul și v-a plăcut să construiți unul. Dacă aveți întrebări, postați-le în secțiunea de comentarii de mai jos.