- Materiali richiesti:
- Concetti di Line Follower
- Schema e spiegazione del circuito del robot inseguitore della linea Raspberry Pi:
- Programmazione del tuo Raspberry PI:
- Raspberry Pi Line Follower in azione:
Come tutti sappiamo, Raspberry Pi è una meravigliosa piattaforma di sviluppo basata su microprocessore ARM. Con la sua elevata potenza di calcolo e le opzioni di sviluppo può fare miracoli nelle mani di appassionati di elettronica o studenti. Per saperne di più su un Raspberry Pi e su come funziona, proviamo a costruire un Line Follower Robot usando Raspberry Pi.
Se sei interessato alla robotica, dovresti avere molta familiarità con il nome " Line Follower Robot ". Questo robot è in grado di seguire una linea, semplicemente utilizzando una coppia di sensori e motori. Potrebbe non sembrare efficiente utilizzare un potente microprocessore come Raspberry Pi per costruire un semplice robot. Ma questo robot ti dà spazio per uno sviluppo infinito e robot come Kiva (Amazon Warehouse Robot) ne sono un esempio. Puoi anche controllare i nostri altri robot Line Follower:
- Robot inseguitore di linea che utilizza un microcontrollore 8051
- Line Follower Robot utilizzando Arduino
Materiali richiesti:
- Raspberry Pi 3 (qualsiasi modello dovrebbe funzionare)
- Sensore IR (2Nos)
- Motoriduttore DC (2Nos)
- Driver motore L293D
- Sedie (puoi anche costruirne una tua usando i cartoni)
- Power bank (qualsiasi fonte di alimentazione disponibile)
Concetti di Line Follower
Line Follower Robot è in grado di tracciare una linea con l'aiuto di un sensore IR. Questo sensore ha un trasmettitore IR e un ricevitore IR. Il trasmettitore IR (LED IR) trasmette la luce e il ricevitore (fotodiodo) attende che la luce trasmessa ritorni. Una luce IR tornerà indietro solo se viene riflessa da una superficie. Considerando che tutte le superfici non riflettono una luce IR, solo la superficie di colore bianco può rifletterle completamente e la superficie di colore nero le osserverà completamente come mostrato nella figura sotto. Scopri di più sul modulo sensore IR qui.
Ora useremo due sensori IR per verificare se il robot è in pista con la linea e due motori per correggere il robot se si muove fuori dalla pista. Questi motori richiedono corrente elevata e dovrebbero essere bidirezionali; quindi usiamo un modulo driver del motore come L293D. Avremo anche bisogno di un dispositivo computazionale come Raspberry Pi per istruire i motori in base ai valori del sensore IR. Di seguito è riportato uno schema a blocchi semplificato dello stesso.
Questi due sensori IR saranno posizionati uno su entrambi i lati della linea. Se nessuno dei sensori rileva una linea nera, PI istruisce i motori a muoversi in avanti come mostrato di seguito
Se il sensore sinistro si trova su una linea nera, il PI istruisce il robot a girare a sinistra ruotando da sola la ruota destra.
Se il sensore destro si trova su una linea nera, il PI istruisce il robot a girare a destra ruotando solo la ruota sinistra.
Se entrambi i sensori si trovano sulla linea nera, il robot si ferma.
In questo modo il Robot potrà seguire la linea senza uscire dalla pista. Ora vediamo come appaiono il circuito e il codice.
Schema e spiegazione del circuito del robot inseguitore della linea Raspberry Pi:
Di seguito è mostrato lo schema circuitale completo di questo robot Raspberry Pi Line Follower
Come puoi vedere il circuito coinvolge due sensori IR e una coppia di motori collegati al Raspberry pi. Il circuito completo è alimentato da un Mobile Power bank (rappresentato da una batteria AAA nel circuito sopra).
Poiché i dettagli dei pin non sono menzionati sul Raspberry Pi, è necessario verificare i pin utilizzando l'immagine sottostante
Come mostrato nell'immagine, il pin in alto a sinistra del PI è il pin + 5V, usiamo questo pin + 5V per alimentare i sensori IR come mostrato nello schema del circuito (cablato rosso). Quindi colleghiamo i pin di terra alla massa del sensore IR e del modulo Motor Driver utilizzando un filo nero. Il filo giallo viene utilizzato per collegare il pin di uscita del sensore 1 e 2 rispettivamente ai pin GPIO e 3.
Per guidare i motori, abbiamo bisogno di quattro pin (A, B, A, B). Questi quattro pin sono collegati rispettivamente da GPIO14,4,17 e 18. Il filo arancione e bianco insieme formano la connessione per un motore. Quindi abbiamo due coppie di questo tipo per due motori.
I motori sono collegati al modulo L293D Motor Driver come mostrato in figura e il modulo driver è alimentato da un power bank. Assicurati che la massa del power bank sia collegata alla massa del Raspberry Pi, solo allora la tua connessione funzionerà.
Programmazione del tuo Raspberry PI:
Una volta che hai finito con l'assemblaggio e le connessioni, il tuo robot dovrebbe assomigliare a questo.
Ora è il momento di programmare il nostro bot e farlo funzionare. Il codice completo per questo bot può essere trovato in fondo a questo tutorial. Scopri di più su Programma ed esegui codice in Raspberry Pi qui. Le linee importanti sono spiegate di seguito
Stiamo per importare il file GPIO dalla libreria, la funzione sottostante ci consente di programmare i pin GPIO di PI. Stiamo anche rinominando "GPIO" in "IO", quindi nel programma ogni volta che vogliamo fare riferimento ai pin GPIO useremo la parola "IO".
importa RPi.GPIO come IO
A volte, quando i pin GPIO, che stiamo cercando di utilizzare, potrebbero svolgere altre funzioni. In tal caso, riceveremo avvisi durante l'esecuzione del programma. Il comando seguente indica al PI di ignorare gli avvisi e procedere con il programma.
IO.setwarnings (False)
Possiamo fare riferimento ai pin GPIO di PI, sia per numero di pin a bordo che per numero di funzione. Come il "PIN 29" sulla scheda è "GPIO5". Quindi diciamo qui o rappresenteremo il pin qui con "29" o "5".
IO.setmode (IO.BCM)
Stiamo impostando 6 pin come pin di input / output. I primi due pin sono i pin di ingresso per leggere il sensore IR. I quattro successivi sono i pin di uscita di cui i primi due vengono utilizzati per controllare il motore destro e i successivi due per il motore sinistro.
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 - > Motore 1 morsetto A IO.setup (14, IO.OUT) #GPIO 14 -> Motore 1 morsetto B IO.setup (17, IO.OUT) #GPIO 17 -> Motore sinistro morsetto A IO.setup (18, IO.OUT) #GPIO 18 -> Terminale motore sinistro B
Il sensore IR emette "Vero" se si trova su una superficie bianca. Quindi, finché entrambi i sensori indicano True, possiamo andare avanti.
if (IO.input (2) == True e IO.input (3) == True): # entrambi i bianchi si muovono in avanti IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
Dobbiamo fare una svolta a destra se il primo sensore IR supera una linea nera. Questo viene fatto leggendo il sensore IR e se la condizione è soddisfatta fermiamo il motore destro e ruotiamo il motore sinistro da solo come mostrato nel codice sottostante
elif (IO.input (2) == False e IO.input (3) == True): #turn right IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + Uscita I / O (18, False) # 2B-
Dobbiamo fare una svolta a sinistra se il secondo sensore IR supera una linea nera. Questo viene fatto leggendo il sensore IR e se la condizione è soddisfatta fermiamo il motore sinistro e ruotiamo il motore destro da solo come mostrato nel codice sottostante
elif (IO.input (2) == True e IO.input (3) == False): #turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + Uscita I / O (18, True) # 2B-
Se entrambi i sensori superano una linea nera, significa che il robot deve fermarsi. Questo può essere fatto facendo in modo che entrambi i terminali del motore siano veri come mostrato nel codice sottostante
altro: #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 in azione:
Carica il codice Python per il follower di linea sul tuo Raspberry Pi ed eseguilo. Abbiamo bisogno di un alimentatore portatile, un power bank in questo caso diventa utile quindi ho usato lo stesso. Quello che sto usando è dotato di due porte USB, quindi ho usato per alimentare il PI e l'altro per Power Motor Driver come mostrato nell'immagine sotto.
Ora tutto ciò che devi fare è impostare la tua traccia di colore nero e rilasciare il tuo bot su di essa. Ho usato un nastro isolante di colore nero per creare la pista, puoi usare qualsiasi materiale di colore nero, ma assicurati che il tuo colore di fondo non sia scuro.
Il funzionamento completo del bot può essere trovato nel video riportato di seguito. Spero che tu abbia capito il progetto e ti sia piaciuto realizzarne uno. Se hai domande, pubblicale nella sezione commenti qui sotto.