lunes, 11 de agosto de 2014

PROYECTO: Coche - Bluetooth

- ROBÓTICA ESCOLAR - 

Proyecto integrado de Robótica de 4º de ESO

"Coche controlado por Bluetooth"



Acerca de este proyecto

Este es el trabajo final  que se hizo en el Proyecto Integrado de Robótica de 4º de ESO, de una hora de clase semanal, en el IES Joaquín Romero Murube.

Este coche, cuya principal característica era que iba a estar controlado desde una tableta Android utilizando una conexión Bluetooth, era el proyecto que nos habíamos planteado hacer en este taller de Robótica al final del curso. La mayor parte de tareas y actividades que se hicieron durante todo el año escolar estuvieron orientadas a ser capaz de diseñarlo y construirlo.



Propuesta de trabajo

Enunciado de la propuesta

Diseñar y construir un coche-robot controlado por Bluetooth desde una tableta Android.
Llamaremos al proyecto "Coche controlado por Bluetooth".

Condiciones de la propuesta
  • La base del coche será de plástico (por ejemplo Arrasol o metracrilato de 3mm)
  • Se usarán dos motores con reductora y sus respectivas ruedas
  • Una tercera rueda loca permitirá el giro del coche
  • Usaremos la tarjeta controladora “Proyectos PICAXE-18 de alta potencia”
  • Los motores irán conectados a las salidas de la tarjeta
  • Conectaremos un receptor de Bluetooth a la tarjeta para controlar el coche desde una tableta con Android
  • Usaremos nuestra App de Android "MultiControlBT"
  • Debe funcionar con tres pilas AA
  • Tendrá un interruptor general


Esquema eléctrico de conexiones






Programación del micro PICAXE

El programa que hemos utilizado para controlar nuestro "Coche controlado por Bluetooth" podemos encontrarlo en el siguiente enlace:




Fotos

La siguiente imagen corresponde al módulo de Bluetooth que hemos usado para conectar el coche con la tableta.




A continuación mostramos una secuencia de varias fotos de uno de los coches construidos














Vídeos

En el primer vídeo mostramos los movimientos básicos del coche con 5 botones. Por orden:
  • Avanzar (ambos motores giran hacia adelante)
  • Girar a la izquierda (el motor izquierdo se detiene y el derecho avanza)
  • Detener (ambos motores se detienen)
  • Girar a la derecha (el motor derecho se detiene y el izquierdo avanza)
  • Retroceder (ambos motores giran hacia atrás)




En el segundo vídeo extendemos los movimientos del coche. Ahora usamos una pantalla con 9 botones:
  • Girar a la izquierda (el motor izquierdo se detiene y el derecho avanza)
  • Avanzar (ambos motores giran hacia adelante)
  • Girar a la derecha (el motor derecho se detiene y el izquierdo avanza)
  • Rotar a la izquierda (el motor izquierdo retrocede y el derecho avanza)
  • Detener (ambos motores se detienen)
  • Rotar a la derecha (el motor derecho retrocede y el izquierdo avanza)
  • Girar atrás a la izquierda (el motor izquierdo se detiene y el derecho retrocede)
  • Girar atrás a la derecha (el motor derecho se detiene y el izquierdo retrocede)
  • Retroceder (ambos motores giran hacia atrás)




En este tercer vídeo se controla los movimientos del coche según inclinemos la tableta:
  • Avanzar (la tableta se inclina hacia adelante)
  • Girar a la izquierda (la tableta se inclina hacia la izquierda)
  • Detener (la tableta se nivela, es decir, no está inclinada)
  • Girar a la derecha (la tableta se inclina hacia la derecha)
  • Retroceder (la tableta se inclina hacia atrás)



14 comentarios:

Unknown dijo...

Me encanta tu trabajo.
Yo estoy empezando, pero me gustaría que compartieras tus App para controlar los movimients del robot y el de las inclinaciones de la tableta.
¿sería posible?
Gracias por todo

Paco Ruiz dijo...

Estoy afinando la App, es solo una. En cuanto termine la pondré gratis en el PlayStore de Android.

Así que por supuesto que estoy encantado de compartirla.

Vuelve a escribir un comentario poniendo tu email. No lo haré público sino que te responderé directamente.

Unknown dijo...

Cordial saludo Paco, te felicito por tus proyectos.. son geniales, me gustaría saber que aplicación usas para realizar el programa en Android. he estado averiguando un poco en internet, pero existen muchos programas que emplean Java para realizar estas apps, quisiera saber si sabes de algun programa que sea mas sencillo en su programación.
Gracias

Paco Ruiz dijo...

Yo he utilizado el MIT App Inventor 2, que es el que puedes ver en los vídeos.
Se supone que es para que se inicie la gente desde cero, aunque algún conocimiento previo viene bien.
Se trata de programación visual orientada a objetos. Si conoces Scratch, el App Inventor sería como su hermano mayor.
Échale un vistazo y ya me cuentas.
Y gracias por la felicitación.

Ximo dijo...

Hola Paco,
Felicitarte por el gran trabajo que realizas con los alumnos y aún más, compartiéndolo en este magnífico blog.
Quisiera dar un paso más con los alumnos y implementar los proyectos de comunicación por bluetooth como los que expones. La app de las inclinaciones me parece genial y comentándolo en clase les cambió la cara y mostraron gran interés.
Mi email es xmontane@xtec.cat

Un saludo

Ernesto Elizalde dijo...

Hola buenas tardes, me parece muy interesante su proyecto, tanto que compre un modulo bluetooth para empezar a experimentar con el, ya logre conectarlo al PICAXE y sinconizarlo con un dispositivo Android, el problema es que necesito pulsar muchas veces los botones en la pantalla para que le lleguen las señales al PICAXE a que podría deberse esto?

Paco Ruiz dijo...

Hola Ernesto

Si quieres leer por ejemplo un solo byte en C.0, debes usar el comando:

serin C.0, T9600_8, b0
que espera a que le llegue el valor antes de continuar.


Si no te funciona eso, dime qué tienes puesto en el programa y le echo un vistazo. O bien me mandas tu email y te escribo (no haría pública en ese caso esa respuesta).


Saludos

Ernesto Elizalde dijo...

podría pasarme la app que usa en este proyecto para hacer pruebas con el mio? ya descargue varias de Google Play pero con todas me pasa lo mismo, tengo que pulsar repetidas veces los botones en la pantalla para que el PICAXE reciba la señal

Paco Ruiz dijo...

He mandado un enlace a tu correo.

Paco Ruiz dijo...

Acabamos de publicar en el PlayStore de Google la App que hemos desarrollado y utilizado para el control a través de Bluetooth en nuestras prácticas y proyectos: MULTICONTROLBT

David dijo...

Hola Paco:
Me he descaragado la App pero cuando intento hacer funcionar el programa de control por inclinacion, no funciona.
Se conecta el dispositivo bluetooth y me pide que pulse el botón para comenzar pero se queda "clgado".
El código que he puesto en picaxe 18M2 ha sido:
setfreq m8
inicio:
serin C.0,T9600_8,b0, b1
pause 50
debug b0
debug b1
goto inicio
Un saludo

Paco Ruiz dijo...

Hola David
Sí que me ha pasado lo que dices con el móvil de un alumno pero aún no sé lo que es.
Como no puedo simular el error (no ocurre ni en mi móvil ni en mi tableta) te comento algunas cosas por si puedes ayudarme a averiguar qué ocurre.

1.- Cuando al entrar en la pantalla de inclinación le das al botón verde de aceptar, se simula la inclinación con el Bluetooth desconectado. ¿Te funciona?
2.- Imagino que ya habrás probado por ejemplo con los botones normales para ver si funciona la app y que todo va correcto.
3.- Comprueba que el programa Google Sky Map funciona bien. Si se atasca mucho al actualizar la posición de las estrellas, entonces creo que por ahí van los tiros.
4.- En Configuración > Direcc. por inclinación > Tiempo entre lecturas (por defecto es 300).
Prueba a cambiar con valores más altos y más bajos. Por ejemplo: 800, 500, 100, 40 y me dices si todo sigue igual.
Realmente creo que en esto está la clave, y tiene que ver con que los móviles sean más lentos o más rápidos, así como del número de aplicaciones funcionando a la vez.
5.- Dime la versión de tu Android, a ver si encuentro yo información adicional.
6.- Mándame tu dirección de correo (no publico el post) si no te importa hacer alguna prueba adicional a ver si logramos echar a andar la inclinación.

Gracias por todo David

monictec dijo...

Muy buenas, Paco,
Ante todo felicitarte por el trabajo que estas haciendo con tus blogs y aplicaciones que sigo. Te escribo pues llevo varias días intentando utilizar un modulo BT HC-06 con una placa de alta potencia de Picaxe con un pin 18M (antiguo) y estoy un tanto desesperada pues no doy con la tecla... La idea era control del robot mediante el móvil, que es un bq5 Aquarius (Andriod 4.4.2). He probado tu aplicación MultiControlBT. He visto que hay mucho editado de Arduino, pero muy poco de Picaxe. Me leído que en varios portales que este modulo HC-06 la Salida de datos es Rx, en vez de la Tx (he probado con las dos y nada). También se realizado las indicaciones que le comentaste a David, respecto a la programación. Mi móvil detecta el módulo pero no soy capaz de mandar datos, pues en el debug no aparece ningún movimiento. NO se si os ha pasado más veces y habéis dado con la solución, os lo agradecería, pues creo que es una aplicación atractiva para trabajar proyectos.
Muchas gracias de antemano.

Paco Ruiz dijo...

Hola ¡minotec'
Te sugiero que empieces con los dos programas que tengo de ejemplo para configurar el módulo de Bluetooth en la sección de "Programas" (en ellos todo es vía cable).
Utilizas el mismo módulo que yo, así que no debería haber mayor problema.

Y si sigues atascado después, me mandas tu email (no publico la entrada) y nos comunicamos con más fluidez.

Ah, y me alegro que te sean útiles mis blogs.