miércoles, 30 de diciembre de 2020

Coche robot con arduino: Sigue líneas de 4 canales (Parte 1 de 2)

 Hola a tod@s.

En este tema vamos a ver como realizar las conexiones de hardware de los diferentes componentes del sigue líneas, la comprobación de que funcionan correctamente y las ideas principales de como programarlo. 

Con el kit de coche robótico tenemos 4 sensores. Cada uno de ellos compuesto por un emisor de LED infrarrojo y un receptor fototransistor. De la web <enlace> : El LED infrarrojo emite luz infrarroja, o sea, de mayor longitud de onda (o menor frecuencia) que la podemos ver los humanos, así que para nosotros es invisible. Si esta luz choca contra una superficie blanca se reflejará y llegará al fototransistor. Si por el contrario golpea en una superficie negra, el material absorberá la mayoría de la luz y no llegará al fotorreceptor. Pero el concepto de la emisión y recepción de señales infrarrojas no es, ni mucho menos trivial, y exige tener nociones de ondas electromagnéticas (energía, frecuencia, longitud, etc...) que sobrepasan nuestro nivel. No obstante para aquellos que querás profundizar más en el tema os recomiendo la excelente descripción de  artículo de Prometec sobre sensores infrarrojos.

Además de los 4 sensores tenemos una placa controladora que permite tres cosas principalmente:

- Reducir los 4x3 = 12 cables que vienen de los 4 sensores a 6 cables, 4 de señal uno de voltaje y otro de ground, ya que unifica todos los voltajes y ground de los sensores.

- Permite regular los sensores utilizando los potenciómetros azules con la rueda blanca que pueden girarse para graduar la sensibilidad de los mismos.

- Permite también comprobar la recepción de señal de cada sensor gracias a los pequeños leds que lleva incorporados la controladora que se encienden o apagan para cada uno de los 4 sensores en función de que mande una señal de 1 o 0.

Y por último el kit viene con el cableado para realizar las conexiones:



Las conexiones son sencillas de realizar simplemente hay que tener cuidado de conectar el pin de OUT, VCC y GND de cada sensor con el correspondiente de IN, VCC y GND en la controladora. En los sensores y en la controladora viene escrito en pequeñito la función de cada PIN.



El siguiente paso será montar la controladora y los sensores en el coche y conectar los 6 pines de la controladora a Arduino. Dos pines para Vcc y GND y los otros 4 para cada una de las señales de los sensores. En mi caso he seguido el siguiente orden:

- Sensor de la derecha exterior PIN 7 de arduino.
- Sensor de la derecha interior PIN 8 de arduino.
- Sensor de la izquierda interior PIN 11 de arduino.
- Sensor de la izquierda exterior PIN 12 de arduino.




En el siguiente vídeo hay más información detallada sobre la controladora de infrarrojos:


Con todo montado en el coche podremos hacer las primeras pruebas utilizando los leds de señal de la controladora sigue líneas. Para ello habría que ir poniendo los sensores encima de una superficie oscura para comprobar que se apagan y encienden las luces de cada sensor. Con el potenciómetro de cada uno de ellos podemos regular los encendidos. Estas comprobaciones también se pueden hacer desde arduino como veremos en el siguiente paso.

Utilizando bitbloq para la programación en la siguiente imagen vemos un programa dedicado solo al sigue líneas por eso no tiene el resto de componentes del coche, aunque al final acabaremos teniendo todos juntos. Lo primero será colocar cada componente de bitbloq en los mismos pines y con un nombre que nos ayude a saber de que sensor se trata. En la siguiente imagen se ve el componente del pin 7 que he llamado: infraref_right_ext.


En la siguiente imagen puede verse un sencillo programa que nos permitirá enviar por puerto serie la información de los sensores previamente guardada en una variable. Como la información de los sensores es numérica y con decimales, previamente la convertimos a entero para que aparezca solo un 0 o un 1 y la convertimos a texto para que en la línea de resultados nos aparezcan 4 dígitos, ceros o unos, indicando el estado de cada sensor. El resultado serán líneas del tipo 0000 si todos los sensores están encima de algo claro o 1111 si están encima de algo oscuro, o 0011 si los dos primeros están sobre algo claro y los dos siguientes sobre algo oscuro.


Una imagen de la línea completa. Haciendo click sobre la imagen puede agrandarse:


Ya por último abriendo el monitor serie podemos comprobar los valores que envían los sensores que coincidirán con el encendido de los leds de la controladora que comentaba antes y que pueden regularse con los potenciómetros de la controladora de sigue líneas.



Una vez comprobado que los sensores funcionan correctamente el siguiente paso será programarlos para que hagan que el coche siga una línea negra. Para ello tendremos que tener en cuenta que tal y como hemos visto en el programa que enviaba los datos al puerto serie, los sensores devuelven un 1 cuando están sobre una línea negra y 0 cuando están sobre algo blanco o más claro.

Teniendo esto en cuenta hay muchas opciones para ir creando el programa y la forma en que el coche sigue la línea y responde a los cambios depende mucho de la eficiencia con la que se programe, de manera que dejo en las siguientes imágenes unas ideas de posibles condicionales a utilizar pero sin mostrar su contenido para que sirvan de idea, pero realmente os invito a ir haciendo vuestras propias pruebas e ir aprendiendo de ellas para ir mejorando el comportamiento del coche a la hora de seguir las líneas. Para ello es muy útil crear un pequeño circuito de pruebas o al menos una recta con un giro para probar el resultado de la programación.




Mucho ánimo con la programación, pruebas y ajustes, según vayamos avanzando en el control sigue líneas nos podremos retos algo más difíciles y circuitos más complejos.

Un saludo,

Raúl.

No hay comentarios:

Publicar un comentario