viernes, 3 de septiembre de 2021

Proyecto Coche Robótico con Arduino (4/5)

 

  • Envío de datos más complejos por bluetooth

    Buenos días.

    Con este tema comenzamos la parte más interesante del proyecto en la que tendremos que poner en práctica todo lo aprendido hasta ahora en programaciones más complejas.

    Algo que será necesario en esta última parte del curso será enviar y recibir mensajes algo más complejos mediante bluetooth. Hasta ahora todos los mensajes que enviábamos para controlar el semáforo eran de una letra. En arduino/bitbloq al recibir esta letra ejecutábamos una acciones y otras.

    Ahora necesitaremos enviar por un lado letras que identifiquen que acción queremos realizar y junto a esa letra valores que determinen parámetros (ángulo, velocidad, etc...) de dicha acción.

    En la siguiente imagen podéis ver como programar en app inventor el envío por bluetooth de una letra (en esta caso la A) seguida de un número de dos cifras. El número proviene de un slider que previamente hemos creado y que tiene de rango de 0 a 99 (valor por defecto del slider 50).


    Lo primero que hacemos es crear la variable GIRO que almacenará el valor del slider. A la hora de guardarlo nos aseguramos de usar round para que redondee la posición del slider al entero más próximo de 0 a 99. Para asegurarnos que el número enviado es de dos cifras añadimos el condicional de que le añada delante un 0 en caso de que sea de una sola cifra.

    El siguiente paso será la gestión de estos datos con bitbloq. Como veis en la siguiente imagen comenzamos como es habitual en recibir en la variable datos el contenido del bluetooth. Si el mensaje que hemos recibido en la variable datos tiene una longitud de 3 caracteres guardamos el primero de ellos en la variable tipodegiro que indicará el tipo de acción y los otros dos caracteres (posiciones de 1 a 3 de la cadena/string de la variable datos) en la variable angulodegiro que es una variable numérica y por eso tenemos que poner .toInt() al final para convertirlo a entero.


    Estas dos líneas de código no existen como bloques de código de bitbloq y es por eso que usamos el bloque verde que nos permite escribir directamente código de arduino.

    tipodegiro=datos.substring(0,1);

    angulodegiro=datos.substring(1,3).toInt();

    En el programa de bitbloq podemos ver como continua con un condicional con el que si la acción que marca la primera letra es A realizamos una serie de encendidos y apagados determinados y alguno de ellos utiliza el valor de la variable angulodegiro que acabamos de recibir.

    Parece algo complicado pero veréis que es sencillo de usar y desde luego añade un potencial muy grande al envío y la recepción de datos y por tanto al tipo de proyectos que podemos realizar.

    Un saludo,
    Raúl.
    • Uso del slider para controlar el giro del coche robot

      Buenos días.

      En las siguientes imágenes vamos a presentar la programación en AppInventor y BitBloq para poder mandar órdenes complejas desde el teléfono a arduino y así poder realizar diferentes acciones con el robot.

      Programación en AppInventor:




      Programación en BitBloq:







      Un saludo,
      Raúl.
    • Programación coche robot en modo comandos. 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.
    • Programación avanzada coche robot. Juntando todos los modos de funcionamiento.


      Buenos días.

      En esta entrada vamos a enlazar las últimas versiones del robot de los programas en bitbloq para la placa y en app inventor para el móvil.

      Empezando por esto último, la aplicación móvil va por su versión 7 que respecto a las anteriores mejora principalmente la estética (que proviene de una versión de la 5, la 5b) y también añade cosas útiles como que si estamos conectados al bluetooth reconecta automáticamente al cambiar de un modo a otro. El peso de las imágenes se ha reducido mucho para que no de problemas al ejecutarse y de momento parece que es una versión bastante estable. Aquí podéis ver algunas imágenes del nuevo diseño:






      En la siguiente imagen tenéis el código QR para poder descargar esta versión PALBOT7:
      En la carpeta de la entrada anterior hemos seguido poniendo las diferentes versiones de la aplicación.


      Por último dejamos en esta entrada los códigos de bitbloq que estamos usando para programar las placas. Tanto para la placa arduino UNO como para la ZUMKIT de BQ.


      Para que el robot funcione correctamente simplemente hay que conectar los componente tal y como están programados en los programas de bitbloq. Las conexiones serían las siguientes:
       PIN 4 y 5 para el ultrasonido: ECHO y TRI respectivamente.
      PIN 6, 7, 8 y 9 para los motores: 6 rueda derecha alante, 7 derecha atrás, 8 izquierda alante y 9 izquierda atrás.

      Todavía un mes por delante para rematar los programas, diseñar y fabricar las carcasas, el logo... mucho trabajo pero también muchas ganas e ilusión de dejar un proyecto bonito, un robot útil y divertido para que puedan usarlo los colegios de Tres Cantos.

      Por cierto que la semana pasada hicimos una visita con los robots a uno de los colegios y fue una experiencia muy bonita juntar a los alumnos de nuestro instituto (que algunos habían estudiado en ese mismo colegio) con alumnos de 4 y 11 años. Aquí tenéis el enlace que han puesto en el blog de la clase de 4 años:


      Después de la visita salimos con más motivación si cabe para terminar el proyecto.

      Un saludo,
      Raúl
    • .

      Primeros ensayos del coche robot y logo


      Buenos días.

      Os contamos en esta entrada las últimas novedades del proyecto en el que estamos construyendo un robot que pueda ser usado por los Colegios Públicos para iniciar en la robótica y la programación a los alumnos desde Infantil hasta 6º de Primaria.

      El equipo que se encarga del apartado de "marketing" del proyecto ha creado este vídeo de presentación del robot:

    • https://www.youtube.com/watch?v=XiB0cv1WPc4



    • ste vídeo está subido a la web de Retotech de nuestro centro en el que tenéis un enlace para votar por nuestro proyecto.

      Enlace a la web de retotech del IES Pintor Antonio López:


      Mientras tanto el resto de grupos sigue avanzando en el desarrollo del diseño y la aplicación para Android. Vamos ya por la versión 8 de la aplicación. En esta última versión hemos iniciado un apartado muy importante que es el de la configuración del robot antes de empezar a usarlo. Con esto conseguiremos que el robot avance siempre recto y que los giros sean de 90º exactamente, independientemente del estado de la batería, de los motores o del tipo de suelo en el que se utilicen. Es una parte muy importante del proyecto que nos hace mucha ilusión desarrollar para que una vez se los entreguemos a los colegios estos puedan usarlos sin ninguna dificultad.

      Con el siguiente código QR podéis instalar esta última versión PALBOT8:


      Y en la siguiente carpeta tenéis la versión 6 de bitbloq/arduino que es la última que hemos creado y está preparada para ser usada con la aplicación palbot8:


      También tenemos unas primeras ideas para el logo final del robot:


      Todavía tenemos muchas ideas y partes que desarrollar en cada uno de los apartados, estas tres últimas semanas hasta la presentación final prometen ser intensas y apasionantes.

      Saludos,
      Raúl.

    • Versión definitiva de PALBOT


      Buenos días.

      A falta ya de solo 5 días para la presentación del proyecto en el concurso Retotech tenemos ya una versión muy avanzada que prácticamente podemos dar por definitiva tanto de la aplicación como del código para la placa.

      La principal novedad de esta versión en el apartado SETTINGS, en el que es posible configurar el robot para corregir los posibles desequilibrios de los motores con el fin de que vaya siempre recto (le hemos llamado "equilibrado") e igualmente se puede corregir el ángulo de giro para que sea exactamente de 90º.



      Esta versión es ya la PALBOT12, que hemos vuelto a denominar simplemente como PALBOT y puede descargarse con el siguiente código QR:

       Como novedad también hemos generado un código QR dinámico que será el definitivo de la aplicación por si en algún otro momento incorporamos algún cambio más. Este código servirá para descargar siempre la última versión de la aplicación PALBOT:

      En el siguiente enlace hemos seguido poniendo las diferentes versiones de la aplicación:



      Por último dejamos en esta entrada los códigos de bitbloq que estamos usando para programar las placas. Tanto para la placa arduino UNO como para la ZUMKIT de BQ.

      En concreto el que funciona correctamente con PALBOT es la versión de la placa 8:
       Después de este largo recorrido con el proyecto, estas últimas versiones nos dejan bastante satisfechos con el resultado. Ahora ya si que creemos que hemos obtenido un resultado que puede ser presentado en los colegios para que los alumnos puedan usarlo e iniciarse en el apasionante mundo de la robótica.
      Un saludo,
      Raúl.

No hay comentarios:

Publicar un comentario