- Materiales necesarios:
- Conceptos de seguidor de línea
- Diagrama y explicación del circuito del robot seguidor de línea Raspberry Pi:
- Programando su Raspberry PI:
- Seguidor de línea Raspberry Pi en acción:
Como todos sabemos, Raspberry Pi es una maravillosa plataforma de desarrollo basada en microprocesador ARM. Con su alto poder computacional y sus opciones de desarrollo, puede hacer maravillas en manos de estudiantes o aficionados a la electrónica. Para obtener más información sobre una Raspberry Pi y cómo funciona, intentemos construir un robot seguidor de línea usando Raspberry Pi.
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. Puede que no suene eficiente usar un microprocesador potente como Raspberry Pi para construir un robot simple. Pero 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
Materiales necesarios:
- Raspberry Pi 3 (cualquier modelo debería funcionar)
- 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 dispositivo computacional como Raspberry Pi para instruir a los motores en función de los valores del sensor IR. 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 PI indica a los motores que avancen como se muestra a continuación.
Si el sensor izquierdo aparece en una línea negra, el PI indica al robot que gire a la izquierda girando solo la rueda derecha.
Si el sensor derecho aparece en una línea negra, el PI le indica al robot que gire a la derecha girando la rueda izquierda solo.
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 y explicación del circuito del robot seguidor de línea Raspberry Pi:
El diagrama de circuito completo para este robot seguidor de línea Raspberry Pi se muestra a continuación
Como puede ver, el circuito involucra dos sensores IR y un par de motores conectados a la Raspberry pi. El circuito completo está alimentado por un banco de energía móvil (representado por una batería AAA en el circuito de arriba).
Dado que los detalles de los pines no se mencionan en la Raspberry Pi, necesitamos verificar los pines usando la siguiente imagen
Como se muestra en la imagen, el pin de la esquina superior izquierda del PI es el pin + 5V, usamos este pin + 5V para alimentar los sensores IR como se muestra en el diagrama del circuito (cableado rojo). Luego conectamos los pines de tierra a la tierra del sensor IR y el módulo del controlador del motor usando un cable negro. El cable amarillo se usa para conectar el pin de salida del sensor 1 y 2 a los pines GPIO y 3 respectivamente.
Para impulsar los motores, necesitamos cuatro pines (A, B, A, B). Estos cuatro pines están conectados desde GPIO14,4,17 y 18 respectivamente. El cable naranja y blanco juntos forman la conexión para un motor. Entonces tenemos dos pares de este tipo para dos motores.
Los motores están conectados al módulo de controlador de motor L293D como se muestra en la imagen y el módulo de controlador es alimentado por un banco de energía. Asegúrese de que la tierra del banco de energía esté conectada a la tierra de la Raspberry Pi, solo entonces su conexión funcionará.
Programando su Raspberry PI:
Una vez que haya terminado con su ensamblaje y conexiones, su robot debería verse así.
Ahora es el momento de programar nuestro bot y ponerlo en funcionamiento. El código completo de este bot se puede encontrar al final de este tutorial. Obtenga más información sobre el programa y ejecute código en Raspberry Pi aquí. Las líneas importantes se explican a continuación.
Vamos a importar el archivo GPIO de la biblioteca, la siguiente función nos permite programar los pines GPIO de PI. También estamos cambiando el nombre de “GPIO” a “IO”, por lo que en el programa siempre que queramos referirnos a los pines GPIO usaremos la palabra 'IO'.
importar RPi.GPIO como IO
A veces, cuando los pines GPIO, que estamos tratando de usar, pueden estar realizando otras funciones. En ese caso, recibiremos advertencias mientras ejecutamos el programa. El siguiente comando le dice al PI que ignore las advertencias y continúe con el programa.
IO.setwarnings (falso)
Podemos referir los pines GPIO de PI, ya sea por el número de pin a bordo o por su número de función. Como 'PIN 29' en la placa es 'GPIO5'. Entonces decimos aquí o vamos a representar el pin aquí por '29' o '5'.
IO.setmode (IO.BCM)
Estamos configurando 6 pines como pines de entrada / salida. Los dos primeros pines son los pines de entrada para leer el sensor de infrarrojos. Los siguientes cuatro son los pines de salida, de los cuales los dos primeros se utilizan para controlar el motor derecho y los dos siguientes para el motor izquierdo.
Configuración de IO (2, IO.IN) #GPIO 2 -> Configuración de IO de salida de IR izquierda (3, IO.IN) #GPIO 3 -> Configuración de IO de salida de IR derecho (4, IO.OUT) #GPIO 4 - > Motor 1 terminal A IO.setup (14, IO.OUT) #GPIO 14 -> Motor 1 terminal B IO.setup (17, IO.OUT) #GPIO 17 -> Motor Izquierdo terminal A IO.setup (18, IO..OUT) #GPIO 18 -> Terminal izquierdo B del motor
El sensor de infrarrojos emite "Verdadero" si se encuentra sobre una superficie blanca. Entonces, siempre que ambos sensores digan Verdadero, podemos avanzar.
if (IO.input (2) == True y IO.input (3) == True): # ambos blancos avanzan IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, verdadero) # 2A + IO.output (18, falso) # 2B-
Tenemos que girar a la derecha si el primer sensor de infrarrojos pasa por una línea negra. Esto se hace leyendo el sensor de infrarrojos y, si se cumple la condición, detenemos el motor derecho y giramos el motor izquierdo solo como se muestra en el siguiente código.
elif (IO.input (2) == False y IO.input (3) == True): #turn a la derecha IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, verdadero) # 2A + salida de E / S (18, falso) # 2B-
Tenemos que girar a la izquierda si el segundo sensor de infrarrojos pasa por una línea negra. Esto se hace leyendo el sensor de infrarrojos y, si se cumple la condición, paramos el motor izquierdo y giramos el motor derecho solo como se muestra en el siguiente código.
elif (IO.input (2) == True e IO.input (3) == False): #turn a la izquierda IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, verdadero) # 2A + salida de E / S (18, verdadero) # 2B-
Si ambos sensores pasan por una línea negra, significa que el robot tiene que detenerse. Esto se puede hacer haciendo que ambos terminales del motor sean verdaderos como se muestra en el código a continuación
de lo contrario: # permanecer quieto IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Seguidor de línea Raspberry Pi en acción:
Sube el código de Python para el seguidor de línea a tu Raspberry Pi y ejecútalo. Necesitamos una fuente de alimentación portátil, un banco de energía en este caso se vuelve útil, por lo que he usado el mismo. El que estoy usando viene con dos puertos USB, así que lo he usado para alimentar el PI y otro para Power Motor Driver como se muestra en la siguiente imagen.
Ahora todo lo que tienes que hacer es configurar tu propia pista de color negro y soltar tu bot sobre ella. He usado una cinta aislante de color negro para crear la pista. Puede usar cualquier material de color negro, pero asegúrese de que el color de fondo no sea oscuro.
El funcionamiento completo del bot se puede encontrar en el video que se muestra a continuación. Espero que haya entendido el proyecto y haya disfrutado construyendo uno. Si tiene alguna pregunta, publíquela en la sección de comentarios a continuación.