Introduction: Tank With Video Controlled by App Inventor Android and Bluetooth

Bueno, el objetivo de este proyecto DIY es el poder implementar un vehículo con orugas.

El cual cuente con:

1. Transmisión de vídeo

2. Las instrucciones de desplazamiento sea por comandos a través de bluetooth

3. El "control" de este vehículo, o sea el encargado de enviar los comandos sea una aplicación para android

A partir de lo anterior, este proyecto se dividirá en 7 pasos:

1. Base del vehículo, del tipo oruga.

2. Puente H de los motores.

3. Arduino, para controlar el movimiento del vehículo.

4. Bluetooth, para comunicar movimientos del vehículo.

5. Cámara, para transmitir vídeo.

6. Aplicacion para SO android. App inventor

7. Aplicaciones o funciones necesarias extras

Step 1: Base Del Vehículo, Del Tipo Oruga

Al utilizar una base de este tipo, te permite vueltas cerradas y una mejor tracción en lugares de difícil acceso o de pendientes o incluso terrenos muy complicados (muchas subidas y bajadas juntas) en donde un vehículo de 4 ruedas RC normal le costaría trabajo circular.

Algo muy importante que se debe tener presente es el hecho de que el funcionamiento de los motores es distinto al de un auto "normal" de 4 ruedas.

La diferencia mas notoria es que este vehículo con orugas debe funcionar según las siguientes combinaciones para poder desplazarse:

Adelante: ambos motores deben girar en la misma dirección (Adelante, se define arbitrariamente)

Atrás: ambos motores deben girar en la misma dirección, pero contraria a "adelante"

Derecha: La oruga de la derecha (Si el vehículo esta apuntando hacia adelante), debe girar hacia atrás y la de la izquierda hacia adelante.

Izquierda: La oruga de la derecha (Si el vehículo esta apuntando hacia adelante), debe girar hacia adelante y la de la izquierda hacia atrás.

Esto te permitirá desplazarte en todas las direcciones.

De cualquier forma, si no posees una base tipo oruga.

*** Cualquier vehículo te servirá, lo mas importante en este caso es hacer los puentes necesarios para convertir lo que acabo de decir en algo funcional para tu tipo de vehículo. ***

Step 2: Puente H De Los Motores

En realidad el de la foto, es un puente H, que queme hace un tiempo atrás.

u.u

Pero el que estoy utilizando en este vehículo, es un puente H reciclado de un auto RC.

En breves palabras lo que hice fue:

1) identificar donde se encuentran los 6 transistores característicos de un puente H y en ese mismo lugar es donde se encuentran los cables de los motores; por lo tanto lo único que resta es encontrar donde entran las señales de control y donde se encuentra la alimentación del puente H.

Por otra parte, para utilizar el puente H de la imagen anterior, se debe tener en cuenta que cada uno de los conectores verdes con tornillos corresponde a los terminales de los motores; en este caso es una placa de 2 puente H, por lo que es de 2 canales.

La utilización de cada pin es la siguiente:

B-IA: controla un sentido de giro "A", del motor B

B-IB: controla un sentido de giro "B", del motor B

GND: conexión a GND para valores lógicos, provenientes de las entradas "X-IX"

VCC: alimentación de poder para los motores, puede ser de valor distinto a las etapas de control. Ej arduino 5V, puente H 6V.

A-IA: controla un sentido de giro "A", del motor A

A-IB: controla un sentido de giro "B", del motor A

El nombre del modulo es HG7881 en dx.com

Step 3: Arduino, Para Controlar El Movimiento Del Vehículo.

El arduino utilizado es el:

Arduino nano V3.0, también desde dx.com

La ventaja de este arduino es su compacto tamaño, pero a la vez trae una dificultad; el no permitir conexiones de cables (tipo macho) sobre la placa puesto que este arduino esta pensado para ser montado sobre un protoboard. Para este Instructable se utilizaran los siguientes pines del arduino:

11

10

9

6

*****************************************************************************************************************************

De cualquier forma, un arduino uno o mega tambien servirá para este vehículo.

Lo bueno de este proyecto es que casi no se necesitan librerías especiales o cosas muy difíciles de encontrar. *****************************************************************************************************************************

El arduino se encarga de que al recibir datos a través del modulo bluetooth, sea capaz de tomar acciones y de esta forma asignar valores lógicos al puente H y así desplazar el vehículo oruga según el comando recibido por bluetooth.

Los comandos asignados para los distintos movimientos son:

1, movimiento del vehículo hacia adelante.

2, movimiento del vehículo hacia atrás.

3, giro del vehículo hacia la izquierda.

4, giro del vehículo hacia la derecha.

a, detención del vehículo.

De la misma forma, a cada una de estas instrucciones se le asigna una instrucción sobre el puente H de 2 canales, las cuales serian (Esto dependerá de la forma en la que conectes los motores al puente H). La estructura sera la siguiente:

"comando", {B-IA * B-IB} y {A-IA * A-IB}

Quedando de la siguiente forma

1, {1 * 0} y {1 * 0}

2, {0 * 1} y {0 * 1}

3, {1 * 0} y {0 * 1}

4, {0 * 1} y {1 * 0}

a, {0 * 0} y {0 * 0}

********************************************

Revisar imagen que contiene una tabla

*********************************************

No agrego mas info, puesto que en el ultimo STEP, subiré todos los archivos.

Step 4: Bluetooth, Para Comunicar Movimientos Del Vehículo

Para poder comandar el vehículo oruga, el cual cuenta con un dispositivo arduino para administrar los datos y tomar acciones (sobre el puente H) se necesita de un elemento capaz de recibir datos y comunicarse de forma sencilla con arduino, siempre teniendo presente el abaratar costos dentro de la implementacion.

Para esto es que se decide utilizar el modulo bluetooth JY-MCU, tambien de dx.com

Recomendación,

Si quieren que su vehículo sea mas personalizado cambien le el nombre al modulo bluetooth y la clave, de otra forma no es algo de vida o muerte. Ustedes deciden!

Una de las cosas importantes que no se deben olvidar, es el emparejar el modulo bluetooth al dispositivo android que van a utilizar para controlar el vehículo. Si no le cambian el nombre ni la clave al modulo la clave es "0000" o "1234", ahí deben probar ustedes.

La conexión se muestra arriba, recuerden conectar de forma cruzada los terminales del arduino y del modulo que dicen Rx y Tx, la alimentación va directa entre GND y los 5V, sin mayores complicaciones.

Step 5: Cámara, Para Transmitir Vídeo

Para poder transmitir el vídeo, utilice un teléfono con SO android, el cual al después de prenderlo duraba 10 a 15 minutos funcionando sin problemas y luego la pantalla táctil (Touch) nunca mas funcionaba; hasta que lo reiniciaras y volvía a ocurrir lo mismo.

De igual forma se puede utilizar un teléfono que este en perfecto estado pero teniendo presente que debes SUJETARLO bien al vehículo.

Para convertir el celular en la cámara de este proyecto se utilizo una aplicación llamada:

IP Webcam

La cual convierte tu teléfono en una cámara IP y de esta forma es capaz de transmitir lo que ve.

Uno de los puntos mas importantes es que para poder ver el vídeo en el dispositivo que utilizaremos como control del vehículo (Tablet, smartphone) es que este debe "proveer una red wifi". Para que el control cree una red wifi, utilizaremos la aplicación:

Portable Wi-Fi hotspot

Y de esta forma el control (Tablet, smartphone) creara una red wifi, a la cual le podemos asignar nombre y clave. De esta forma entonces el dispositivo que sera la cámara debe ser configurado para que se conecte a esa red y de esta forma el programa le asignara una IP, con la cual accederemos desde la aplicación para comandar y ver el vehículo.

**************************************************************************************************************************

Se recomienda apagar o alejarse de lugares donde el teléfono-cámara IP, ya posea una red wifi; puesto que el teléfono-cámara IP elegirá la red con mas potencia. **************************************************************************************************************************

Dentro de la aplicación saldrá la siguiente imagen, en negro se ve la pantalla inicial cuando uno ejecuta la aplicación IP Webcam en el teléfono-cámara IP, en esta pantalla uno debe bajar hasta la parte donde dice "Start Server"

Luego en la pantalla se visualizara lo que la cámara esta captando, esto se muestra en la imagen numero 3 de este paso y se puede ver la IP asociada al teléfono-cámara IP y el puerto correspondiente. En este caso:

http://192.168.1.35:8080

Con esta dirección uno puede ingresar al explorador y se desplegara una pantalla como la mostrada en la imagen 4 de este paso.

En esta pagina, recomiendo utilizar en "Video renderer" la opción "Javascript" y luego presionar "Fullscreen"

De esta forma se abrirá una nueva pestaña la cual tendrá la siguiente dirección:

http://192.168.1.35:8080/jsfs.html

Esta dirección es muy importante puesto que esta es la que utilizaremos en la aplicacion del control

En el vídeo de este Instructable, la IP que asigno el programa Portable Wi-Fi hotspot en mi tablet al teléfono-cámara IP fue 192.168.43.235:8080

Por lo que para ver el vídeo en fullscreen utilice la dirección:

http://192.168.43.235:8080/jsfs.html

Step 6: Aplicacion Para SO Android. App Inventor

Bueno, este es uno de los pasos que diferencia este Instructable de la mayoría de otros DIY, puesto que la aplicación creada mezcla la recepción del vídeo de la cámara IP y los controles para comandar el vehículo oruga.

De esta forma se parte por seguir pasos sencillos de explicación que irán de la mano de pantallazos del código del programa en bloques o puzzles.

Dando por resultado el completo entendimiento de lo que hace la aplicacion.

Ante cualquier duda en los pasos o si quieren aprender mas de este excelente programa, les recomiendo Youtube y Google para averiguar mas.

1) Para poder utilizar app inventor deben ingresar a la pagina

http://appinventor.mit.edu/explore/

2) Para comenzar a crear una aplicacion se debe ir al recuadro que dice "CREATE" en la esquina superior derecha.

3) Para acceder debes tener un correo Gmail

4) El programa te dará la bienvenida y podrás comenzar a hacer todas las aplicaciones que quieras. (Recomiendo Youtube y Google y de igual forma la pagina oficial de app inventor) Bueno, para comenzar la imagen 2 y 3 son como se ve la aplicacion ejecutada en mi tablet galaxy tab 2 7.0

luego en la imagen 4 muestro como se ve el entorno del app inventor.

En la imagen 5, intente que se vieran todos los elementos que conforman la distribución una vez compilada y ejecutada la aplicacion. Todavía no se como hacer para que cuando uno agrega muchas cosas no se salgan de la pantalla del simulador!. La imagen 6 es la continuación de la pantalla.

Desde la imagen 7 en adelante se accede por medio del botón "Blocks" ubicado al costado derecho mas o menos al medio de la pantalla del app inventor.

La imagen 7, muestra que obtiene la lista de elementos vinculados (o emparejados) por medio del bluetooth al dispositivo android y te deja seleccionarlo. Este dispositivo que seleccionara sera el modulo bluetooth montado con el arduino.

La imagen 8, sirve para conectarse con un modulo en particular, de este modulo bluetooth debes conocer su MAC ADDRESS y su clave.

La imagen 9, muestra la opción de salir de la aplicacion, gracias al app inventor tambien puedo utilizar ciertas funciones por lo que aproveche la función "SHAKE" del accelerometro y así cada vez que tu agites el dispositivo la aplicacion se cerrara al igual que si solo presionaras la tecla; pero ademas de cerrar la aplicacion antes se encarga de enviar un dato por bluetooth el cual es el valor asignado a la variable "STOP".

La imagen 10, es la que permite acceder a la URL de la cámara IP y así mostrarla dentro de una de las casillas asignadas para ello; como se menciono anteriormente se opto por dejar ciertos valores fijos como algunos números de la IP y la activación de la vista en fullscreen con javascript y las "x" deben ser reemplazadas por los valores que muestre el teléfono-cámara IP o la aplicacion en el dispositivo control.

La imagen 11, muestra que es lo que sucede al hacer click sobre cada tecla de la aplicacion; se toma el valor de una variable y se envía por medio de bluetooth.

La imagen 12, es donde se inician las variables con un valor "0" inicial.

La imagen 13, muestra que cuando uno pone valores en las casillas de la sección asignar estas serán cargadas en las respectivas variables al hacer click sobre la tecla "asignar".

Insisto, les recomiendo Youtube, Google y la pagina oficial del App inventor!

Step 7: Aplicaciones O Funciones Necesarias Extras

Básicamente con todo lo mencionado hasta el momento deberían tener un vehículo oruga (o del tipo que gusten) funcional y con transmisión de vídeo.

Como comentario les digo que el sistema entre vehículo y control se comunica tanto por bluetooth como por wifi.

Ademas les recomiendo utilizar baterías recargables, ya sean, de las típicas para controles (NI-MH) o del tipo mas especifico Lipo, LI ion o pack de NI-MH para que así todo el vehículo funcione de forma recargable y no se muera cada vez que se acaba alguna de las fuentes.

Ademas deben descargar las siguiente aplicaciones dentro de los siguientes equipos:

Vehículo

Teléfono-cámara IP

https://play.google.com/store/apps/details?id=com...

Control

Dispositivo android

https://play.google.com/store/apps/details?id=com...

https://play.google.com/store/apps/details?id=kr....

Una recomendación importante seria deshabilitar el costo por compañías celulares a los controles que sean smarthphone, puesto que yo utilice una tablet que no tiene chip celular no tuve que tener precauciones respecto de eso.

Aquí les dejare todos los documentos

1. Código para arduino

2. Apk para control

3. Archivo del app inventor (.aia), por si quieren modificar algo en la aplicacion

Una vez que tengan el archivo .aia, para ponerlo dentro del app inventor deben ir a la pestaña "Projects" y seleccionan "Import .aia"; luego para obtener el código QR o el .apk del app inventor deben dirigirse a la pestaña "Build" y seleccionar su preferencia.

Microcontroller Contest

Participated in the
Microcontroller Contest