- Materiali richiesti
- Concetti di Line Follower
- Spiegazione del circuito
- Funzionamento del robot inseguitore di linea utilizzando MSP430
- Schema elettrico
- Spiegazione della programmazione
Il robot line follower è uno dei progetti di robotica popolari tra studenti e principianti per la sua semplicità. Segue una linea, nera o bianca, a seconda di come si programma il microcontrollore. Qui creiamo un robot che segue la linea utilizzando il launchpad MSP430 di Texas Instruments, che segue la linea nera. Se sei nuovo nel launchpad di MSP430, leggi il nostro Tutorial per iniziare con MSP430.
Materiali richiesti
- LaunchPad MSP430G2 di Texas Instruments
- Il modulo driver del motore L298D
- Cavi di collegamento
- Moduli sensore IR
- Chasis, ruota, montagne russe
- Energia IDE
- Alimentazione (3,3 V) e 5 V-12 V.
Concetti di Line Follower
Il concetto di seguace di linea è legato alla luce. Abbiamo utilizzato il comportamento della luce sulla superficie in bianco e nero. Quando la luce cade su una superficie bianca, si rifletterà quasi completamente e in caso di superficie nera la luce viene assorbita dalla superficie nera. Questo comportamento della luce spiegato viene utilizzato in questo robot inseguitore di linea.
In questo robot inseguitore di linea basato su MSP430 abbiamo utilizzato trasmettitori IR e ricevitori IR chiamati anche fotodiodi. Sono usati per inviare e ricevere luce. IR trasmette luci a infrarossi. Quando i raggi infrarossi cadono sulla superficie bianca, vengono riflessi e catturati dai fotodiodi che generano alcune variazioni di tensione. Quando la luce IR cade su una superficie nera, la luce viene assorbita dalla superficie nera e nessun raggio viene riflesso, quindi il fotodiodo non riceve luce o raggi. Per saperne di più sui sensori IR, segui il link.
Qui in questo robot inseguitore di linea basato su MSP430 quando il sensore rileva la superficie bianca, MSP ottiene 1 come input e quando rileva la linea nera MSP ottiene 0 come input.
Spiegazione del circuito
Possiamo dividere l'intero robot inseguitore di linea in varie sezioni come la sezione del sensore, la sezione di controllo e la sezione del driver.
Sezione sensore: questa sezione contiene diodi IR, potenziometro, comparatore (amplificatore operazionale) e LED. Il potenziometro viene utilizzato per impostare la tensione di riferimento su un terminale del comparatore ei sensori IR rilevano la linea e forniscono una variazione di tensione al secondo terminale del comparatore. Quindi il comparatore confronta entrambe le tensioni e genera un segnale digitale in uscita. Qui in questo circuito abbiamo usato due comparatori per due sensori. LM358 è utilizzato come comparatore. LM358 ha integrato due amplificatori operazionali a basso rumore.
Sezione di controllo: MSP430 Launchpad viene utilizzato per controllare l'intero processo del robot inseguitore di linea. Le uscite dei comparatori sono collegate ai pin digitali P1_3 e P1_4 del Launchpad MPS430. Il Launchpad MSP430 legge questi segnali e invia i comandi al circuito di pilotaggio al drive line follower.
Sezione driver: la sezione driver è composta dal driver del motore e da due motori CC. Il driver del motore viene utilizzato per azionare i motori perché il Launchpad MSP430 non fornisce tensione e corrente sufficienti al motore. Quindi abbiamo aggiunto un circuito di pilotaggio del motore per ottenere una tensione e una corrente sufficienti per il motore. Qui abbiamo utilizzato il driver L298d per la guida di motori CC. Il Launchpad MSP430 invia i comandi a questo driver del motore e quindi aziona i motori.
Abbiamo sviluppato Line Follower Robot utilizzando diversi Micrcontroller:
- Robot inseguitore di linea che utilizza un microcontrollore 8051
- Line Follower Robot utilizzando Arduino
- Line Follower Robot utilizzando Raspberry Pi
- Line Follower Robot utilizzando PIC microcontrollore
Funzionamento del robot inseguitore di linea utilizzando MSP430
Il funzionamento del line follower è molto interessante. Il robot inseguitore di linea rileva la linea nera utilizzando il sensore e quindi invia il segnale al Launchpad MSP430. Quindi MSP430 Launchpad aziona il motore in base all'uscita dei sensori.
Qui in questo progetto stiamo usando due moduli sensore IR, ovvero il sensore sinistro e il sensore destro. Quando entrambi i sensori sinistro e destro rilevano il bianco, il robot si sposta in avanti.
Se il sensore sinistro è sulla linea nera, il robot gira a sinistra.
Se il sensore destro rileva la linea nera, il robot gira a destra finché entrambi i sensori non raggiungono la superficie bianca. Quando arriva la superficie bianca, il robot riprende a muoversi in avanti.
Se entrambi i sensori si trovano sulla linea nera, il robot si ferma.
Schema elettrico
Il circuito per questo robot inseguitore di linea MSP430 è molto semplice. L'uscita dei comparatori è direttamente collegata al numero di pin digitale p1_3 e P1_4 di MSP430 Launchpad. E i pin di ingresso del driver del motore IN1, IN2, IN3 e IN4 sono collegati rispettivamente al pin digitale P1_5, P2_0, P2_1, P2_2 di MSP430 Launchpad. Un motore è collegato al pin di uscita del driver del motore OUT1 e OUT2 e un altro motore è collegato a OUT3 e OUT4. Qui abbiamo utilizzato l'alimentazione 3.3v per alimentare l'intero circuito tranne il modulo Motor Driver. Abbiamo fornito 8v al modulo driver del motore. L'utente può utilizzare 5v-12v.
Puoi anche costruire il tuo modulo IR, come ho costruito su Perf Board. Di seguito è riportato il circuito per il modulo IR:
Spiegazione della programmazione
Il programma completo e il video sono disponibili alla fine di questo articolo.
In un programma, prima di tutto, definiamo il pin di ingresso e uscita per sensore e motori. Quindi definire alcune macro per la direzione del seguace di linea e quindi scrivere una direttiva per selezionare l'uscita del sensore
Nota: il sensore può essere attivo basso o attivo alto, quindi prima controlla qual è l'uscita del sensore, quindi seleziona la direttiva commentando o rimuovendo activeLowMode . Per attivo HIGH, commentare lamacro activeLowMode .
#define l_sensor P1_3 #define r_sensor P1_4 int pins = {P1_5, P2_0, P2_1, P2_2}; #define forward 0x05 #define left 0x06 #define right 0x09 #define stop 0x00 // # define activeLowMode #ifdef activeLowMode int res = {avanti, sinistra, destra, stop}; #else int res = {stop, destra, sinistra, avanti}; #finisci se
Dopodiché, nella funzione di configurazione , diamo la direzione al sensore e al pin del motore. Quindi, nella funzione loop , controlliamo gli ingressi e inviamo l'output al modulo driver del motore per far funzionare i motori.
void setup () { for (int i = 0; i <4; i ++) pinMode (pins, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } void loop () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); for (int i = 0; i <4; i ++) digitalWrite (pins, (res >> i) & 0x01); }
Ci sono quattro condizioni in questo follower di riga che leggiamo utilizzando MSP430 Launchpad. Abbiamo utilizzato due sensori, ovvero il sensore sinistro e il sensore destro.
Condizioni: Uscita HIGH attiva
Ingresso |
Produzione |
Movimento Di Robot |
||||
Sensore sinistro |
Sensore destro |
Motore sinistro |
Motore destro |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Fermare |
0 |
1 |
1 |
0 |
0 |
0 |
Girare a destra |
1 |
0 |
0 |
0 |
1 |
0 |
Gira a sinistra |
1 |
1 |
1 |
0 |
1 |
0 |
Inoltrare |
Il programma viene scritto in base alle condizioni della tabella sopra. Controlla il codice completo e il video dimostrativo di seguito.