jueves, 19 de octubre de 2017

Programación proyecto SEMÁFORO

Buenos días.

Seguimos avanzando en el proyecto de programación en arduino, fabricación de maqueta y aplicación móvil de control de un semáforo. En el siguiente enlace podéis descargar las fases del proyecto a las que hemos añadido en una nueva página las rúbricas de evaluación de cada una de las partes del proyecto.


En un principio lo más sencillo es programar el semáforo usando la función <esperar> o <delay>:

En el siguiente ejemplo vamos a ver como hacerlo para una configuración de tiempos de encendido como la siguiente:

Estado de la luz de los coches         Estado de la luz de peatones        Tiempo de duración
              VERDE                                                 ROJO                                         8s
              ÁMBAR                                                ROJO                                         4s (en los 2 últimos segundos la luz ambar de coches deberá parpadear 4 veces)
              ROJO                                                   VERDE                                        6s (en los 2 últimos segundos la luz verde de peatones deberá parpadear 4 veces)
Para ello será necesario conectar correctamente 5 leds a nuestra controladora (recordar que siempre hay que dejar libres los pines 0 y 1 que son los necesarios para comunicarnos con la placa y cargar los programas por ejemplo) en los pines que después serán los mismos que usaremos en bitbloq para indicar la ubicación de nuestros leds tal y como puede verse en el ejemplo de la imágen.

Posteriormente pasaremos a la programación de la secuencia de encendido utilizando la función <esperar> o <delay> en inglés. Un ejemplo del código puede verse en la siguiente imagen.





En la parte de programación vamos a dar el salto de usar la función ESPERAR de Bitbloq a programar usando Obtener tiempos de ejecución, lo que nos permite tener un mayor control sobre el programa ya que la función esperar bloquea la programación y por tanto la recepción de información por parte de sensores o el control de las respuestas del semáforo.

Este nivel de programación nos llevará a trabajar con las diferentes opciones de código de arduino. Por un lado la Declaración de Variables, por otro Las Instrucciones iniciales (Setup) que se ejecutan una sola vez al iniciar el programa y por último el Bucle principal (Loop) en el que desarrollaremos la parte central del código que se repite en modo Loop.

A continuación dejamos las imágenes de una de las opciones de programación en bitbloq del semáforo en modo sencillo, alternando de rojo durante 8 segundos, a ambar durante 4 segundos y por último a verde durante 6 segundos usando <Obtener tiempo de ejecución>.

En esta opción de programación se juega con las variables TIEMPO y TIEMPO_RESET para crear un ciclo de 18000ms en el que se van secuenciando las luces:







Otra opción es utilizar variables de estado que nos indiquen que luz está encendida y con esa variable de estado y el control del tiempo poder decidir cuando apagarla y encender la siguiente. En este código ya aparece la secuencia correcta verde coches (rojo peatones) - ambar coches (rojo peatones) - rojo coches (verde peatones):




Existen más soluciones como la de usar un contador que vaya aumentando cada 1000ms... Lo fundamental es dar el salto a programar usando los tiempos de ejecución del programa y así evitar usar la función delay/esperar.

En las siguiente imágenes puede verse como incluir las luces de peatones y el parpadeo:




Parpadeo del ambar del coches:


Parpadeo del verde de peatones:



SONIDO EN EL SEMÁFORO:

El siguiente paso de este modo es el de añadir el sonido del zumbador a la programación. En esta imagen puede verse la parte de código correspondiente al apagado y encendido del zumbador. En la siguiente imagen puede verse que añadimos en arduino el zumbador como un led ya que queremos controlar su encendido como con los parpadeos usando <obtener tiempo de ejecución>.


Recordar que en el tema 2 está la imagen de como se conecta un zumbador a la protoboard y a arduino.

Por tanto el código de sonido intermitente será similar a los que ya hemos visto de parpadeo.


Por último para evitar que el zumbador pueda quedar activado en caso de que la luminosidad baje cuando está sonando hemos añadido una condición al inicio del programa.
Tendremos que añadir un LDR. 



Recordar que en el tema 2 está la imagen de como se conecta un LDR a la protoboard y a arduino.



Finalmente para programarlo tendremos que crear una nueva variable, en el ejemplo llamada "luminosidad" que guardará el valor del LDR en cada momento y lo incluirá como condición para que el sonido se produzca solo de día, ya que de noche podría ser excesivamente molesto.

En el ejemplo el valor de luminosidad que marca el cambio de día a noche es que el sensor de un valor de más de 40. Este valor no es fijo, dependerá de la resistencia que pongamos.



En el ejemplo el valor de luminosidad que marca el cambio de día a noche es que el sensor de un valor de más de 40. Este valor no es fijo, dependerá de la resistencia que pongamos y de la sensibilidad del LDR que estemos usando. En un futuro aprenderemos a ajustarlo con nuestro teléfono móvil, pero de momento aprenderemos a obtener este valor usando la información que arduino puede enviar al monitor serie mediante el puerto serie.
Primero tendremos que añadir el puerto serie como componente.



Posteriormente en la programación añadir el envío de los datos que necesitemos al puerto serie:



Y por último, tras cargar el programa en placa, abrir el monitor serie para comprobar los resultados.



En el siguiente tema profundizaremos en la programación incluyendo los parpadeos, y algunos otros componentes al semáforo.

Un saludo,
Raúl.


lunes, 2 de octubre de 2017

Conexiones arduino para el proyecto SEMÁFORO

Buenos días.

En esta entrada haremos una recopilación de imágenes y algún vídeo explicativo sobre la conexión de los componentes para nuestro proyecto del semáforo.

Recuperamos antes de empezar el enlace par la guía con las diferentes fases del proyecto:


Para poder hacer este proyecto necesitaremos por un lado conectar los leds:

Tal y como dicen en esta web:

"Hay dos tipos de personas, los que conectan los LEDs con resistencia y los que no… y solo una de ellas lo está haciendo bien."

Es por eso que nosotros lo vamos a hacer bien, es decir, con resistencia.



Para recordar el código de colores de la resistencia podemos usar estas imágenes en función de que lleve 3 o 4 lineas de colores + la tolerancia.




A continuación tendremos que conectar el zumbador:



El siguiente componente que tendremos que conectar es el LDR, la resistencia variable que nos permitirá saber si es de día o de noche.



Para profundizar más sobre la conexión del LDR y entender porque se conecta de esta manera mediante un divisor de tensión es muy práctica la información de la siguiente web.



El último componente que será necesario conectar es el pulsador:


Conectar los componentes es una fase que parece que tiene menor importancia que la de programar, pero sin duda es realmente importante prestar la máxima atención y entender porque se conectan los componentes de esta manera para evitar fallos que puedan dañar a la placa o los componentes y además nos puedan hacer dar mil vueltas a la programación sin darnos cuenta de que el problema no es de código si no de instalación y conexión.

Un saludo,
Raúl.


sábado, 30 de septiembre de 2017

Tecnología Industrial Curso 2017/18. Primer Proyecto: Semáforo

Buenos días.

Comenzamos un nuevo curso y lo hacemos como terminamos el anterior, trabajando un proyecto que aúna sistemas de control, electricidad, electrónica, circuitos analógicos y digitales, programación en arduino, impresión en 3D y programación de aplicaciones móviles con appinventor.

Será un sencillo proyecto que nos permita iniciarnos en cada una de las diferentes partes del curso como preparación a los trabajos que desarrollaremos a lo largo del curso.

En el siguiente enlace puede descargar el documento con la hoja de seguimiento de las fases del proyecto:


En próximas entradas iremos desarrollando los diferentes contenidos necesarios para la realización del semáforo. Desde la conexión de los componentes a las placas protoboard y arduino hasta la creación de la aplicación para android, pasando por el diseño e impresión de sencilla piezas en 3D.

Esperamos ir publicando pronto también vídeo e imágenes del desarrollo de los proyectos.

Saludos,
Raúl.

jueves, 15 de junio de 2017

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.

martes, 30 de mayo de 2017

Últimas novedades de nuestro proyecto PALBOT

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:


Este 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.


jueves, 18 de mayo de 2017

PALBOT: bitbloq y app inventor

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.


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.