Vídeo de test y configuración del Coche v2.0

Aquí muestro el proceso de verificación y configuración de los sensores, botones del mando a distancia y modo de funcionamiento como simple coche teledirigido.

Como curiosidad, he hecho otras prueba a parte y he determinado que el radio de giro del coche, a baja velocidad, es de unos 68cm.

P.D.: Espero que mi novia no me mate porque el coche le diera un golpecito a la cámara al final :( ¡¡Lo siento!! :S

Coche v2.0

Ya he terminado de construir el coche que seguirá pistas de color negro. He hecho bastantes cambios. Después de freir tres circuitos distintos para controlar los motores, decidí hacer un shield para controlar los motores utilizando el circuito integrado L239D, que es un “full bridge” con lo necesario para mover motores DC. Hay a la venta muchos Motor Shield ya hechos y con más funcionalidades por un módico precio (a penas llegan a los 15€). Sin embargo es mucho más romántico hacerse uno propio (y quemar 3 por el camino).

Aquí están las fotos del resultado. En otro post comentaré lo de hacerse el controlador del motor y un vídeo con el programa de test y configuración.

Presento el Coche v2.0 con nuevos componentes y funcionalidades:

Nuevos componentes:

  • Nueva plataforma de transporte del arduino. La placa que cubría las pilas del coche teledirigido original la he pegado con superglú, y lo bueno es que aguanta el peso del arduino y el shield perfectamente.
  • Shield hecho a mano para controlar los motores, como se puede apreciar apilado sobre el arduino y amarrado todo a la placa-soporte mediante un alambre amarillo (el color no es importante ;)
  • Receptor de pulsaciones a distancia (control remoto), encima de las pilas y pegado con cinta adhesiva blanca encima de las pilas.
  • En total 3 sensores de camino. He añadido 2 a la parte inferior y le he puesto una tapa de cartón que parece profesional.
  • Un sensor frontal de colisión, que detecta si hay objetos delante para no colisionar.

Los citados sensores inferiores:

Vista delantera:

Detalle de los potenciómetros de configuración de sensibilidad de los sensores y el sensor de colisión:

Detalle de los comparadores de los sensores:

Interfaz de usuario (botón y led):

Vista trasera del Arduino y su shield para motores (actualmente el shield toma la corriente para los motores del pin Vin, no externamente como en la foto):

Al shield de motores le añadí unos pines para tener más tomas de 5V y GND que necesitaba para tantos módulos que tengo:

Resultados del “robot”

He terminado de construir el “robot” coche que seguirá caminos de color negro. La primera versión, claro.

En esta foto se puede ver el sensor de camino del coche:

En la siguiente se muestra una visión superior del coche. De izquierda a derecha los modulos son: selector de potencial de comparación para los sensores, módulo de comparadores, módulo de control de los motores (y debajo está la alimentación, 8×1.2V), interfaz de usuario (y distribuidor de corriente) y el Arduino Mega.

Visto desde la parte frontal, se pueden apreciar los potenciómetros en la parte frontal, después el módulo de comparación de señales, la alimentación (tapada) junto con el controlador de los motores, el interruptor rojo a la derecha de activación/desactivación de los motores, …

En la siguiente imagen se puede ver el controlador de los motores y el módulo de interfaz de usuario (además de distribuidor de corriente). La interfaz de usuario se compone de un LED verde y un botón (que en la foto se ve tapado por cables azules).

Finalmente, la parte trasera, donde está el Arduino en el soporte de arrastre. En esta imagen se puede ver el botón de la interfaz de usuario.

Todavía tengo que programarlo y ver si funciona…

Lectura digital de sensores infrarrojos

Con el fin de poder leer un sensor infrarrojo del tipo diodo (aunque realmente es un transistor con una base fotosensible) de manera digital, se realizará el siguiente montaje que utiliza un amplificador operacional:

Funcionamiento

El amplificador operacional compara el voltaje analógico que establece el sensor infrarrojo con un voltaje configurable mediante el potenciómetro de 4,7Mohms.

Cuando el voltaje fijado por el sensor es mayor que el fijado por el potenciómetro, el amplificador operadional pone a su salida un 1 lógico (5V).

Cuando el voltaje fijado por el pontenciómetro es mayor que el del sensor, el amplificador operacional pone a su salida un 0 lógico (0V).

Base teórica

El circuito del sensor (a la izquierda) se comporta exáctamente igual que el circuito para la lectura analógica, mientras que el potenciómetro permite configurar un potencial con el que comparar.

En el diagrama se muestra un potenciómetro de 3 patas, esto es, en el terminal intermedio se dispone del valor y potencial configurados, mientras que entre los terminales de los extremos se dispone de toda la resistencia y la totalidad de diferencia de potencial.

Como se puede observar, el potenciómetro es de 4,7Mohms. Mejor cuanto mayor sea el valor, ya que sólo nos importa el potencial en el punto configurado y con una resistencia muy grande evitaremos gastar batería porque circulará menos corriente (punto importante si estamos alimentando todo el rato el potenciómetro).

Para el potenciómetro se han utilizado 3 voltios (en realidad 3,3V del Arduino). Esto permite afinar más el voltaje seleccionado con el potenciómetro, ya que el sensor infrarrojo no va a dar más de 2,5 voltios de diferencia de potencial al ser estimulado por un emisor infrarrojo (por una llama sí) y se desperdiciaría rango de configuración si se usasen 5 voltios.

Código

El siguiente código simplemente escribe en el puerto digital 13 el valor leído en el puerto digital 2.

(Código no probado)