miércoles, 19 de abril de 2017

APP INVENTOR PALBOT

Buenos días.

En esta entrada vamos a repasar las diferentes aplicaciones para android que hemos ido generando con app inventor para ir poco a poco aprendiendo a crear la aplicación de control del robot que presentaremos en el proyecto Retotech de Endesa.

A las primeras aplicaciones les llamamos "tabla de verdad" porque la utilizamos para controlar leds por bluetooth en base a las normas de una tabla de verdad de manera que en función de las teclas pulsadas se encendiesen unos leds u otros. Partiendo de esta versión generamos tabla_VOZ que permitía ir enviando ordenes de una secuencia de encendidos a la placa para que las fuese almacenando y las ejecutase al pulsar la tecla GO. Esta versión también permitía enviar la señal "go" mediante la voz.

Partiendo de esta base realizamos la primera aplicación PALBOT que ya tenía los botones colocados en función de la orden que enviaría a los motores de las ruedas y añadía la opción de antes de empezar a enviar las órdenes seleccionar el tiempo de desplazamiento y de giro. El tiempo elegido era el que se asignaba a todas las instrucciones una vez enviado el mensaje de GO. Por último la aplicación recibía los datos del ultrasonido en el móvil reflejando por tanto la distancia al objeto que tuviese delante el robot.

La siguiente aplicación PALBOT2 suponía un avance significativo ya que permitía elegir la distancia y el ángulo de giro para cada una de las instrucciones mediante un barra deslizante. Las ordenes que se van almacenando van apareciendo en la pantalla y un botón permite la opción de borrarlas. Esta aplicación sería la versión más avanzada de nuestro robot para uso en clase de primaria.


Las aplicaciones PALBOT3 y PALBOT4 son la versión ampliada de la anterior en la que además de la aplicación para primaria descrita antes se añade una más sencilla para infantil en la que la distancia de avance es siempre la misma (el tamaño del robot) y el ángulo de giro es siempre de 90º. También permite visualizar las órdenes y borrarlas. 
Además estas dos formas de usar el robot, se añaden la opción AUTO que hace que el robot se mueva de manera autónoma usando el ultrasonido para no chocarse y RACE que permite manejar el robot como si de un mando a distancia se tratase.
La versión PALBOT4 añade e la 3 el hecho de que la pantalla inicial pasa a ser la del menú. Para poder cambiar el orden de las pantallas se pueden seguir los pasos que se indican en este tutorial:


Por último la versión PALBOT5 añade varias opciones especialmente interesantes para las partes de AUTO y RACE. En race añade un slider que permite decidir el radio de giro de los botones FRONT L y R y BACK L y R, con este slider se pueden realizar automáticamente giros del arco de giro que se elija, sin duda va a ser una opción muy interesante para el examen de carrera que haremos el viernes 28 de abril. Para la opción de AUTO se han añadido botones para que cada vez que se le da a START el robot gire siempre a la izquierda, a la derecha o lo haga de manera aleatoria. Finalmente con un slider podemos decidir la distancia en cm a la que debe estar un objeto para que gire. Esta opción la pondremos a prueba en el examen del día 10 de mayo en el que los robots deben ser capaces de salir de manera autónoma de un laberinto. Para poner a prueba las aplicaciones de Infantil y Primaria hemos creado un juego al que llamamos GOLF en el que se debe llegar de un punto a otro con el menor número de "golpes" o instrucciones posible, este examen lo haremos el día 12 de mayo.




Una última actualización de la opción AUTO con el botón MAZE (laberinto en inglés) en la que el robot comprueba la distancia de los objetos a derecha e izquierda para después seguir hacia la dirección donde tenga el camino más libre.


En el siguiente enlace se encuentran todas los archivos de aplicación para instalar además de los archivos de app inventor que permiten importarlos desde la web de app inventor y ver la programación de cada una de las aplicaciones.


Dejamos aquí también el código QR de la versión 5:


Todavía queda mucho camino por recorrer para ir mejorando la aplicación desde el punto de vista de funcionamiento y sobre todo la estética, cualquier sugerencia o aportación por supuesto será bienvenida.

Un saludo,
Raúl.

viernes, 7 de abril de 2017

Bluetooth: Probando los programas y configuración de Bluetooth

Buenos días.

En esta entrada voy a resolver varias dudas sobre el bluetooth: como probar los programas sin necesidad de usar el bluetooth y como configurar y solucionar los problemas más comunes con el bluetooth.

Probar la programación de bitbloq o arduino sin usar el bluetooth

Esta es una opción muy interesante si creemos que el bluetooth nos está dando problemas y aún así queremos programar con bitbloq y probar el resultado de nuestros programas.

La solución es mandar las ordenes a la placa mediante el Serial Monitor de la pestaña Ver de bitbloq (opción Mostrar Serial Monitor). Desconectamos completamente el bluetooth de la placa y teniéndola conectada con el cable usb al ordenador podemos dar las ordenes correspondientes desde el Serial Monitor, simplemente hay que tener el cuidado de poner el Baudrate que hayamos puesto al componente Puerto Serie (que en principio para la placa UNO debería de ser 9600).
Desde el puerto de serie podemos mandar las letras o textos que hayamos predefinido para mandar las ordenes desde appinventor a bitbloq. Escribiremos A y le damos al botón de enviar si es ese el mensaje que queremos probar o cualquier otro. Para poder hacer esto hay que colocar el robot de manera que las ruedas no toquen el suelo ya que lo tendremos conectado al ordenador con el cable. No servirá por tanto para verlo en movimiento pero si para ver la respuesta de la programación a la entrada de comandos.
Dos consideraciones importantes para usar el Serial Monitor de esta manera:
- Hay que asegurarse de que el bluetooth no está conectado a la placa y que no están ocupados los pines 0 y 1 por ningún otro componente, ya que el puerto serie usa esos pines para enviar y recibir datos. (Esto también es imprescindible para cargar programas en la placa).
- Es necesario tener el interruptor encendido y por tanto las pilas alimentando a la controladora de motores, ya que aunque por el USB le llega corriente a la placa y resto de componente no es suficiente como para hacer girar los motores.

Cambio de nombre, pin y baudrate del bluetooth

Para ello es necesario conectar el bluetooth a los pines 2 y 3 de la placa. El RX debe conectarse al 3 y el TX al 2. Por otro lado el GND (ground) debe estar conectado a cualquier pin de G de la placa (normalmente lo ponemos al de G del pin 0 de la placa) y VCC a cualquier pin V de la placa (igualmente lo solemos dejar siempre en el V del pin 0).
A continuación descargamos el siguiente programa de arduino y lo abrimos con arduino.


De este programa lo más importante son las siguiente líneas de código:

SoftwareSerial blue(2, 3);   //Crea conexion al bluetooth - PIN 2 a TX y PIN 3 a RX

char NOMBRE[21]  = "PALBOT"; // Nombre de 20 caracteres maximo
char BPS         = '4';     // 1=1200 , 2=2400, 3=4800, 4=9600, 5=19200, 6=38400, 7=57600, 8=115200
char PASS[5]    = "1999";   // PIN O CLAVE de 4 caracteres numericos    

En la primera nos recuerda donde hay que conectar los pines RX y TX tal y como ya hemos explicado. Las otras 3 líneas servirán para poner el nombre, baudrate y pin a la placa. El nombre sera PALBOT y el número correspondiente que hemos ido asignando, el PIN ya está puesto el 1999 y el baudrate dejamos de momento el 9600 (opcion 4 tal y como está) ya que parece que funciona bien con este módulo bluetooth. Así que solamente habría que añadir el número correspondiente después de la T de PALBOT.

Una vez cambiados el nombre y pin cargamos el programa en la placa (recordar que hay que marcar el puerto COM correspondiente en herramientas) y si aparece el mensaje "subido" ya habremos conseguido cambiar el nombre y el pin. Ahora tocará buscarlo con el movil y sincronizarlo antes de poder usarlo con la aplicación de appinventor.

Recordar que podéis mandarme cualquier duda al mail de clase pal.tecind@gmail.com o usar esta entrada para dejar comentarios que pueden servir para solucionar cualquier duda o realizar una aportación contando como habéis resuelto los problemas que se han ido planteando.

En los próximos días pondré varias entradas referente a los robots, alguna de ellas sobre que días y como vamos a realizar las evaluaciones de las programaciones que estamos realizando. Ya os voy adelantando que todas las evaluaciones serán 100% de carácter práctico en las que pondremos a prueba con diferentes juegos las programaciones de los PALBOT.

Recordar que siempre para cargar programas hay que asegurar de que los pines 0 y 1 de la placa están libres (podemos dejar conectados cables a la parte de V y G, de tensión y tierra/ground pero no al pin de señal) y que después para que el módulo bluetooth funcione hay que volver a ponerlos.

Que tengáis unas buenas vacaciones.

Un saludo,
Raúl.