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.



jueves, 24 de abril de 2014

[Tutorial] ArduSmartPilot: Arma tu Dron con Arduino y Android

Directamente desde la Universidad de Reutlingen de Alemania, nos llega este interesante tutorial para armar tu propio Dron con Android y Arduino. El proyecto de esta universidad está enfocado a escolares, para que éstos puedan iniciarse en el mundo de la ingeniería, así que si eres escolar, demuestra tu habilidad! si ya eres universitario, puedes llevar este proyecto a otro nivel! y si ya eres profesional, bueno, a hacerlo como tal.


El proyecto consiste en armar un Dron (o nave comandada remotamente) que pueda ser controlado desde un Smartphone a través de Bluetooth, por lo cual dividiremos el proyecto en cuatro partes: Estructura, Hardware, Programación y App.


Este proyecto, como ya lo habíamos mencionado, lo hemos extraído de la web de la Universidad de Reutlingen, y puedes revisarlo en el siguiente enlace: ArduSmartPilot (Dentro también puedes encontrar documentación del proyecto y las guías de programación del hardware y de la app, pero ojo, están en alemán).

Estructura:


Los autores originales de este proyecto utilizaron el planeador de juguete "Wurfgleiter Felix80" del fabricante Miniprop. Éste planeador está hecho de polipropileno extruído, lo cual le da ligereza para poder volar, elasticidad para no dañarse si choca con algo, es fácilmente modificable con una cuchilla, y tiene bajo costo, por lo que puedes buscar un planeador similar, o desarrollar el tuyo propio (como ingeniero que se respeta).

Hardware:

En este proyecto, se busca que el circuito implantado en el planeador reciba las ordenes desde un Smartphone vía Bluetooth, con estos datos controle la velocidad de una hélice (que será incorporada a la punta del planeador), y a su vez controle la dirección del avión a través de dos servomotores (conectados a la hélice). Además, nuestro Dron contará con una serie de sensores, los cuales enviarán los datos medidos a la unidad de control y éste los enviará al Smartphone (lógicamente, también vía Bluetooth). En la siguiente cuadro podemos ver el diagrama de bloques del circuito (hacer caso omiso a los símbolos de Processing y Arduino, que se explicarán en breve).


Ahora que ya tenemos más claro el circuito que debemos desarrollar, es momento de escoger la unidad de control. Necesitamos un controlador que sea ligero, robusto, de fácil programación, bajo costo y bajo consumo de energía (al ser un dispositivo inalámbrico, trabajará con baterias), por lo cual en el proyecto original seleccionaron el Arduino Pro Mini (ATMega 328, 3.3V, 8MHz), puedes escoger el mismo o el que más te guste, o incluso algún controlador que no sea Arduino, pero ten en cuenta las especificaciones.


Un inconveniente del Arduino Pro Mini, es que no tiene puerto USB, por lo cual debe utilizarse un módulo Bluetooth que utilice un puerto serial. En el proyecto original se utilizó un módulo HC-05 debido a que ya posee una antena incorporada. Además, la Universidad contaba ya con módulos con sensores e indicadores, los cuales funcionan también a 3.3V. En tu caso, deberás seleccionar el tipo de sensores (se recomienda sensor de presión, un acelerómetro de 3 ejes, y un sensor de velocidad). Además, el circuito deberá también enviar al Smartphone los datos de calidad de señal Bluetooth y estado de la batería.


Programación:

La programación del Arduino se realizó en el proyecto base a través del Arduino IDE, que puedes descargarlo gratuitamente de la página de Arduino por si aún no lo tienes (lo cual no es novedad), pero aquí el consejo: Antes de probar el programa con todo el sistema, te recomendamos primero probarlo con un Arduino UNO e indicadores (no conectar el planeador) y con comandos enviados desde una PC por USB, luego puedes probar el programa usando el Arduino Pro Mini e indicadores (aún sin el planeador) y con comandos enviados desde una PC por Bluetooth utilizando alguna interfaz simple en Java (en la siguiente sección te daremos una ayuda con esto), y luego probar el programa con el Andruino Pro Mini, el planeador, y el programa en Java. 

Sabemos que es un procedimiento largo, pero es lo que se debería hacer, para evitar posibles inconvenientes. Aquí un "pantallaso" del programa del proyecto base.


App:

Hay muchas maneras de crear una App para Android, existen las plataformas de Java, como Eclipse, existen también plataformas desarrolladas por Google, pero la Universidad de Reutlingen nos recomienda "Processing", una plataforma muy similar al Arduino IDE que nos permite trabajar con un gran número de librerías, lo cual nos facilitará el proceso de creación de la App.

Processing tiene dos modos, modo Android y modo Java, lo cual también te permitirá desarrollar la interfaz para las pruebas de Hardware. Aquí un "pantallaso" del proyecto base.


La idea de la App es que a través de ella se pueda controlar el Dron y visualizar los datos de los sensores, señal y batería que nos envía el Arduino,. Una forma "divertida" de hacerlo es a través de la pantalla táctil, con la cual podemos manejar el Dron "con el dedo", pero otra forma también divertida usando la inclinación del Smartphone, lo cual da una simulación más real... queda a tu criterio cómo es que te quieres divertir con el proyecto.


Con todo esto ya puedes armar tu propio Dron! así que eso es todo por nuestra parte. Esperamos que te haya gustado este tutorial y te recordamos que puedes revisar información más detallada (en alemán) sobre el proyecto en la página de la Universidad de Reutlingen, a quienes agradecemos enórmemente por compartir su proyecto.

Y si lo llegas a construir, no dudes en contactarnos y en asistir a nuestro evento #Andruino2K14, que tendremos muchas sorpresas para ti.


miércoles, 23 de abril de 2014

[Tutorial] Control de Colores de LEDs RGB desde tu Smartphone!

La revista virtual "Make Magazine" nos presenta este llamativo proyecto (auspiciado por Radioshack), el cual nos permite controlar los colores de una tira de LEDs RGB desde tu movil utilizando Android y Arduino, una tira de LEDs y algunos componentes.


A través de este video-tutorial, Make nos enseña a armar la circuitería de este proyecto, mediante el cual controla el color de la tira de LEDs a través de 3 pines de salida del Arduino.

El código de colores RGB obtiene cada color del espectro visible a través de la mezcla de rojo, verde y azul, jugando con los porcentaje de estos en la mezcla, obteniendo escala de grises si mezclas igual "cantidad" (intensidad) de los tres, y color blanco si mezclas los tres a máxima intensidad, así como una tonalidad cercana a cada uno disminuyendo la cantidad de los otros dos. En términos digitales, a cada uno de estos tres colores se le asigna un valor de intensidad de 8 bits (de 0 a 255), y se obtiene cada color del espectro a través de las diferentes combinaciones de estos tres parámetros (lográndose obtener 2^24 colores diferentes).

Pues bien, nosotros podemos variar la intensidad de un LED a través del voltaje que se le entrega (lo cual no es muy recomendable), o apagándolo y prendiéndolo muy rápidamente (de modo que el ser humano no distinga la conmutación), seleccionando el parámetro a través de la frecuencia de este cambio. Esto último puede lograrse mediante una PWM, la cual es una señal cuadrada, la cual se traduce a un valor "analógico" entre 0 y 255.


Esta señal PWM podemos obtenerla fácilmente desde los pines de una tarjeta Arduino. Ahora bien, un LED RGB posee cuatro terminales, uno para "tierra" y uno para cada parámetro (rojo, verde y azul), con los que podemos controlar la intensidad de cada parámetro entregando una señal PWM a cada uno de los tres últimos terminales conectándolos a un Arduino a través de un simple circuito.

¿Y dónde entra Android? A través de la App que nos muestra Make, tenemos en la pantalla de nuestro Smartphone una tabla con todos los colores del espectro, dentro de la cual podemos "deslizarnos" para ir de un color a otro, recorriendo las intensidades de estos tres parámetros. La App envía al Arduino los valores de las PWM necesarias para obtener el color que hemos seleccionado, y éste envía las señales a la tira de LEDs.

Dentro de la web de Make, en la página del proyecto, podemos descargar la App y el código para el Arduino de forma gratuita, con lo cual no tienes escusa para probar este interesante proyecto.


¿Te gustó? pues manos a la obra! y si lo llegas a construir con éxito, no dudes en llevarlo a nuestro evento #Andruino2K14 para que muestres a todos tu genialidad!


Ps.1: Make nos advierte que ellos mismos "quemaron" un Smartphone en las pruebas, así que antes que nada, revisa las advertencias que mencionan y los requerimientos que debe tener el Smartphone para el proyecto.

Ps.2: Al final del proyecto, Make propone unas mejoras que sería interesante desarrollar también. Y en los comentarios de la página encontrarás algunos proyectos que los seguidores de Make han realizado.

Ps.3: Espera pronto el tutorial completo, detallado y traducido en nuestra web http://cazadortecnologico.wix.com/andruino


martes, 22 de abril de 2014

Amarino: Lleva tu Smartphone "A otra dimensión"!

Con el slogan "Android meets Arduino", el investigador Bonifaz Kaufmannnos presenta Amarino, una creación suya que comparte con nosotros.

Esta innovadora herramienta ofrece la posibilidad de interactuar con tu Smartphone desde algún otro dispositivo, o desde algún dispositivo completamente nuevo... y claro está, poder controlar estos otros dispositivos desde tu móvil (como en aplicaciones de domótica). 

¿Qué necesitas? pues un Smartphone, una tarjeta de Arduino, librerías de Android (que puedes descargar desde la web de Amarino) y un Shield especial (para quienes no lo saben, un Shield es una "tarjeta de extensión" para tu Arduino que cumpla alguna función específica) que puedes realizar tu mismo, con los componentes de esta imagen:


Y porsupuesto (y por recomendación de Bonifaz), necesitas de tu propia habilidad y ganas de trabajar para lograrlo... así que manos a la obra! date una vuelta por la web de Amarino (http://www.amarino-toolkit.net/index.php) y a trabajar!

Ps. Por cierto! hay algunas aplicaciones interesantes que utilizan Amarino, publicadas por el mismo Bonifaz, puedes encontrarlas aqui: http://www.amarino-toolkit.net/index.php/my-apps.html (y ahí están los enlaces para Google Play).

lunes, 21 de abril de 2014

Bienvenido a #Andruino2K14

Bienvenido al blog de "#Andruino2K14: The Android + Arduino Event", donde encontrarás novedades e información sobre este evento, en el cual se reunirán desarrolladores de estas dos fascinantes tecnologías para compartir conocimientos, adquirir nuevas experiencias, y formar sinergias para el desarrollo de mejores proyectos.

Este evento se realizará en la PUCP en conjunto con el Infosoft 2014, el cual reúne estudiantes y profesionales interesados en tecnologías de la información.

Te invitamos a enterarte más acerca de #Andruino2K14 en nuestra web: cazadortecnologico.wix.com/andruino y a disfrutar al máximo con nosotros la Experiencia Andruino!