- Materiali richiesti:
- Concetti di Line Follower
- Schema del circuito e spiegazione:
- Programmazione microcontrollore PIC:
- Line Follower PIC in azione:
Un Line Follower Robot è un robot semplice ma affascinante da costruire per la maggior parte degli studenti / hobbisti. In questo tutorial impareremo come funziona un robot Line Follower e come possiamo costruirne uno utilizzando il microcontrollore PIC PIC16F877A. PIC16F877A è un MCU multiuso a 40 pin di Microchip, abbiamo utilizzato questo IC nella nostra serie completa di tutorial PIC. Se sei nuovo, qui potresti dare un'occhiata a questi tutorial PIC per apprendere le basi di questo IC e come caricare programmi sul microcontrollore. Poiché abbiamo già trattato queste informazioni nei nostri tutorial, le salteremo nella spiegazione di seguito.
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. 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
- Line Follower Robot utilizzando Raspberry Pi
Materiali richiesti:
- PIC16F877A
- 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 microcontrollore come PIC 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, il microcontrollore PIC istruisce i motori a muoversi in avanti come mostrato di seguito
Se il sensore sinistro si trova su una linea nera, il microcontrollore istruisce il robot a girare a sinistra ruotando da sola la ruota destra.
Se il sensore destro si trova su una linea nera, il microcontrollore 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 del circuito e spiegazione:
Di seguito è mostrato lo schema circuitale completo di questo Line Follower Robot basato su PIC
Il circuito impiega due sensori IR e una coppia di motoriduttori CC insieme a un modulo driver del motore come mostrato sopra. Il modulo del driver del motore utilizzato in questo progetto è L293D, avremo bisogno di un driver del motore perché il pin di uscita del microcontrollore PIC non può fornire corrente sufficiente per i motori da guidare. Questo modulo sarà alimentato direttamente dalla fonte di alimentazione (5V) come mostrato nel circuito. Il modulo ha quattro pin (due per ogni motore) che sono collegati al PIC per controllare la direzione dei motori. Abbiamo anche due sensori IR che fungono da input per il microcontrollore PIC. Questi sensori aumenteranno (1) se si trovano su una superficie bianca e diventeranno bassi (0) quando si trovano su una superficie nera. I collegamenti pin completi sono illustrati nella tabella seguente.
S.No |
Collegato da |
Collegato a |
1 |
Perno sinistro del sensore IR |
RD2 (pin 21) |
2 |
Sensore IR Perno di uscita destra |
RD3 (pin 22) |
4 |
Pin motore 1 canale A |
RC4 (pin 23) |
5 |
Pin del canale B del motore 1 |
RC5 (pin 25) |
6 |
Pin motore 2 canale A |
RC6 (pin 26) |
7 |
Perno motore 2 canale B. |
RC7 (pin 27) |
Nell'hardware attuale ho usato un power bank che darà un'uscita di + 5V direttamente attraverso la sua porta USB; quindi ho bypassato il regolatore di tensione 7805 e alimentato il PIC, i sensori e i motori utilizzando lo stesso. Puoi fare lo stesso di usare una batteria da 12V insieme a un regolatore come mostrato nel circuito.
Programmazione microcontrollore PIC:
Una volta che sei pronto con il tuo hardware, è il momento di iniziare la programmazione. Il programma completo di questo progetto PIC Line Follower Robot è fornito alla fine di questa pagina. Tuttavia le parti importanti sono spiegate di seguito.
Inizializza i pin I / O con le seguenti righe. I 2 pin del sensore IR fungono da ingresso e i quattro pin del motore fungono da pin di uscita.
TRISD2 = 1; TRISD3 = 1; // Bath i pin del sensore IR sono dichiarati come input TRISC4 = 0; TRISC5 = 0; // Pin motore 1 dichiarati come uscita TRISC6 = 0; TRISC7 = 0; // 2 pin del motore dichiarati come uscita
Ora dobbiamo leggere lo stato di entrambi i sensori IR e controllare il motore di conseguenza. Ad esempio se entrambi i sensori sono alti (non viene sotto la linea nera) allora spostiamo entrambi i motori in avanti come mostrato nel programma sottostante.
if (RD2 == 1 && RD3 == 1) // Entrambi i sensori non sono oltre la linea balck {RC4 = 0; RC5 = 1; // Motore 1 avanti RC6 = 1; RC7 = 0; // Motore 2 avanti}
Se il sensore sinistro supera la linea nera, effettuiamo una svolta a destra tenendo fermo il motore 1 e ruotando il motore 2 in avanti. Questo tipo di svolta è chiamata svolta differenziale.
altrimenti se (RD2 == 0 && RD3 == 1) // Il sensore sinistro è sulla linea nera {RC4 = 1; RC5 = 1; // Arresto motore 1 RC6 = 1; RC7 = 0; // Motore 2 avanti}
Allo stesso modo, se il sensore destro supera la linea nera, il robot deve girare a sinistra tenendo fermo il secondo motore e ruotando solo il primo motore in avanti come mostrato di seguito.
altrimenti se (RD2 == 1 && RD3 == 0) // Il sensore destro è sopra la linea nera {RC4 = 0; RC5 = 1; // Motore 1 avanti RC6 = 1; RC7 = 1; // Arresto motore 2}
Infine, se entrambi i sensori si trovano sotto una linea nera, è tempo di fermare il bot. Questo può essere fatto alzando tutti i pin di entrambi i motori. Il codice per fare lo stesso è mostrato di seguito
altro // Entrambi i sensori sulla linea nera {RC4 = 1; RC5 = 1; // Arresto motore 1 RC6 = 1; RC7 = 1; // Arresto motore 2}
Cioè, il programma è pronto e può essere caricato sul PIC utilizzando qualsiasi programmatore come PicKit.
Line Follower PIC in azione:
Una volta che l'hardware e il codice sono pronti, è il momento di agire. Come detto in precedenza ho utilizzato un power bank per alimentare il bot, quindi tutto quello che devo fare è semplicemente collegare il power bank al bot che ha l'hardware configurato e il codice già caricato.
La scheda PIC Perf è stata realizzata per la nostra serie di tutorial PIC, in cui abbiamo imparato a usare il microcontrollore PIC. Potresti voler tornare a quei tutorial sul microcontrollore PIC usando MPLABX e XC8 se non sai come masterizzare un programma usando Pickit 3, poiché salterò tutte quelle informazioni di base.
Ora, avvia semplicemente il bot su una linea nera e dovresti guardarlo seguire la linea.
Potresti incontrare alcune difficoltà all'inizio, in questo caso leggi oltre. Se le ruote ruotano in senso opposto, è sufficiente scambiare la polarità del motore la cui ruota sta ruotando in direzione opposta. Se il bot devia dalla linea, scambia il sensore IR e tutto dovrebbe andare bene.
Il funzionamento completo del bot può essere trovato nel video riportato di seguito. Spero ti piaccia il progetto e ti sia divertito a costruire qualcosa di simile. Se hai problemi a farlo funzionare, puoi pubblicarli nella sezione commenti qui sotto per risolverli o utilizzare i nostri forum per discutere i contenuti tecnici.