- Materiales necesarios
- Conceptos de seguidor de línea
- Explicación del circuito
- Funcionamiento del robot seguidor de línea utilizando MSP430
- Diagrama de circuito
- Explicación de programación
El robot seguidor de línea es uno de los proyectos de robótica más populares entre estudiantes y principiantes debido a su simplicidad. Sigue una línea, ya sea negra o blanca, dependiendo de cómo programe su microcontrolador. Aquí hacemos un robot seguidor de línea usando la plataforma de lanzamiento MSP430 de Texas Instruments, que sigue la línea negra. Si es nuevo en el Launchpad de MSP430, lea nuestro Tutorial Introducción a MSP430.
Materiales necesarios
- MSP430G2 LaunchPad de Texas Instruments
- El módulo de controlador de motor L298D
- Cables de conexión
- Módulos de sensor de infrarrojos
- Chasis, rueda, montaña rusa
- Energia IDE
- Fuente de alimentación (3.3v) y 5v-12v
Conceptos de seguidor de línea
El concepto de seguidor de línea está relacionado con la luz. Hemos utilizado el comportamiento de la luz en una superficie en blanco y negro. Cuando la luz cae sobre una superficie blanca, se refleja casi por completo y en el caso de la superficie negra, la luz es absorbida por la superficie negra. Este comportamiento explicado de la luz se utiliza en este robot seguidor de línea.
En este robot seguidor de línea basado en MSP430 hemos utilizado transmisores de infrarrojos y receptores de infrarrojos también llamados fotodiodos. Se utilizan para enviar y recibir luz. IR transmite luces infrarrojas. Cuando los rayos infrarrojos caen sobre una superficie blanca, se reflejan y son captados por fotodiodos, lo que genera algunos cambios de voltaje. Cuando la luz IR incide sobre una superficie negra, la luz es absorbida por la superficie negra y no se reflejan rayos, por lo que el fotodiodo no recibe luz ni rayos. Para obtener más información sobre los sensores de infrarrojos, siga el enlace.
Aquí, en este robot seguidor de línea basado en MSP430, cuando el sensor detecta una superficie blanca, entonces MSP obtiene 1 como entrada y cuando detecta la línea negra, MSP obtiene 0 como entrada.
Explicación del circuito
Podemos dividir todo el robot seguidor de línea en varias secciones como la sección del sensor, la sección de control y la sección del controlador.
Sección del sensor: esta sección contiene diodos IR, potenciómetro, comparador (amplificador operacional) y LED. El potenciómetro se utiliza para configurar el voltaje de referencia en el terminal único del comparador y los sensores de infrarrojos detectan la línea y proporcionan un cambio de voltaje en el segundo terminal del comparador. Luego, el comparador compara ambos voltajes y genera una señal digital en la salida. Aquí en este circuito usamos dos comparadores para dos sensores. LM358 se utiliza como comparador. El LM358 tiene incorporados dos amplificadores operacionales de bajo ruido.
Sección de control: MSP430 Launchpad se utiliza para controlar todo el proceso del robot seguidor de línea. Las salidas de los comparadores están conectadas al pin digital P1_3 y P1_4 del Launchpad MPS430. MSP430 Launchpad lee estas señales y envía comandos al circuito del controlador para impulsar el seguidor de línea.
Sección del controlador: la sección del controlador consta de un controlador de motor y dos motores de CC. El controlador de motor se utiliza para impulsar motores porque el Launchpad MSP430 no suministra suficiente voltaje y corriente al motor. Entonces agregamos un circuito de controlador de motor para obtener suficiente voltaje y corriente para el motor. Aquí hemos utilizado el controlador L298d para impulsar motores de CC. Launchpad MSP430 envía comandos a este controlador de motor y luego impulsa los motores.
Hemos desarrollado Line Follower Robots usando diferentes Micrcontroller:
- Robot seguidor de línea con microcontrolador 8051
- Robot seguidor de línea usando Arduino
- Robot seguidor de línea con Raspberry Pi
- Robot seguidor de línea con microcontrolador PIC
Funcionamiento del robot seguidor de línea utilizando MSP430
El trabajo del seguidor de línea es muy interesante. El robot seguidor de línea detecta la línea negra mediante el uso de un sensor y luego envía la señal a la plataforma de lanzamiento MSP430. Luego, MSP430 Launchpad impulsa el motor de acuerdo con la salida de los sensores.
Aquí, en este proyecto, estamos utilizando dos módulos de sensor de infrarrojos, a saber, el sensor izquierdo y el sensor derecho. Cuando los sensores izquierdo y derecho detectan el blanco, el robot avanza.
Si el sensor izquierdo aparece en una línea negra, el robot gira hacia el lado izquierdo.
Si el sensor derecho detecta una línea negra, entonces el robot gira el lado derecho hasta que ambos sensores lleguen a la superficie blanca. Cuando aparece la superficie blanca, el robot comienza a avanzar nuevamente.
Si ambos sensores aparecen en línea negra, el robot se detiene.
Diagrama de circuito
El circuito de este robot seguidor de línea MSP430 es muy simple. La salida de los comparadores se conecta directamente al número de pin digital p1_3 y P1_4 del Launchpad del MSP430. Y el pin de entrada IN1, IN2, IN3 e IN4 del controlador del motor están conectados al pin digital P1_5, P2_0, P2_1, P2_2 del Launchpad del MSP430 respectivamente. Un motor está conectado en el pin de salida del controlador de motor OUT1 y OUT2, y otro motor está conectado en OUT3 y OUT4. Aquí hemos utilizado una fuente de 3.3v para alimentar todo el circuito, excepto el módulo del controlador del motor. Hemos suministrado 8v al módulo del controlador del motor. El usuario puede utilizar 5v-12v.
También puede construir su propio módulo de infrarrojos, como lo hice en Perf Board. A continuación se muestra el circuito para el módulo IR:
Explicación de programación
El programa completo y el video se pueden encontrar al final de este artículo.
En un programa, en primer lugar, definimos el pin de entrada y salida para sensores y motores. Luego defina algunas macros para la dirección del seguidor de línea y luego escriba una directiva para seleccionar la salida del sensor
Nota: El sensor puede estar activo bajo o activo alto, así que primero verifique cuál es la salida del sensor y luego seleccione la directiva comentando o descomentando activeLowMode . Para active HIGH, comente lamacro activeLowMode .
#define l_sensor P1_3 #define r_sensor P1_4 int pin = {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 = {adelante, izquierda, derecha, parada}; #else int res = {detener, derecha, izquierda, adelante}; #terminara si
Después de eso, en la función de configuración , le damos dirección al sensor y al pin del motor. Y luego, en la función de bucle , verificamos las entradas y enviamos la salida al módulo del controlador del motor para hacer funcionar los motores.
configuración vacía () { para (int i = 0; i <4; i ++) pinMode (pines, SALIDA); pinMode (l_sensor, ENTRADA); pinMode (r_sensor, ENTRADA); } bucle vacío () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); para (int i = 0; i <4; i ++) digitalWrite (pines, (res >> i) & 0x01); }
Hay cuatro condiciones en este seguidor de línea que leemos usando MSP430 Launchpad. Hemos utilizado dos sensores, a saber, el sensor izquierdo y el sensor derecho.
Condiciones: Salida ALTA activa
Entrada |
Salida |
Movimiento De robot |
||||
Sensor izquierdo |
Sensor derecho |
Motor Izquierdo |
Motor derecho |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Detener |
0 |
1 |
1 |
0 |
0 |
0 |
Girar a la derecha |
1 |
0 |
0 |
0 |
1 |
0 |
Girar a la izquierda |
1 |
1 |
1 |
0 |
1 |
0 |
Adelante |
El programa se escribe de acuerdo con las condiciones de la tabla anterior. Consulte el código completo y el video de demostración a continuación.