viernes, 25 de abril de 2014

[Tutorial] Carro Wi-Fi 4x4 con Android & Arduino

Todos hemos tenido (y manejado) alguna vez un carro a control remoto, pero ahora tienes la oportunidad de manejar tu carrito desde tu Smartphone, vía Wi-Fi! Nuestros amigos de la web Instructables comparten con nosotros este interesante tutorial que hará revivir la niñez de muchos.


Ok, si si, lo sabemos, ya venden carros de juguete controlados por Smartphone en diferentes tiendas, pero quizás aún son muy costosos, y resulta mucho más económico comprar un 4x4 (que te permitirá conducir por los terrenos más agrestes, o incluso transportar algún objeto... alguien dijo cámara?...) a control remoto, una placa de Arduino, y algunos componentes sencillos, y por supuesto, siempre es más emocionante hacerlo uno mismo.


Para este proyecto entonces, utilizaremos la estructura del 4x4 (mas no el control), su circuitería interna (electrónico que no recicla, no es electrónico), un Arduino, componentes para armar un Shield, una PC (se utilizará Visual Studio para pruebas) y claro, un Smartphone.

Recalcamos que hemos extaído este tutorial de la web Instructables, puedes encontrar el proyecto a mayor detalle (en inglés) y descargar todos los esquemáticos y códigos (de Visual y de la App) en este link, sin embargo, en este blog te daremos algunos consejos para ayudarte a construir el proyecto, así que no dejes de leernos.

A propósito, en el proyecto original utilizan un Arduino Duemilanove (o traducido a español, 2009), pero ya sabes que puedes acoplar el proyecto para usar un Arduino UNO o el que mejor se te acomode.

Manos a la Obra:

Antes de empezar a "meter mano" al diseño (o construcción) de los circuitos, te recomendamos primero ver lo que tienes, así que coge un destornillador y desarma de una vez el carrito!


Ahora, con ayuda de un multímetro, trata de reconocer los componentes del circuito original, identifica la unidad de control, la fuente de energía, la etapa de recepción de señal, los componentes de control de motores, y las etapas adicionales que puede tener el juguete. Es importante conocer estas cosas porque pueden ahorrarte trabajo al tener la posibilidad de usar lo mayor posible lo que ya está armado, así como también te puede ahorrar problemas de compatibilidad al momento de acoplar otros componentes.

En el proyecto original, luego de examinar su juguete, tomaron la decisión de construir un circuito de control de motor, puesto que el original no contaba con control de velocidad (que puede lograrse fácilmente con la PWM del Arduino), aparte del Shield, pero insistimos, antes de armar algo, primero mira si lo necesitas (o quizás necesites más cosas).

Control de Motor:


Nuestros amigos de Instructables han utilizado un Puente H (SN754410) para el control de motor, el cual puede ir conectado directamente al Arduino, pero además, han aprovechado la tarjeta para el regulador de voltaje para el Arduino. En caso quieras utilizar otro Puente H, o algún otro circuito de control de motor, te recomendamos revisar bien los valores de voltaje, tanto de alimentación como de los demás pines, para evitar incompatibilidades.


Este es el diseño de la placa impresa de Instructables, se recomienda utilizar doble capa por el espacio disponible dentro del carrito (y claro, hacer tu propio diseño de PCB... vamos! se puede hacer mucho mejor que eso), pero si tu 4x4 es lo suficientemente grande, puedes hacerlo en una sola capa.

Circuito de Arduino Shield:


El Shield utilizado por Instructables permite, a través de éste circuito, enviar y recibir los datos necesarios via Wi-Fi. Cabe recalcar que para ésto, el dispositivo cuenta con una IP, la cual debe ser especificada en la App (o en la PC para las pruebas).

Te recomendamos añadir indicadores (que pueden ser LEDs) en el envío y recepción de datos, para que puedas verificar que la comunicación se produce correctamente, además del LED que ya viene con el Wi-Fi Shield que indica que se ha establecido conexión con un router.

[Obs: Aún no sabemos para qué sirve el "Temperature-Sensor" del esquemático, si alguien lo sabe, agradeceríamos enormemente nos resuelvan la duda en los comentarios]


Éste es el PCB del circuito del Shield, que lo puedes descargar de la página del proyecto original, pero nuevamente, te invitamos a "rutearlo" tu mismo.

Acoplando el circuito completo al carro:

Antes que nada, te recomendamos que antes de imprimir tu "ruteo" y decapar tu tarjeta (o mandarla a hacer), veas las medidas de la futura tarjeta y verifiques que va a caber (con un margen de precaución) en tu juguete, sólo necesitas ver las medidas en tu Eagle (o Proteus, o el software que uses) y medir el espacio en el carrito con una regla o wincha. Ten en cuenta también que, si vas a usar parte de la circuitería original, ésta también ocupa espacio. Te recomendamos también considerar espacio, en la tarjeta y en el juguete, para tornillos y pernos, puesto que no es bueno tener las tarjetas "en el aire"


Programando el Arduino:

Lamentablemente, Instructables no ha compartido imágenes de la programación del Arduino, pero puedes descargar el código desde la web, sin embargo, las funciones son sencillas, puesto que únicamente producirá una PWM y realizará funciones accesorias (como encendido y apagado de luces) con los valores recibidos vía Wi-Fi, por tanto puedes desarrollar tu mismo el código.

Te recomendamos también definir tu propio "protocolo" para los datos, y usarlo también para la programación de la App. Por ejemplo, puedes establecer un orden de la "trama de datos" donde (por ejemplo) los primeros bits sean para luces y los siguientes para la PWM, o quizas tener tramas separadas para estas funciones identificadas por un encabezado, o quizás tener un rango de valores para cada función, eso lo dejamos a tu criterio.

Instructables nos da también la precaución de el tiempo de espera del Wi-Fi Shield. Este Shield espera de 15 a 45 segundos para establecer comunicación con el router, y una vez realizada la conexión te avisa por medio de su LED rojo, así que tenlo en cuenta.

Probando con la PC:

Antes de desarrollar la App, vamos a probar que la idea realmente funciona. Si el carro puede ser controlado por Wi-Fi, podemos mandarle las funciones vía PC, para ello nuestros amigos de Instructables han desarrollado una interfaz utilizando Visual Studio, mediante la cual envían los valores hacia el Arduino. Tu también puedes hacer tu propia interfaz, ya sea con Visual Studio o con algún otro software, y si no sabes desarrollar este tipo de software, te recomendamos pedir ayuda a algún amigo que si sepa (y así trabajar en equipo) o utilizar el software que desarrollaron en Instructables.


Te aconsejamos, antes de empezar a enviar datos vía Wi-Fi, y quizás entrar en pánico por el posible no-funcionamiento del carro, primero realiza los códigos (tanto en PC como para el Arduino) para enviar los datos por USB y controlar el carro con estos valores, y con ellos probar el funcionamiento del control de motores. Una vez que ésto funciona, recién probar la comunicación Wi-Fi, ésto para identificar dónde estás el error en caso se presente.

Desarrollando la App:

Nuestros amigos de Instructables han desarrollado una App (puedes descargarla también) que funciona, pero según ellos mismos, tiene muchos errores aún, así que, como siempre, te invitamos a desarrollar tu propia App.


Con tu propia App, tu decides si controlar el carro a través de botones (en la pantalla táctil), o con los botones de volumen, o con la inclinación de tu Smartphone, o como se te ocurra! sólo no olvides que estás enviando los datos por Wi-Fi y no por Bluetooth (debido a la gran cantidad de proyectos de Bluetooth, te puedes confundir), que necesitas especificar la IP del dispositivo, y el protocolo que tu mismo hiciste en pasos anteriores.

A jugar!:


Con todos estos pasos, puedes tener tu carrito controlado por Smartphone, con lo cual puedes tener un sin fin de aplicaciones, desde investigación, hasta aplicaciones reales como rescate o minería, pero no nos puedes engañar que, si lo tienes en tus manos, vas a jugar con él hasta el cansancio (e incluso, vas a hacer algunas bromas, lo sabemos).

Eso es todo de nuestra parte, esperamos te haya gustado este tutorial, y agradecemos nuevamente a nuestros amigos de Instructables por compartir su proyecto.

Y por último, no olvides que si llegas a desarrollar con éxito tu proyecto, contáctate con nosotros y no te pierdas nuestro evento #Andruino2K14, que tenemos muchas sorpresas para ti.



No hay comentarios:

Publicar un comentario

Cuéntanos, ¿Qué opinas?