Este proyecto me hace especial ilusión, ya que lo desarrollé hace ya más de 5 años, cuando la movilidad estaba aún en pañales. De hecho he recuperado las fotos y vídeos que realicé en aquel momento y podéis comprobar que el teléfono utilizado es un Google Nexus One, el primer dispositivo Nexus de la historia, que por aquella época era el dispositivo Android estrella en el mercado. También podéis ver que la interfaz gráfica de la app es bastante anticuada. En su momento tenía bastante buena pinta y a día de hoy la app sigue publicada en Google Play, con unas 50.000 descargas y una puntuación de 4.4 estrellas sobre 5. No está mal 🙂

Bueno, hecha la introducción, vamos a presentar el proyecto. Mobot BTCar es un coche de radiocontrol de jueguete, modificado para ser controlado desde un smartphone utilizando una placa Arduino y un módulo bluetooth. El funcionamiento es muy sencillo, se puentean los conectores originales del chip que controla el motor y el servo de dirección del coche a pines digitales de la placa Arduino. De esta manera, en lugar de controlar el coche a través del mando original que funciona con infrarrojos, pasamos a controlarlo a través de la aplicación del teléfono, que se conecta con la placa mediante una interfaz bluetooth y envía los mismos comandos que el mando original.

En la versión inicial la placa utilizada era un Arduino Uno y la fuente de energía era una batería reciclada procedente de un avión RC que se situó fuera del coche por falta de espacio en el interior. En una revisión posterior se cambió la placa por un Arduino Mini, mucho más pequeña y discreta y de esta manera se pudo introducir la batería en el interior de la carrocería. Además se cambió la batería por 4 pilas normales de 1.5V colocadas en un portapilas.

Además de la modificación de la placa de control, se instalaron en el coche leds para las luces cortas y largas (en los faros delanteros) y luz de posición y de marcha atrás (en los pilotos traseros). Estos leds también se controlan desde la placa Arduino y se gestionan desde la aplicación móvil.

Componentes

La pieza principal del proyecto es un coche de radiocontrol de juguete de los que se venden en cualquier juguetería. Este tipo de coches suelen llevar el mismo tipo de microcontrolador, tan simple que tiene un receptor IR para recibir las señales procedentes del mando de control y dichas señales las transmite a los motores/servos a través de un pin determinado. En mi caso, el microcontrolador es un Realtek RX2 / TX2 pero la mayoría son compatibles y funcionan de la misma manera.

La placa Arduino puede ser cualquier modelo de la gama. Como comenaba anteriormente, en la primera versión utilicé un Arduino Uno por ser más sencillo a la hora de cablear, pero ocupa mucho espacio, por lo que recomiendo un Arduino Pro Mini y una placa de prototipado en la que soldar la placa y los cables que irán a la placa del coche.

En total, los componentes necesarios son los siguientes:

Creo que no me dejo nada. Con todo esto, procederemos a la modificación del coche.

Construcción

Lo primero que tenemos que hacer es quitar la carrocería de plástico del coche para acceder a la placa de control que está situada en el interior. Una vez tenemos delante el microcontrolador del coche, vamos a realizar la parte más complicada del proyecto, que es puentear los pines adecuados para controlar los motores y servos del coche desde la placa Arduino.

Como se ha comentado anteriormente, en mi caso el chip que lleva el coche es un Realtek RX2/TX2 y la mayoría de los modelos llevarán este mismo chip o uno compatible, debido a que son muy económicos y sencillos y estas características los hacen ideales para un coche de jueguete como el que nos ocupa.

Si el coche que utilizáis no tiene el mismo chip, tendréis que investigar para identificar cuales de los pines del microcontrolador envía las señales a cada componente. Esto se puede hacer o bien siguiendo el recorrido del cable que une la placa con los motores en la placa hasta llegar al pin correspondiente o bien con un amperímetro midiendo la señal de cada pin al activar cada control del mando del coche.

Bien, ya hemos identificado los pines correspondientes del microcontrolador. Ahora nos toca soldar un cable a cada salida del chip de las que controlan las señales de aceleración hacia delante, aceleración hacia atrás, turbo, giro a la derecha y giro a la izquierda, además de la salida GND que tendremos que conectarla a tierra. Las soldaduras os recomiendo no realizarlas directamente sobre los pines del microcontrolador, ya que están muy juntos y corréis el riesgo de puentear varios pines, lo que dejaría inservible el circuito. Es mejor seguir el recorrido de cada pin por la placa hasta algún punto de soldadura que podamos puentear y soldar allí cada cable. También es recomendable etiquetar con papel o cinta aislante cada cable, para poder identificarlos posteriormente al soldarlos a la placa Arduino.

Una vez puenteados los pines, el microcontrolador podría retirarse de la placa, ya que el control se va a hacer desde la placa Arduino. Yo hice esto pero luego pensé que habría sido mejor mantenerlo y de esta manera tener la opción de seguir controlando el coche a través del mando original, de manera que si preferís esta opción, podéis mantener el microcontrolador y de esta manera conseguir un control “dual” del coche desde su mando o desde el smartphone.

A continuación puedes ver el esquema de pines del microcontrolador Realtek:

  • Pin 2 – GND
  • Pin 6 – Derecha
  • Pin 7 – Izquierda
  • Pin 10 – Atrás
  • Pin 11 – Alante
  • Pin 12 – Turbo

Ahora que ya tenemos puenteados todos los pines del microcontrolador, toca ponerse con las luces del coche. Este paso es opcional. La funcionalidad básica es poder controlar el coche desde el teléfono pero el proyecto quedará mucho más completo si además controlamos las luces del vehículo.

El modelo de coche que utilicé venía con luces blancas delante y luces rojas detrás que se encendían automáticamente al acelerar o dar marcha atrás y se apagaban cuando el coche se detenía. Por tanto yo utilicé los leds que ya estaban instalados y además añadí otro par de leds con más potencia en los faros delanteros para usarlos como luces largas y otro par de leds blancos en los pilotos traseros para utilizarlos como luz de marcha atrás. Para instalar estos nuevos juegos tuve que agujerear el chasis de plástico con una broca pequeña en la misma zona en la que van las luces en el modelo real.

Una vez instalados todos los leds, cortamos los cables originales que unen las luces iniciales con la placa original, ya que en este caso vamos a controlar también las luces desde la placa Arduino, y soldamos nuevos cables a las dos patas de cada led. Las patas cortas de cada led (ánodos) habrá que conectarlos entre si y todos ellos irán a una entrada GND de la placa Arduino. Las patas largas de cada led (cátodos) se conectarán por pares: los dos leds de las luces cortas, los dos leds de las luces largas, los dos leds para las luces traseras y los dos leds para la marcha atrás. Cada uno de estos pares se conecta a una resistencia de 1K para evitar que los leds se quemen.

Finalmente nos queda conectar cables a cada uno de los 4 pines del módulo Bluetooth.

Ya lo tenemos todo preparado. Ahora solo queda conectar todos los cables a la placa Arduino, tanto los que conectan con los motores y servos como los que conectan con los leds y con el módulo bluetooth. Si estamos utilizando una placa Arduino Uno o similar, bastará con pinchar los cables en cada pin. Si por el contrario estamos utilizando un Arduino Pro Mini o similar, habrá que soldar los cables a los pines correspondientes.

A continuación se muestra el mapa completo de conexiones. La placa es un Arduino Uno pero el mapa y situación de los pines en un Arduino Pro Mini es la misma, de manera que se puede utilizar el mapa igualmente.

Ya solo queda resolver el problema de la alimentación de la placa. En un primer intento, conecté la placa a la propia alimentación del coche, el cual lleva 4 pilas AA, pero estas baterías no tenían la potencia suficiente para alimentar todo el sistema, incluyendo motores, placa Arduino, módulo bluetooth y luces. Por esta razón, opté por añadir una fuente adicional de energía consistente en otras 4 pilas AA que alimentarán la placa Arduino, el módulo bluetooth y las luces, dejando la alimentación original para gestionar los motores.

Programación de la placa Arduino

En los siguientes links se puede ver o descargar el código fuente completo que debemos cargar en la placa Arduino utilizando el entorno oficial que proporciona Arduino para desarrollo. Este código es el encargado de gestionar las comunicaciones entre la aplicación móvil y la placa Arduino mediante la placa bluetooth y de enviar las señales correspondientes a motores y leds.

Ver Código Fuente

Descargar Código Fuente

 

Aplicación Android

La aplicación utilizada para el control del coche se desarrolló para Android y está disponible en Google Play. Podéis acceder a la aplicación a través del siguiente enlace:

Google-play-logo

Demostración

En le vídeo que se muestra a continuación podéis ver el coche funcionando y controlado a través de la aplicación móvil. Espero que os guste.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s