- Materials necessaris
- Conceptes de seguidor de línia
- Explicació del circuit
- Funcionament del robot Line Follower mitjançant MSP430
- Esquema de connexions
- Explicació de la programació
El robot seguidor de línia és un dels projectes de robòtica més populars entre estudiants i principiants per la seva simplicitat. Segueix una línia, en blanc o negre, depenent de com programi el microcontrolador. Aquí fem un robot seguidor de línia que utilitza el llançador MSP430 de Texas Instruments, que segueix la línia negra. Si no coneixeu el llançador MSP430, consulteu el nostre tutorial sobre Com ens fixem amb MSP430.
Materials necessaris
- MSP430G2 LaunchPad de Texas Instruments
- El mòdul de controlador de motor L298D
- Connexió de cables
- Mòduls de sensor IR
- Chasis, roda, muntanya russa
- Energia IDE
- Font d'alimentació (3,3v) i 5v-12v

Conceptes de seguidor de línia
El concepte de seguidor de línia està relacionat amb la llum. Hem utilitzat el comportament de la llum a la superfície en blanc i negre. Quan la llum cau sobre una superfície blanca, es reflecteix gairebé completament i, en cas de superfície negra, la llum és absorbida per la superfície negra. Aquest comportament explicat de la llum s'utilitza en aquest robot seguidor de línia.


En aquest robot seguidor de línia basat en MSP430 hem utilitzat transmissors i receptors IR també anomenats díodes fotogràfics. S'utilitzen per enviar i rebre llum. L’IR transmet llums infraroges. Quan els rajos infrarojos cauen sobre la superfície blanca, es reflecteixen cap enrere i són captats pels fotodíodes, cosa que genera alguns canvis de voltatge. Quan la llum IR cau sobre una superfície negra, la llum és absorbida per la superfície negra i no es reflecteixen cap raig, de manera que el díode fotogràfic no rep ni llum ni raigs. Per obtenir més informació sobre els sensors IR, seguiu l'enllaç.
Aquí, en aquest robot seguidor de línia basat en MSP430, quan el sensor detecta la superfície blanca, MSP obté 1 com a entrada i quan detecta la línia negra MSP obté 0 com a entrada.
Explicació del circuit
Podem dividir tot el robot seguidor de línia en diverses seccions, com ara la secció del sensor, la secció de control i la secció del controlador.

Secció del sensor: aquesta secció conté díodes IR, potenciòmetre, comparador (Op-Amp) i LED. El potenciòmetre s’utilitza per configurar el voltatge de referència en un terminal del comparador i els sensors IR detecten la línia i proporcionen un canvi de tensió en el segon terminal del comparador. A continuació, el comparador compara ambdues tensions i genera un senyal digital a la sortida. En aquest circuit hem utilitzat dos comparadors per a dos sensors. LM358 s'utilitza com a comparador. LM358 ha incorporat dos amplificadors operatius de baix soroll.
Secció de control: MSP430 Launchpad s’utilitza per controlar tot el procés del robot seguidor de línia. Les sortides dels comparadors estan connectades al pin digital P1_3 i P1_4 del MPS430 Launchpad. MSP430 Launchpad llegeix aquests senyals i envia ordres al circuit del controlador per conduir el seguidor de la línia.
Secció de controlador: la secció de controlador consta de controlador de motor i dos motors de corrent continu. El controlador de motor s’utilitza per conduir motors perquè MSP430 Launchpad no subministra prou tensió i corrent al motor. Per tant, hem afegit un circuit de controlador de motor per obtenir prou tensió i corrent per al motor. Aquí hem utilitzat el controlador L298d per conduir motors DC. MSP430 Launchpad envia ordres a aquest controlador de motor i després acciona motors.
Hem desenvolupat robots Line Follower mitjançant diferents Micrcontroller:
- Robot de seguiment de línia mitjançant microcontrolador 8051
- Robot de seguiment de línia que utilitza Arduino
- Robot de seguiment de línia amb Raspberry Pi
- Robot de seguiment de línia mitjançant microcontrolador PIC
Funcionament del robot Line Follower mitjançant MSP430
El treball del seguidor de línia és molt interessant. El robot seguidor de línia detecta la línia negra mitjançant el sensor i, a continuació, envia el senyal a MSP430 Launchpad. A continuació, MSP430 Launchpad condueix el motor segons la sortida dels sensors.
Aquí en aquest projecte estem utilitzant dos mòduls de sensor IR, és a dir, el sensor esquerre i el sensor dret. Quan el sensor esquerre i dret detecta el blanc, el robot avança.

Si el sensor esquerre surt en línia negra, el robot gira cap a l'esquerra.

Si el sensor dret detecta la línia negra, el robot gira cap a la dreta fins que els dos sensors arribin a la superfície blanca. Quan arriba la superfície blanca, el robot torna a avançar.

Si els dos sensors es posen en línia negra, el robot s’atura.

Esquema de connexions
El circuit d’aquest robot MSP430 Line Follower és molt senzill. La sortida dels comparadors està directament connectada al número de pin digital p1_3 i P1_4 de MSP430 Launchpad. I els pins d'entrada IN1, IN2, IN3 i IN4 del conductor del motor estan connectats al pin digital P1_5, P2_0, P2_1, P2_2 de MSP430 Launchpad. Un motor està connectat al pin de sortida del controlador de motor OUT1 i OUT2 i un altre motor està connectat a OUT3 i OUT4. Aquí hem utilitzat el subministrament de 3.3v per alimentar tot el circuit, excepte el mòdul de controlador de motor. Hem subministrat el mòdul de controlador de motor de 8v. L'usuari pot utilitzar 5v-12v.


També podeu crear el vostre propi mòdul IR, com he creat a Perf Board. A continuació es mostra el circuit del mòdul IR:

Explicació de la programació
Podeu trobar un programa i un vídeo complet al final d’aquest article.
En un programa, en primer lloc, definim el pin d’entrada i sortida per al sensor i els motors. A continuació, definiu algunes macros per a la direcció del seguidor de línia i, a continuació, escriviu una directiva per seleccionar la sortida del sensor
Nota: el sensor pot estar actiu baix o actiu alt; per tant, primer comproveu quina és la sortida del sensor i, a continuació, seleccioneu la directiva comentant o descomentant activeLowMode . Per a HIGH actiu, comenteu 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 = {endavant, esquerra, dreta, atura}; #else int res = {parada, dreta, esquerra, endavant}; #endif
Després, en la funció de configuració , donem direcció al sensor i al pin del motor. A continuació, a la funció de bucle , comprovem les entrades i enviem la sortida al mòdul del controlador del motor per fer funcionar els motors.
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); per a (int i = 0; i <4; i ++) digitalWrite (pins, (res >> i) & 0x01); }
Hi ha quatre condicions en aquest seguidor de línia que llegim mitjançant MSP430 Launchpad. Hem utilitzat dos sensors: el sensor esquerre i el dret.
Condicions: Sortida activa ALTA
|
Entrada |
Sortida |
Moviment De Robot |
||||
|
Sensor esquerre |
Sensor dret |
Motor esquerre |
Motor dret |
|||
|
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
Atura |
|
0 |
1 |
1 |
0 |
0 |
0 |
Giri a la dreta |
|
1 |
0 |
0 |
0 |
1 |
0 |
Giri a l'esquerra |
|
1 |
1 |
1 |
0 |
1 |
0 |
Endavant |
El programa s’escriu d’acord amb les condicions de la taula anterior. Consulteu el codi complet i el vídeo de demostració a continuació.
