domingo, 28 de octubre de 2018

4ºESO TPRPT Proyecto Casa Domótica

Buenos días.

En esta entrada vamos a repasar todo lo que hemos estado viendo en referencia al proyecto de la asignatura TPRPT de 4ºESO: Una casa domótica.

Para este proyecto cada grupo ha diseñado su propia casa de un máximo de 200m2 mediante Floorplaner y después han presentado el proyecto en un documento de texto con las imágenes de los planos y su explicaciñon, así como las tablas con gráficos de superficies reales de la casa y cáculo del material necesario para construirla a escala 1/50.

En el siguiente documento puede verse y descargarse la rúbrica del proyecto:


RÚBRICA PROYECTO CASA DOMÓTICA


En este enlace tenemos documentos de ejemplo de los planos y cálculos a realizar para obtener el documento de proyecto final:

Carpeta con documentos ejemplo diseño Casa Domótica


Por último una serie de vídeos que nos han servido para iniciarnos en Floorplanner y coger ideas para la construcción de las maquetas:

https://www.youtube.com/watch?v=njJID65elJI


Enlace a vídeo ejemplo casa domótica:

https://www.youtube.com/watch?v=UPihzzR_OZg&feature=youtu.be




Enlace a vídeo ejemplo casa de 2 plantas:

https://www.youtube.com/watch?v=xrgz8RU6zcs&feature=youtu.be



Otros ejemplos:








En la siguiente entrada para 4ºESO nos iniciaremos en AppInventor con el tutorial que se encuentra en el siguiente enlace (sacado de la web https://codeweek.eu/docs/spain/guia-iniciacion-app-inventor.pdf):


Un saludo,
Raúl.

jueves, 18 de octubre de 2018

Semáforo Tecnología Industrial I

Buenos días.

En esta entrada vamos a repasar la primera parte del proceso de programación de un semáforo con Arduino en el que nuestro semáforo funcionará de manera cíclica alternando las luces de coches y peatones de manera que la luz de peatones parpadee al final de su ciclo y además se produzca un sonido para las personas invidentes cuando el semáforo este en verde peatones siempre y cuando no sea de noche.

Posteriormente añadiremos al semáforo la posibilidad de trabajar en modo "peatón pulse" añadiendo un botón y finalmente mediante el teléfono móvil interaccionaremos con el semáforo para poder cambiar los parámetros, recibir las información del mismo, cambiar entre los diferentes modos de funcionamiento o apagar el semáforo.

Todo lo anterior vamos a programarlo sin usar en ningún momento la función "esperar" o "delay" de Arduino con el fin de que el programa no sufra ninguna pausa y pueda recibir información de los sensores o bluetooth de manera inmediata.

El proyecto se completará con la creación de una maqueta en la que incorporaremos todos los componentes electrónicos en piezas diseñadas por nosotros e impresas en 3D.

En el siguiente enlace puede verse la rúbrica de evaluación del proyecto.


Hemos repasado entradas del curso pasado para ver como conectar los componentes e iniciarnos en la programacuón usando "obtener tiempo de ejecución".

Conexión de LEDs:

http://iespalti.blogspot.com/2017/10/conexiones-arduino-para-el-proyecto.html

Programación usando "tiempos de ejecución" en lugar de "esperar":

http://iespalti.blogspot.com/2017/10/programacion-proyecto-semaforo.html

Con esta información el siguiente paso ha consistido en realizar el programa más básico de funcionamiento sin parpadeos ni sonido, simplemente la alternancia entre las luces.


Un siguiente paso es el de crear un parpadeo en la parte final del encendido del semáforo de peatones. En la siguiente imagen puede verse como entre los 3000 y 6000 milisegundos de encendido del verde peatones (rojo coches) se hace parpadear la luz verde de peatones.



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.



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:


La siguiente fase del programa consistirá en mantener el mismo juego de luces, parpadeo y sonido pero en el modo "peatón pulse".

Un saludo,
Raúl.

martes, 9 de octubre de 2018

Proyecto Robot 4LEGS TI 2º Bachillerato

Buenos días.

En esta entrada vamos a hacer un repaso a todo lo que llevamos trabajado en esta primera parte del curso en Tecnología Industrial II de 2º de Bachillerato.

El proyecto que hemos comenzado a hacer es un robot que camine inspirado en modelos como el MiniKame2 Quadruped Robot.

Para ello hemos comenzado repasando partes de programación ya vistas el curso pasado, profundizando un poco más en el envío y recepción de datos por bluetooth así como en el control de las acciones de la placa. El primer proyecto que hemos realizado consiste en controlar 4 leds mediante el móvil de manera que seamos capaces de encender y apagar cada uno de ellos y además podamos encender y apagar una secuencia de encendido de los leds. El reto complicado de este primer proyecto es que además la velocidad de ejecución de esa secuencia de encendido se pueda controlar de manera instantánea mediante el móvil. Este programa nos permitirá después llevar estos conceptos a la programación de los servos del Robot 4LEGS haciendo que se muevan sus piernas individualmente o mediante una secuencia que le permita avanzar y de la que además podremos controlar su velocidad.

Para la evaluación de este proyecto en su conjunto vamos a usar la siguiente rúbrica:


Lo primero que vimos fue un repaso del curso pasado de Conexión de LEDs con arduino:

http://iespalti.blogspot.com/2017/10/conexiones-arduino-para-el-proyecto.html

y de como cambiar el nombre y password del módulo bluetooth:

http://iespalti.blogspot.com/2017/12/semaforo-conexion-bluetooth-arduino-y.html

A continuación comenzamos a crear la aplicación móvil que nos permitirá enviar los datos a la placa. Aquí tenéis una imagen de un ejemplo de diseño de la aplicación:


A continuación hemos pasado a programar los componentes de la aplicación. Primero los referentes a la conexión bluetooth con el ListPicker y los diferentes botones de desconexión y de envío de señales de encendido mediante letras que recibirá la placa:


En una primera versión de la aplicación de encendido de la secuencia el cambiar la posición del slider no enviaba nada por bluetooth y era al pulsa el botón de inicio de la secuencia donde enviaba conjuntamente la letra I más el valor de la velocidad (en forma de texto de tres cifras).


Con esta primera versión de la aplicación pasamos a crear el programa en bitbloq para arduino con la idea de que la secuencia se ejecutase una sola vez y en cada caso a la velocidad que marcase el slider. En las siguiente imágenes puede verse la programación de bitbloq de esta primera versión.



Posteriormente mejoramos la versión para que, una vez activada, la secuencia se reproduzca de manera continua hasta que se pare o ejecute otra acción y que mientras se está ejecutando la secuencia podamos cambiar la velocidad. Esto nos llevo por un lado a cambiar la aplicación de appinventor para que cada vez que se modificase el slider enviase la nueva velocidad:


Y en bitbloq para que recibiese estos nuevos datos de la manera correcta y para que además la secuencia se ejecutase de manera ininterrumpida (usando un MIENTRAS en lugar de un SI) pero que al recibir nuevos datos cambiase las variables:




Con estos programas terminados y funcionando correctamente pasaremos a la parte de diseño y construcción del robot para finalmente comenzar a programar los servos que le darán movimiento.

Un saludo,
Raúl.

domingo, 30 de septiembre de 2018

Curso 2018/19

Buenos días.

Comenzamos un nuevo curso y lo hacemos con algunos cambios en el blog.

El más importante es la creación de páginas/pestañas en la parte superior para cada una de las asignaturas para hacer más rápido y accesible el contenido que estemos trabajando en cada una de ellas. Así tenemos una página para Technology 1ESO, otra para TPR Proyectos Tecnológicos de 4º ESO y otras dos para Tecnología Industrial de 1 de bachillerato y Tecnología Industrial de 2 de bachillerato.

Además cada entrada irá asociada a una etiqueta correspondiente a su asignatura que permitirá mediante un visor de etiquetas en la parte derecha seleccionar solo las entradas de esa asignatura en concreto.

Por lo demás el blog funcionará de manera similar a cursos anteriores mediante entradas con explicaciones y enlaces a documentos o vídeos relacionados con cada parte de las diferentes asignaturas que estemos trabajando.

Espero que este nuevo curso este lleno de buenos momentos de aprendizaje y disfrute de las asignaturas de Tecnología.

Un saludo,
Raúl.


lunes, 21 de mayo de 2018

Coche Robótico con Ultrasonido

Buenos días.

En esta entrada vamos a ver como empezar a programar el coche robótico con el ultrasonido para que sea capaz de moverse de manera autónoma por un espacio evitando los obstáculos.

Lo primero será incluir el componente ultrasonido en el apartado de bitbloq para configurar el hardware:



El primer código que vamos a presentar es un sencillo programa que hace que el coche gire hacia la izquierda (rueda derecha alante e izquierda atrás) cuando encuentre un obstáculo a menos de 20cm (valor 20 del ultrasonido).



El mientras del programa hace que el coche siga girando todo el tiempo que siga detectando un obstáculo a menos de 20cm.

Una variante de este programa sería la siguiente opción parecida a la anterior con el añadido de que el coche gira aleatoriamente (con un 50% de probabilidad en cada caso) a izquierda o a derecha.



Partiendo de estos dos programas se pueden plantear algunas otras opciones cómo hacer que el coche, antes de volver a avanzar, detecte la distancia de los obstáculos a un lado y a otro y finalmente decida avanzar por el camino con los obstáculos más alejados. De esta manera el coche comenzaría a comportarse de una manera inteligente a la hora de tomar decisiones.

En el apartado anterior hemos visto como programar el ultrasonido suponiendo que este se encuentra en la parte delantera del coche y va captando la distancia a la que tiene objetos delante según el coche va girando. Otra opción para que el coche sortee obstáculos es colocar el ultrasonido encima de un servo motor de giro que una vez detecta un obstáculo permita girar el ultrasonido para detectar si hay otros obstáculos a los lados sin necesidad de que se mueva el coche.
Para ello lo primero será asegurarnos que el servomotor que vamos a montar está en posición 90º antes de colocarle en posición mirando hacia adelante. Ya que si no es así luego el servo motor no hará el giro a izquierda y derecha cuando le pongamos en posición de 5º o 175º (se le puede poner ir a 0º y 180º pero conviene evitar los ángulos extremos que pueden producir vibraciones).
Para ello podremos realizar un sencillo programa como el siguiente con el que comprobaremos que nuestro servomotor se mueve correctamente y aprovechar a desconectarlo en la pausa más larga en la que sabemos que está a 90º.


Una vez tengamos montado nuestro ultrasonido sobre el servomotor procederemos a programar la detección de objetos y las diferentes acciones que queremos vaya realizando nuestro servomotor en base a los obstáculos que encuentre el coche en su camino.

Un saludo,
Raúl.

miércoles, 25 de abril de 2018

Evaluación Individual TIN II Proyecto Brazo Robótico

Buenos días.

De cara a la Evaluación Final de TIN II en 2º de Bachillerato vamos a trabajar con un documento en el que se recogen todas las partes del proyecto que hemos trabajado. Este documento va a servir para realizar una evaluación individual a cada alumno dentro de los diferentes grupos con el objeto de comprobar que se ha seguido el proyecto realizado y se es capaz de presentar individualmente cualquiera de sus partes.

Uno de los objetivos de la asignatura ha sido el trabajo en equipo y gran parte del curso la hemos dedicado a trabajar en grupo, ser capaces de organizarse y repartir tareas... pero siempre con la idea de que todos los miembros del grupo conociesen el proyecto en su conjunto y puedan demostrar que han trabajado en cada una de las partes, aunque finalmente por el reparto de tareas se hayan especializado más en alguna de las partes del proyecto.

En el siguiente enlace podéis descargar el documento con los apartados y los requisitos mínimos que deben conocerse:


Un saludo,
Raúl.

domingo, 22 de abril de 2018

Brazo Robótico BitBloq/Arduino y AppInventor

Buenos días.

En la siguiente entrada vamos a ver una de las diferentes opciones de programación del brazo robótico.

Empezaremos por un programa sencillo en el que mediante Sliders en la aplicación del teléfono móvil enviamos la información del ángulo en el que queremos que se sitúe cada uno de los 4 motores del brazo.

Aplicación de AppInventor:





En BitBloq la forma más sencilla de recibir esta información es mediante dos variables, la variable "motor"que define el motor que se va a mover y "angulodegiro" que se utiliza para mover cada motor al ángulo recibido desde AppInventor.




Partiendo de este programa sencillo se pueden ir añadiendo otras opciones tanto de control desde el móvil como de control desde hardware por ejemplo usando potenciómetros y con la opción "mapear" de la programación de BitBloq interpolar el valor del potenciómetro entre los valores de ángulo de giro del servo motor. En el siguiente vídeo podéis ver una explicación de como realizar el control de un servo con un potenciómetro:


Un saludo,
Raúl.


miércoles, 4 de abril de 2018

Uso del Slider para manejar el CocheRobot

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.

lunes, 12 de marzo de 2018

Envío de datos más completos por Bluetooth

Buenos días.

Con la tercera evaluación comenzamos la parte más interesante del curso en la que tendremos que poner en práctica todo lo aprendido hasta ahora en proyectos más complejos en los que además habrá trabajar de una manera más autónoma en la toma de decisiones y en la ejecución de las mismas.

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.

martes, 13 de febrero de 2018

Cuestionario Evaluación Asignaturas Tecnología Industrial I y II

Buenos días.

En el mes de enero se ha realizado un cuestionario que han contestado los/as alumnos/as de Tecnología Industrial I y II con el fin de evaluar esta primera mitad de curso y así poder mejorar o adaptar algunas cosas en la parte de curso que nos queda por delante.

Algunos alumnos han contestado de manera individual y otros han preferido hacerlo en los grupos con los que están trabajando los proyectos.

En los siguientes enlaces se pueden ver las preguntas y respuestas para cada uno de los cursos:



La información de los cuestionarios sin duda va a ser muy útil y la tendremos en cuenta para los próximos proyectos. Gracias a todos por vuestra colaboración.

Con todo lo visto en esta primera parte comenzamos ahora los proyectos más importantes del curso en el que tendremos que aplicar todo lo aprendido a proyectos de robótica que ahora además de la parte de programación en arduino y appinventor tendrán elementos móviles y diferentes sistemas de transmisión de movimiento.

Un saludo,
Raúl.





sábado, 27 de enero de 2018

Fin del proyecto SEMÁFORO. Uso del LDR para el control del sonido del semáforo

Buenos días.

Con esta entrada terminamos el proyecto del semáforo cubriendo todos los pasos que nos habíamos propuesto al inicio del mismo.

Para poder controlar que el sonido del semáforo se apague por la noche vamos a recibir en el teléfono móvil la información del LDR enviados desde arduino y mediante un botón de la aplicación podremos asignar en cualquier momento ese valor al cambio entre día y noche. El valor inicial para diferenciar el día y la noche es de 40.

Empezando por app inventor, será en la aplicación será necesario añadir un reloj. Este componente se añade como el bluetooth y el notifier, no se genera ningún elemento visible en la aplicación pero podremos usarlo para controlar cada cuanto tiempo queremos recibir la información vía bluetooth. Como puede verse en la imagen el tiempo asignado ha sido de 100ms. Podría haber sido menor (incluso 0ms) o mayor. Esto simplemente cambiaría el tiempo con el que se recibirán nuevos datos.


El siguiente paso en app inventor será programar la recepción de información. Que esos nuevos datos aparezcan en el label de información del LDR y que al pulsar el botón para asignar ese valor a la noche, ese valor quede registrado en el label correspondiente.


En arduino la parte de programación no es complicada. Podríamos prácticamente enviar mediante una línea el envío de datos pero para que el envío y recepción de los mismos pueda verse mejor y con el fin de aprender a controlar también el tiempo de envío, hemos programado que se envíe un dato desde la placa cada 500ms.
Para ello primero se han creado tres nuevas variables: noche, LDR y tiempo. (es importante recordar que si hemos llamado LDR al componente no podemos llamar LDR a la variable ya que no se pueden tener dos cosas con el mismo nombre. En nuestro caso el componente se llama LDR_elemento).


Una vez creadas las variables realizamos el envío cada 500ms con el siguiente código al principio del bucle principal. Como puede verse en la siguiente imagen, tenemos que crear una variable de tiempo diferente y específica para el envío de datos cada 500ms, en este caso la hemos llamado "tiempo_envio_ldr".



Con esto habremos conseguido algo que no habíamos probado hasta ahora: enviar datos desde arduino a nuestro teléfono, ya que de momento solo enviábamos datos desde app inventor a arduino.

Por otro lado cuando en arduino recibamos la letra Z, que es la que en appinventor hemos asignado al botón de cambio del valor del LDR, deberemos indicar que la variable noche cambie del valor que tiene por defecto (en nuestro ejemplo 50) por el valor que tenga el LDR en ese momento.


Ahora será necesario poner la variable noche en el lugar en el que antes poníamos ese valor de 50 como valor fijo para indicar cuando era de día y cuando era de noche para activar y desactivar el sonido:



En algunos casos el orden de encendido de las luces del semáforo puede que no sea el correcto. Es importante recordar que hay que dejar la secuencia de encendido tanto en modo secuencia como en modo botón. Dado que es un semáforo de coches la secuencia correcta es verde - ambar - rojo - verde. Ya que el ambar se enciende antes del rojo para que los conductores tengan tiempo de frenar antes de que cambie a rojo.
Con la secuencia correcta quedaría así:



Con todo quedaría mucho por mejorar en la estética de la aplicación que ha quedado con un diseño bastante funcional para básicamente poder probar que toda la programación funciona correctamente.

Con esta entrada cerramos este proyecto que nos ha llevado a aprender a programar tanto en arduino con bitbloq como aplicaciones móviles con app inventor. 

En los siguientes proyectos tendremos que poner en práctica todo lo aprendido en este proyecto dando el salto a ser capaces de programar componentes en movimiento y controlandolos desde nuestros teléfonos. Todo un reto para la segunda parte del curso.

Un saludo,
Raúl.

miércoles, 17 de enero de 2018

Cambio de modo botón a modo secuencia y control del sonido con el móvil

Buenos días.

En esta entrada vamos a añadir a nuestra aplicación la posibilidad de controlar desde el móvil el cambio de modo de funcionamiento del semáforo entre funcionamiento "peatón pulse" al que hemos llamado modo botón y el funcionamiento secuencial normal de las luces o modo secuencia.

También añadiremos dos botones para activar o desactivar el sonido del zumbador cuando el semáforo de los coches está en rojo que sería la señal acústica que indicaría que podríamos pasar.

Dejaremos para a próxima y última entrada sobre este proyecto el control del LDR desde el móvil que nos permitirá desactivar automáticamente el sonido cuando es de noche por ejemplo.

Empezamos por mostrar en la siguiente imagen el aspecto de la aplicación con estas dos funciones incorporadas. La estética sigue siendo bastante sencilla ya que de momento lo que estamos priorizando es el funcionamiento de la aplicación.



Los cuatro botones que hemos añadido tienen una programación realmente sencilla en app inventor que puede verse en la siguiente imagen. El modo secuencia manda por bluetooth la señal G, el modo botón la J, el apagado de sonido la L y el encendido la K.


Para poder usar el zumbador sin tener que dejar bloqueado el programa durante el tiempo en que está sonando una buena opción es cambiar el elemento de programación zumbador por un led (en la imagen led_zumbador) que nos permitirá activar o desactivar el pin al que se encuentra conectado el zumbador a la placa.


En la parte de bitbloq usaremos nuevas variables para gestionar la activación o desactivación del modo botón por un lado y del sonido por otro. Al recibir las letras correspondientes estas variables irán cambiando de valor:



Posteriormente estas variables serán las encargadas en nuestro código de hacer que el semáforo tenga que esperar a que se pulse el botón para cambiar o no:


O de que suene de día o no:




Con todo esto ya tendríamos prácticamente terminadas las diferentes fase de control que se habían planteado en la hoja de seguimiento del proyecto de control de semáforo por bluetooth.



En la próxima entrada veremos los puntos referentes a la señal LDR que nos permitirán recibir en el móvil los datos del sensor de la placa y actuar desde el móvil sobre ella.

Un saludo,
Raúl.