- Materiales necesarios:
- Conceptos de seguidor de línea
- Diagrama de circuito y explicación:
- Programación del microcontrolador PIC:
- Seguidor de línea PIC en acción:
Un robot seguidor de línea es un robot simple pero fascinante para la mayoría de los estudiantes / aficionados a construir. En este tutorial aprenderemos cómo funciona un robot seguidor de línea y cómo podemos construir uno usando el microcontrolador PIC PIC16F877A. PIC16F877A es un MCU multipropósito de 40 pines de Microchip, hemos utilizado este IC en nuestra serie completa de tutoriales de PIC. Si eres nuevo, aquí es posible que desees echar un vistazo a estos tutoriales de PIC para aprender lo básico de este IC y cómo cargar programas en el microcontrolador. Como ya hemos cubierto esta información en nuestros tutoriales, los omitiremos en la explicación a continuación.
Si está interesado en la robótica, debe estar muy familiarizado con el nombre " Robot seguidor de línea ". Este robot es capaz de seguir una línea, simplemente usando un par de sensores y motores. Este robot te da espacio para un desarrollo infinito y robots como Kiva (robot de almacén de Amazon) son un ejemplo de esto. También puede consultar nuestros otros robots seguidores de línea:
- Robot seguidor de línea con microcontrolador 8051
- Robot seguidor de línea usando Arduino
- Robot seguidor de línea con Raspberry Pi
Materiales necesarios:
- PIC16F877A
- Sensor de infrarrojos (2Nos)
- Motor de engranajes de CC (2Nos)
- Controlador de motor L293D
- Chaise (también puedes construir el tuyo usando cartones)
- Banco de energía (cualquier fuente de energía disponible)
Conceptos de seguidor de línea
Line Follower Robot puede rastrear una línea con la ayuda de un sensor de infrarrojos. Este sensor tiene un transmisor de infrarrojos y un receptor de infrarrojos. El transmisor de infrarrojos (LED de infrarrojos) transmite la luz y el receptor (fotodiodo) espera a que la luz transmitida regrese. Una luz IR regresará solo si es reflejada por una superficie. Considerando que, todas las superficies no reflejan una luz IR, solo la superficie de color blanca puede reflejarlas completamente y la superficie de color negro las observará completamente como se muestra en la siguiente figura. Obtenga más información sobre el módulo de sensor de infrarrojos aquí.
Ahora usaremos dos sensores IR para verificar si el robot está en pista con la línea y dos motores para corregir el robot si se sale de la pista. Estos motores requieren alta corriente y deben ser bidireccionales; por lo tanto, usamos un módulo de controlador de motor como L293D. También necesitaremos un microcontrolador como PIC para instruir a los motores en función de los valores del sensor de infrarrojos. A continuación se muestra un diagrama de bloques simplificado del mismo.
Estos dos sensores de infrarrojos se colocarán uno a cada lado de la línea. Si ninguno de los sensores detecta una línea negra, el microcontrolador PIC indica a los motores que avancen como se muestra a continuación.
Si el sensor izquierdo aparece en una línea negra, entonces el microcontrolador indica al robot que gire a la izquierda girando la rueda derecha solo.
Si el sensor derecho aparece en una línea negra, entonces el microcontrolador le indica al robot que gire a la derecha girando solo la rueda izquierda.
Si ambos sensores aparecen en línea negra, el robot se detiene.
De esta forma, el Robot podrá seguir la línea sin salirse de la pista. Ahora veamos cómo se ven el circuito y el Código.
Diagrama de circuito y explicación:
El diagrama de circuito completo para este robot seguidor de línea basado en PIC se muestra a continuación
El circuito emplea dos sensores IR y un par de motores de engranajes de CC junto con un módulo de controlador de motor como se muestra arriba. El módulo de controlador de motor utilizado en este proyecto es L293D, necesitaremos un controlador de motor porque el pin de salida del microcontrolador PIC no puede generar suficiente corriente para que los motores funcionen. Este módulo se alimentará directamente de la fuente de alimentación (5 V) como se muestra en el circuito. El módulo tiene cuatro pines (dos para cada motor) que están conectados al PIC para controlar la dirección de los motores. También contamos con dos sensores IR que actúan como entrada al microcontrolador PIC. Estos sensores subirán (1) si están sobre una superficie blanca y bajarán (0) cuando estén sobre una superficie negra. Las conexiones de clavijas completas se ilustran en la tabla siguiente.
S. No |
Conectado desde |
Conectado a |
1 |
Sensor de infrarrojos Clavija de salida izquierda |
RD2 (patilla 21) |
2 |
Sensor de infrarrojos Pin derecho |
RD3 (patilla 22) |
4 |
Motor 1 Pin del canal A |
RC4 (patilla 23) |
5 |
Motor 1 pin del canal B |
RC5 (patilla 25) |
6 |
Pin del canal A del motor 2 |
RC6 (patilla 26) |
7 |
Pin del canal B del motor 2 |
RC7 (patilla 27) |
En el hardware actual he usado un power bank que dará una salida de + 5V directamente a través de su puerto USB; por lo tanto, pasé por alto el regulador de voltaje 7805 y alimenté el PIC, los sensores y los motores usando el mismo. Puede hacer lo mismo usando una batería de 12V junto con un regulador como se muestra en el circuito.
Programación del microcontrolador PIC:
Una vez que esté listo con su hardware, es hora de comenzar a programar. El programa completo de este proyecto de robot seguidor de línea PIC se encuentra al final de esta página. Sin embargo, las partes importantes se explican a continuación.
Inicialice los pines de E / S con las siguientes líneas. Los 2 pines del sensor IR actúan como entrada y los cuatro pines del motor actúan como pines de salida.
TRISD2 = 1; TRISD3 = 1; // Baño, los pines del sensor IR se declaran como entrada TRISC4 = 0; TRISC5 = 0; // Motor 1 pines declarados como salida TRISC6 = 0; TRISC7 = 0; // Motor 2 pines declarados como salida
Ahora, tenemos que leer el estado del sensor de infrarrojos y controlar el motor en consecuencia. Por ejemplo, si ambos sensores están altos (no están debajo de la línea negra), entonces movemos ambos motores hacia adelante como se muestra en el programa a continuación.
if (RD2 == 1 && RD3 == 1) // Ambos sensores no están sobre la línea trasera {RC4 = 0; RC5 = 1; // Motor 1 adelante RC6 = 1; RC7 = 0; // Motor 2 hacia adelante}
Si el sensor izquierdo pasa por encima de la línea negra, giramos a la derecha manteniendo el Motor 1 quieto y girando el Motor 2 hacia adelante. Este tipo de giro se denomina giro diferencial.
else if (RD2 == 0 && RD3 == 1) // El sensor izquierdo está sobre la línea negra {RC4 = 1; RC5 = 1; // Motor 1 parada RC6 = 1; RC7 = 0; // Motor 2 adelante}
De manera similar, si el sensor derecho pasa por encima de la línea negra, se hace que el robot gire a la izquierda manteniendo inmóvil el segundo motor y girando el primer motor solo en dirección de avance como se muestra a continuación.
else if (RD2 == 1 && RD3 == 0) // El sensor derecho está sobre la línea negra {RC4 = 0; RC5 = 1; // Motor 1 adelante RC6 = 1; RC7 = 1; // Parada del motor 2}
Finalmente, si ambos sensores están debajo de una línea negra, es hora de detener el bot. Esto se puede hacer poniendo todos los pines de ambos motores en alto. El código para hacer lo mismo se muestra a continuación.
else // Ambos sensores sobre la línea negra {RC4 = 1; RC5 = 1; // Motor 1 parada RC6 = 1; RC7 = 1; // Parada del motor 2}
Eso es, el programa está listo y se puede cargar al PIC usando cualquier programador como PicKit.
Seguidor de línea PIC en acción:
Una vez que el hardware y el código están listos, es hora de actuar. Como dije anteriormente, he usado un banco de energía para alimentar el bot, así que todo lo que tengo que hacer es simplemente conectar el banco de energía al bot que tiene el hardware configurado y el código ya cargado.
La placa PIC Perf se hizo para nuestra serie de tutoriales PIC, en la que aprendimos cómo usar el microcontrolador PIC. Es posible que desee volver a esos tutoriales de microcontroladores PIC usando MPLABX y XC8 si no sabe cómo grabar un programa usando Pickit 3, ya que me saltaré toda esa información básica.
Ahora, simplemente inicie el bot sobre una línea negra y debería verlo siguiendo la línea.
Es posible que tenga algunas dificultades al principio, en ese caso, siga leyendo. Si las ruedas giran en sentido opuesto, simplemente intercambie la polaridad del motor, cuya rueda gira en sentido opuesto. Si el robot se desvía de la línea, intercambie el sensor de infrarrojos y todo debería estar bien.
El funcionamiento completo del bot se puede encontrar en el video que se muestra a continuación. Espero que les guste el proyecto y hayan disfrutado construyendo algo similar. Si tiene problemas para que esto funcione, puede publicarlos en la sección de comentarios a continuación para resolverlo o usar nuestros foros para discutir los contenidos técnicos.