Hola a todos! El principal problema que abarca mi proyecto es la dificultad que tienen los conductores a la hora de estacionar su vehículo, en concreto en las zonas de poca visibilidad, como marcha atrás, el cual es causante de estrés para ciertas personas. Una forma de satisfacer estas expectativas es crear sensor de proximidad, el cuál a más cercano se encuentre el objeto del vehículo más rápido sonará la alarma y el color de la luz indicará la proximidad,…
Hola a todos! El principal problema que abarca mi proyecto es la dificultad que tienen los conductores a la hora de estacionar su vehículo, en concreto en las zonas de poca visibilidad, como marcha atrás, el cual es causante de estrés para ciertas personas. Una forma de satisfacer…
Hola a todos! El principal problema que abarca mi proyecto es la dificultad que tienen los conductores a la…
Hola a todos!
El principal problema que abarca mi proyecto es la dificultad que tienen los conductores a la hora de estacionar su vehículo, en concreto en las zonas de poca visibilidad, como marcha atrás, el cual es causante de estrés para ciertas personas.
Una forma de satisfacer estas expectativas es crear sensor de proximidad, el cuál a más cercano se encuentre el objeto del vehículo más rápido sonará la alarma y el color de la luz indicará la proximidad, siendo el verde el más alejado y el rojo el más cercano. por lo tanto el conductor sabrá cuando está más cerca del objeto y así evitar golpearlo, sabiendo que en la zona trasera de un coche es la que menos visibilidad hay. además permitiría a los conductores aparcar fácilmente ahorrando tiempo, lo que ayudaría a reducir su estrés.
PROTOTIPADO Definición Para el diseño del prototipo he adaptado una antigua caja de diskettes de 3.5”, dentro de la cual he instalado el Arduino y una placa de prototipado a la que he conectado el piezoeléctrico y un led RGB, que me servirá como indicador del modo de…
PROTOTIPADO Definición Para el diseño del prototipo he adaptado una antigua caja de diskettes de 3.5”, dentro de la…
PROTOTIPADO
Definición
Para el diseño del prototipo he adaptado una antigua caja de diskettes de 3.5”, dentro de la cual he instalado el Arduino y una placa de prototipado a la que he conectado el piezoeléctrico y un led RGB, que me servirá como indicador del modo de operación. Un sensor capacitivo realizará la función de botón de selección/activación según el modo elegido.
En el exterior he instalado otra placa de prototipado en la que he situado cuatro bombillas led de colores que se encienden al pulsar el botón correspondiente, cada uno de las cuales emite además un sonido característico a través del piezo instalado en el interior. Un display puede servir como menú de visualización de los ajustes y/o configuración.
En la placa de prototipado exterior he instalado una placa ESP32-WROOM-32D con WiFi / Bluetooth para una posible interacción remota. En esta placa está programada la interacción del display y del sensor de proximidad HC-SR04, y está conectada mediante dos pines con el Arduino para indicar a éste el modo de operación y la posible orden de apertura de la caja.
Además del sensor capacitivo conectado al Arduino, he instalado una llave metálica conectada a un pin TOUCH de la placa ESP32, de manera que al tocar la llave también sirve como botón de acción.
Mediante un potenciómetro se selecciona el modo de operación, girando ángulos de 45º para cada selección. En el display se indica el modo activo, que se transmite al Arduino para unificar las interacciones. A continuación, haré una breve explicación del funcionamiento de cada modo:
Mode 0: Modo Sonido ON / OFF
Con el modo seleccionado, al tocar la llave metálica conectada al pin TOUCH se activa / desactiva el sonido para todos los modos del prototipo.
Mode 1: Modo apertura libre (botón)
Tocando el pin TOUCH se abre o se cierra la cerradura.
Mode 2: Modo sensor de Proximidad
Cuando el sensor detecta a la persona más cerca de 20cm, da la orden de apertura de la cerradura. Cuando se aleja a más de 40cm, espera 5 segundos para dar la orden de cierre y la luz amarilla parpadea poco antes de cerrarse.
Mode 3: Modo Juego (SIMON-OPEN)
El juego consiste en reproducir los sonidos/luces aleatorias que produce el Arduino en ese mismo orden, de manera que cuando se logra reproducir la melodía correcta (de 6 tonos en este caso, por hacerlo fácil), la cerradura abre. Tocando el sensor capacitivo se repite la secuencia actual recién generada. Si la caja está desbloqueada, el sensor cierra la cerradura.
Mode 4: REMOTE WiFi LOCKER
En este modo se inicia un Servidor Web en el puerto 80 al que nos conectamos a través de la placa ESP32 mediante la red Wifi local, desde cualquier navegador. La página web creada para interactuar con el prototipo tan solo consta de 3 botones: Abrir, Cerrar y Salir.
Mode 5: MULTIPURPOSE LOCKER by Vinz
Este modo lo he dejado en blanco, para poder utilizarlo bajo demanda, en función de las necesidades particulares. Aquí se podría instalar cualquiera de las ideas planteadas en el brainstorming de la PEC03, como una cámara de video, lector de huellas, de tarjetas, detector de caras, o el motor de apertura automática.
Mapa conceptual
Enlace al video explicativo de la propuesta
En el siguiente enlace de YouTube está disponible el video con una pequeña explicación de la propuesta planteada y el funcionamiento del prototipo:
PROTOTIPO
Para poder visualizar una parte básica del funcionamiento, he añadido un potenciómetro al prototipo realizado en la PEC anterior, cuya entrada analógica decidirá el modo de operación. He dejado en la parte exterior solo las entradas sobre las que actúa el usuario y he mejorado el funcionamiento operativo del juego que abre la cerradura.
En el prototipo de la versión final, he conectado el potenciómetro a la nueva placa ESP32. Para lograr la interacción entre esta placa y la Arduino Uno utilizo el pin 25 para enviar los datos analógicos del potenciómetro al pin analógico A1 del Arduino, de manera que tengo el mismo modo de operación en ambas placas. Las órdenes de apertura de la cerradura las envío como una señal HIGH / LOW desde el pin 2 del ESP32 al A2 del Arduino.
He conectado también al ESP32 el sensor de proximidad HC-SR04 y la pantalla display 16×2.
Las funciones del servo para apertura de la puerta y el modo juego siguen implementados íntegramente en la placa Arduino Uno.
Los componentes utilizados son los siguientes:
1x Arduino UNO
1x ESP32-WROOM-32D DevKitC V4
1x Piezoeléctrico
7x Resistencias 220 Ohms
2x Resistencias 470 Ohms
2x Resistencias 10 kOhms
1x Resistencia 1 kOhms
1x Resistencia 4,7 kOhms
4x Pulsadores
4x LED de color verde, amarillo, rojo y azul
1x LED RGB (por simplificar, finalmente dejé puesto un LED azul)
2x Potenciómetros
1x Condensador de 0.1nF
1x Servomotor
1x Sensor de proximidad HC-SR04
1x Display Liquid Crystal 16×2
Esquema y conexiones
Arduino Uno
He utilizado el pin analógico A0 del Arduino para recibir la tensión que llega de los pulsadores, que será diferente según se haya pulsado uno u otro botón debido al montaje en escalera de resistencias.
Los pines 2, 3, 4 y 5 los utilizo como salida digital para encender los LED, y el 7 servirá para enviar los datos al piezo.
El pin 6 lo utilizo en modo PWM para modificar el ángulo del brazo del servo.
Los pines 12 y 13 los utilizo para activar el sensor capacitivo.
ESP32-WROOM-32D
El potenciómetro de selección del modo de operación está conectado al pin 13 del ESP32.
El sensor de proximidad HC-SR04 está conectado a los pines 32 y 35 para el trigger y el echo, respectivamente.
Los pines de salida al display son el 21, 19, 18, 5, 17 y 16 para las conexiones rs, enable, d4, d5, d6 y d7, respectivamente.
Además, utilizo el pin TOUCH 4 para utilizarlo como botón interacción en la placa ESP32.
Éste es el esquema del conexionado, implementado utilizando Fritzing:
INTERACTION DESIGN FOUNDATION (2023). Literatura de código abierto y acceso abierto [en línea][consulta: 16 de abril de 2023]. Disponible en: https://www.interaction-design.org/literature
VILANOVA, Santiago. Comunicación y tratamiento de datos. Barcelona: FUOC, 2022 (PID_00287690)
Disponible en línea: https://materials.campus.uoc.edu/daisy/Materials/PID_00287690/html5/PID_00287690.html
ADELL, Ferran y SERRA, Laura. Galería de proyectos de interacción tangible [en línea] Barcelona: UOC. (PID_00287693) [consulta: 9 de marzo de 2023]. Disponible en: http://interaccio-tangible.aula.uoc.edu/es/
HACKERS (An Avnet Comunity) [en línea][consulta: 9 de marzo de 2023]. Disponible en: https://www.hackster.io/
PROGRAMADOR NOVATO. Curso ESP32. YouTube [consulta: 8 de mayo de 2023]. Disponible en: https://www.youtube.com/watch?v=VuJkqL2Ys3Y&list=PLCTD_CpMeEKTvjzabAvLGHakg-ql6t0q6
LA BUHARDILLA DEL LOCO. Curso ESP32 desde 0 en español. YouTube [consulta: 8 de mayo de 2023]. Disponible en: https://www.youtube.com/watch?v=pdgFqPbw64g&list=PLWXJr4iWm_MXA0yQRKs62YHCTnYirJldM
Para este proyecto se ha creado un panel interactivo que permita a los infantes dar a conocer como se sienten. Desarrollo Para poder desarrollar el panel de emociones, lo primero que debe hacerse es crear una base de datos y un servidor para poder almacenar el sitio web.…
Para este proyecto se ha creado un panel interactivo que permita a los infantes dar a conocer como se…
Para este proyecto se ha creado un panel interactivo que permita a los infantes dar a conocer como se sienten.
Desarrollo
Para poder desarrollar el panel de emociones, lo primero que debe hacerse es crear una base de datos y un servidor para poder almacenar el sitio web. Para ello se ha instalado Xampp, dentro del cual se encuentra el módulo apache para el servidor y la bbdd mySQL donde hay tres tablas. La web-app se comunica con el servidor, principalmente hecho con lenguaje php y html, para extraer y montar la web en función del número de alumnos y los datos de los alumnos.
Aquí en localhost encontramos tres tablas en una base de datos llamada school:
Flag con dos columnas: id_flag e id_state. Esto sirve como control de que algo se ha escaneado con la cámara. Siempre tendrá un registro, 0 si no hay escaneado y id_alumno si se ha escaneado.
State con 3 columnas: date, id y state. Sirve como registro del estado emocional del alumno.
Student: contiene dos columnas, name e id. Posteriormente se podrían añadir otros datos importantes, como la clase, el nombre del profesor…
El sitio web está en el servidor Xampp (School web). Está hecha en php para que pueda funcionar la vinculación con la base de datos y html + css (style en las propias etiquetas html y en la librería Bootstrap 5).
¿Cómo funciona la cámara?
El código se encuentra programado en el IDE de Arduino. Se han tenido que instalar las librerías de ESP32. El script funciona de la siguiente manera: se conecta al WIFI (lo tiene integrado) y hace una serie de configuraciones, donde crea un servidor web en el cual se emitan las imágenes capturadas. Se muestra en 3 resoluciones diferentes, en este caso, se usa la resolución más baja, ya que el uso es simplemente como lector QR. Para que la cámara pueda identificar la grabación, se ha usado Python, ya que dispone de librerías de reconocimiento facial, de imagen, de objetos… En este caso, se ha enfocado en el reconocimiento de código de barras/QR. El código usado es copiado, excepto la vinculación con la base de datos.
Una vez que se ha leído el QR y su correspondiente identificador, en este caso un texto con un número, este se guarda en la base de datos.
La selección de emociones:
Se usa el módulo ESP8266, que tiene Wifi y un procesador interno que permite gestionar características de Arduino. Cuando identifica que el flag de la base de datos se encuentra activo, flag modificado al leer el QR, se pulsa el botón con la emoción requerida, y se manda esta información a la bbdd a partir de llamadas a distintos ficheros php que realizan la función de consulta a base de datos, almacenados en la bbdd mysqp de XAMPP. De allí el registro puede consultarse en la página web creada para tal fin.
El acceso:
Con el propio Arduino UNO R3 se ha incorporado una pantalla LCD y un sensor de movimiento. Al detectar movimiento, justo en el momento que se pasa la mano para escanear el QR, se muestra un texto de bienvenida en la pantalla LCD.
Hello friends, here you have my project for the PR4. I show how our remote irrigation system has been made, as we mentioned before, it is made up of an ESP8266, a relay, an lcd screen, a reset button and a button to modify the screen lighting. The control is done through the MQTT protocol and the connection through a MIFI modem. I connected the system to the electrical panel and with a Wi-Fi connection through the mifi modem. Now…
Hello friends, here you have my project for the PR4. I show how our remote irrigation system has been made, as we mentioned before, it is made up of an ESP8266, a relay, an lcd screen, a reset button and a button to modify the screen lighting. The…
Hello friends, here you have my project for the PR4. I show how our remote irrigation system has been…
Hello friends, here you have my project for the PR4.
I show how our remote irrigation system has been made, as we mentioned before, it is made up of an ESP8266, a relay, an lcd screen, a reset button and a button to modify the screen lighting.
The control is done through the MQTT protocol and the connection through a MIFI modem.
I connected the system to the electrical panel and with a Wi-Fi connection through the mifi modem.
¡Hola! Mi propuesta es un sensor de temperatura para neveras industriales. El prototipo consta de una placa Arduino conectada a un sensor de temperatura, una pantalla LCD, LEDs y un buzzer. A medida que cambia la temperatura, el prototipo responde en consecuencia. Utiliza un sistema LED codificado por colores para indicar diferentes rangos de temperatura. Si es correcta, se ilumina un LED verde. Si supera un cierto umbral, se ilumina un LED rojo, mientras que un LED azul indica una…
¡Hola! Mi propuesta es un sensor de temperatura para neveras industriales. El prototipo consta de una placa Arduino conectada a un sensor de temperatura, una pantalla LCD, LEDs y un buzzer. A medida que cambia la temperatura, el prototipo responde en consecuencia. Utiliza un sistema LED codificado por…
¡Hola! Mi propuesta es un sensor de temperatura para neveras industriales. El prototipo consta de una placa Arduino conectada…
¡Hola!
Mi propuesta es un sensor de temperatura para neveras industriales.
El prototipo consta de una placa Arduino conectada a un sensor de temperatura, una pantalla LCD, LEDs y un buzzer.
A medida que cambia la temperatura, el prototipo responde en consecuencia. Utiliza un sistema LED codificado por colores para indicar diferentes rangos de temperatura. Si es correcta, se ilumina un LED verde. Si supera un cierto umbral, se ilumina un LED rojo, mientras que un LED azul indica una temperatura baja.
Además, el prototipo incorpora un sistema de alarma audible. Cuando la temperatura alcanza un nivel crítico, se activa un zumbador para alertar al usuario.
Para mejorar la comodidad del usuario, las lecturas de temperatura no solo se muestran en la pantalla LCD, sino que también se registran en un archivo de texto. Esto permite el almacenamiento y análisis de datos de temperatura a lo largo del tiempo.
Esta es mi entrada para la práctica 4 de la asignatura puedes echar un vistazo al sistema automatizado de control de acceso para mascotas. A través de un video demostrativo, podrás observar cómo funciona nuestro prototipo y cómo utiliza tecnología innovadora para permitir que tus mascotas accedan a…
Esta es mi entrada para la práctica 4 de la asignatura puedes echar un vistazo al sistema automatizado de…
Esta es mi entrada para la práctica 4 de la asignatura puedes echar un vistazo al sistema automatizado de control de acceso para mascotas. A través de un video demostrativo, podrás observar cómo funciona nuestro prototipo y cómo utiliza tecnología innovadora para permitir que tus mascotas accedan a determinados espacios de forma segura y automática.
El sistema automatizado de control de acceso para mascotas ofrece una solución práctica y segura para permitir que tus mascotas exploren ciertos espacios en momentos específicos.
Muy buenas compañeros. Para esta práctica he mejorado el diseño de la PEC anterior, este proyecto consiste en una alarma personalizada para mi habitación. Esta alarma me alerta cuando alguien entra en mi habitación y yo estoy con los cascos puestos o jugando videojuegos y no escucho la…
Muy buenas compañeros. Para esta práctica he mejorado el diseño de la PEC anterior, este proyecto consiste en una…
Muy buenas compañeros.
Para esta práctica he mejorado el diseño de la PEC anterior, este proyecto consiste en una alarma personalizada para mi habitación. Esta alarma me alerta cuando alguien entra en mi habitación y yo estoy con los cascos puestos o jugando videojuegos y no escucho la puerta abrirse. Esta alarma funciona de manera que cuando el pomo de la puerta se gira para abrir la puerta, el sensor de inclinación que lleva adherido se activa y envía una señal a la placa Arduino, avisándonos de diferentes maneras, como encendiéndose un led rojo, el buzzer emitiendo un sonido agudo o la pantalla lcd mostrando un mensaje.
Aquí tenéis el vídeo donde se explica mucho mejor el funcionamiento, un saludo.
INTERACCIÓN TANGIBLE – PEC 4 Desarrollo de un entorno creativo basado en Arduino, audio, vídeo, y lenguaje MIDI. DVSS (Duplex Visual (and) Sound System) Mariano Mayayo Burillo mmayayob@uoc.edu Grado de Técnicas de Interacción Digital y Multimedia Universitat Oberta de Catalunya – Junio de 2023 ESQUEMA DE CONEXIONES EN…
INTERACCIÓN TANGIBLE – PEC 4 Desarrollo de un entorno creativo basado en Arduino, audio, vídeo, y lenguaje MIDI. DVSS…
INTERACCIÓN TANGIBLE – PEC 4 Desarrollo de un entorno creativo basado en Arduino, audio, vídeo, y lenguaje MIDI.
DVSS (Duplex Visual (and) Sound System)
Mariano Mayayo Burillo
mmayayob@uoc.edu
Grado de Técnicas de Interacción Digital y Multimedia
En esta última práctica (PEC4) de Interacción tangible, se desarrolla finalmente el dispositivo en el que se ha trabajado en las prácticas anteriores (2 y 3). Consiste en un sistema que recibe datos musicales de dos tipos, analógicos (voltaje recibido desde sintetizadores) y digitales (mediante lenguaje MIDI), los procesa y envía mediante comunicación en serie a un sistema de visualización gráfica basado en Processing.
PASOS PREVIOS. (PROYECTOS ANTERIORES)
En el primer prototipo (PEC2, comunicación entre sintetizador y arduino) se establecieron las bases para la comunicación mediante señal analógica de entrada a arduino y comunicación en serie con Processing para visualización de señales.
En la PEC3 continuó el proyecto iniciado en la PEC2 anterior sobre comunicación entre dispositivos y sistemas de monitorización de distintas señales, se creó una opción de salida de voltaje analógico para enviar datos a dispositivos musicales (sintetizadores) y modificar sus sonidos, y se crearon nuevas opciones de visualización gráfica basadas en elementos 3D.
PROCEDIMIENTO PEC4 (FINAL)
Se sigue el procedimiento del design thinking mediante el cual se tiene en cuenta las diversas necesidades del usuario final (músicos electrónicos, discjockeys, artistas visuales, etc) así como la realización de diversos test de funcionamiento que nos permita obtener el resultado deseado.
El desarrollo final del proyecto actual en esta PEC4 comienza tras realizar diversos tests sobre el prototipo desarrollado en la PEC3 en los que se ha observado una serie de necesidades para el proyecto final y se ha decidido realizar determinadas modificaciones importantes, tanto en hardware como en programación tanto de Arduino como de processing, para poder llevarlo a cabo.
Estas modificaciones condicionadas principalmente por la necesidad de comunicación MIDI y el propio diseño de interacción del sistema son:
PRINCIPALES CAMBIOS EN HARDWARE:
Cambio de placa Arduino UNO por una placa ARDUINO MEGA. Arduino UNO sólo dispone de un bus serie y en este proyecto son necesarios varios buses de comunicación. Arduino MEGA ofrece hasta 4 buses de comunicación serie. Con Arduino UNO era imposible en las primeras pruebas el utilizar los dispositivos I2C junto con el protocolo MIDI.
Necesidad de conectores MIDI y optoacoplador 6n139 para la recepción de mensajes MIDI. (NotesAndVolts)
Se añade un KEYPAD 4×4 para controlar las diversas opciones directamente desde el propio dispositivo, en vez de controlarlas desde el teclado del PC como se hacía en la PEC 3.
Se elimina la pantalla LCD y se sustituye por 8 LEDS que indican los diferentes estados del sistema. Tras las pruebas no se considera necesario mostrar valores en esta pantalla, pero sí es necesario mostrar el estado del sistema. Esto simplifica el desarrollo del código de Arduino, el diseño de interacción, y la programación básica del sistema, permitiendo así invertir más tiempo en el desarrollo de la comunicación MIDI , en serie y las diferentes opciones de visualización.
Se incluyen 2 componentes I2C con PCF8574 que ofrecen hasta 8 puertos de entrada y salida. Uno de estos módulos se usa para la recepción de los mensajes del Keypad y el otro para las 8 salidas hacia los LEDS. (Cambatronics)
PRINCIPALES CAMBIOS EN SOFTWARE ARDUINO
Se incluyen las librerías necesarias para la comunicación en serie con los dispositivos I2C tanto para entrada como para salida. Librería PCF8574.h y librería I2CKeypad.h.
Se incluye la librería necesaria para establecer la comunicación MIDI. midi.h.(fortyseveneffects)
Se envían mediante serie desde arduino processing simultáneamente los valores de la entrada analógica seleccionada y los mensajes midi consistentes principalmente en NOTE ON, NOTE OFF, VOLUME, y CHANNEL.
Uno de los datos midi de CC (Control Change) será utilizado para enviar parámetros de modificación de sonido al sintetizador, es decir, Arduino actuará como conversor de datos MIDI (digitales de entrada) a datos analógicos (voltaje de salida). En este caso utilizaremos el control de Pitch (PitchBend) de una caja de ritmos para ejecutar estas acciones sobre el sintetizador.
PRINCIPALES CAMBIOS EN SOFTWARE PROCESSING
Se eliminan las opciones de control de procesing desde el teclado del PC. Ahora se controlará todo el funcionamiento desde el Keypad del dispositivo, usando así processing únicamente para visualización.
Se reciben en serie en processing los valores enviados desde arduino. Se separan los mensajes serie recibidos y se generan distintos efectos visuales con cada uno de ellos.
OTRAS CARACTERÍSTICAS MODIFICADAS
Sincronización por TimeCode (Deshabilitada) En caso de implementar la sincronización por código de tiempos con dispositivos externos, ésta debe ser realizada en Arduino y debe ser processing, que simplemente responde a las órdenes de Arduino, quien se sincronice de esta manera con Arduino. Por el momento se descarta esta opción de sincronización por timecode, ya que no es el objetivo principal de este proyecto, pero queda la idea pendiente para posibles mejoras en el futuro.
Dispositivos apuntadores o de entrada de datos previstos en prácticas anteriores (Pec3): Se pretende reducir al máximo el uso del ordenador para seleccionar o modificar efectos de vídeo en processing, de manera que este proyecto funcione casi automáticamente. Todos los controles deben poder ser realizados desde el propio dispositivo, o desde los instrumentos musicales conectados a él. De esta manera el artista se puede centrar más en sus propios instrumentos y en su propia composición.
Posibilidad de ejecución y modificación de vídeo en tiempo real en Processing, mediante una webcam, o capturadora SDI o HDMI. Pendiente de implementar.Estas opciones de uso de Webcam o vídeos se quedan pendientes para futuras versiones del sistema. En este proyecto actual únicamente se desarrollarán diversos efectos visuales en processing que actuarán de manera automática en función de diversos valores de entradas seleccionados por el usuario.
Se opta por una visualización de elementos en 3D, de manera que se pueda realizar un sencillo movimiento automático de cámara en processing que muestre los elementos de una manera más atractiva y con una visualización en perspectiva.
EMPATIZAR CON LOS USUARIOS
Una de las principales limitaciones que encuentran los distintos artistas multimedia (músicos, artistas visuales y otros en el campo de la experimentación electrónica) suele ser la sincronización e interconexión entre dispositivos de distinto tipo.
La intención es que se pueda poner en funcionamiento rápidamente simplemente realizando las conexiones necesarias (USB, Voltaje In / Out y MIDI) y abriendo el proyecto de processing. Todo el control de los efectos visuales y de sonido se realiza directamente desde el propio dispositivo a través del Keypad.
El código de processing puede ser modificado en cualquier momento para crear nuevas opciones visuales, sin tener que modificar nada de Arduino o del propio hardware. Con lo cual existe la posibilidad de que artistas visuales o programadores generen su propio código de Processing para ellos mismos o para otros músicos, permitiendo así la colaboración entre artistas de diversas disciplinas.
Igualmente los distintos dispositivos externos, teclados midi o sintetizadores, pueden ser sustituidos por otros que dispongan de las mismas características (Salida MIDI y entrada / salida de voltaje). De esta manera se convierte el proyecto actual en un proyecto adaptable a muy diversos escenarios.
DEFINICIÓN DEL PROYECTO
El objetivo de este proyecto final es desarrollar el sistema de comunicación entre distintos dispositivos que se ha definido a lo largo de las prácticas anteriores, de manera que la interacción del usuario sobre alguno de ellos, genere una respuesta visual o sonora en algún otro. Todo esto teniendo como parte central del sistema la combinación de Arduino (ARDUINO) y Processing.
Concretamente se va a utilizar un generador de señales analógicas (sintetizador Behringer Td-3) y un secuenciador midi / caja de ritmos (Yamaha Rm1X). Ambos estarán sincronizados por MIDI, siendo el sintetizador el encargado del origen de la señal de sincronismo. Es decir, pulsando play en el sintetizador, la caja de ritmos comenzará su reproducción de manera sincronizada a éste, enviando además los datos midi de sus 16 canales al sistema Arduino.
De esta manera se recibirán datos analógicos del sintetizador, y datos midi de la caja de ritmos, simultáneamente y de manera sincronizada a la reproducción musical de ambos dispositivos. (Ver esquema de conexiones BASIC SETUP al inicio de este documento)
EJEMPLOS DE USO
La ejecución de una secuencia musical a través de MIDI, y/o a través de salidas analógicas (desde un teclado, sintetizador, DAW, etc) reproduce (o genera) una señal de vídeo sobre una pantalla o proyector.
Las acciones sobre un teclado o interruptores activan o desactivan diversas opciones de visualización o ejecución del programa, o alguna opción sobre la reproducción de audio.
Un dispositivo de salida como un sintetizador, puede enviar datos a la entrada de un dispositivo actuador por ejemplo para mostrar un gráfico o una señal de vídeo, pero también puede recibirlos y comportarse como actuador, ejecutando una secuencia de notas midi o modificando un sonido en función de las órdenes que recibe de otros dispositivos. Es decir, la comunicación entre los dispositivos, es bidireccional.
Las señales que se envían y reciben deben poder ser monitorizadas y visualizadas de alguna manera para poder tener control de lo que está sucediendo en cada momento, en este ejemplo final se realizará mediante LEDS que muestra el estado en el que está actuando el sistema.
NECESIDADES DE COMUNICACIÓN ENTRE DISPOSITIVOS
En este caso, es necesario varios buses de comunicación en serie, ya que ahora se dispone de lenguaje MIDI, dos dispositivos I2C, y la conexión por USB entre Arduino y Processing. Estos requisitos son los que principalmente han hecho necesario el cambio de una placa Arduino UNO a una Arduino MEGA. Además esta nueva placa permitirá en un futuro añadir muchas más conexiones para posibles instrumentos musicales o cualquier otro controlador que disponga de más opciones. De esta manera es posible el objetivo principal de enviar a processing de manera simultánea, via serial distintos tipos de datos (analógicos y midi).
Como ya se ha comentado, se decide finalmente el uso del lenguaje MIDI ya que es un estándar en la industria musical y se dispone en la actualidad de diversos instrumentos musicales que permiten testear y realizar pruebas con este proyecto. No se cierra la puerta a adaptar en el futuro el sistema completo a otros protocolos de comunicación.
Queda pendiente la posibilidad de uso de otros protocolos de comunicación además de Midi. Por ejemplo, OSC o IP. Se realizarán las pruebas necesarias en futuras versiones del proyecto según necesidades o peticiones de artistas.
Se utiliza un Keypad conectado a Arduino para ejecutar toda la interacción del usuario con este sistema. También la interacción del usuario con los propios instrumentos musicales modificará los gráficos que genera processing, ya que son los propios datos musicales los que generan los efectos visuales en processing.
IDEA Y OBJETIVOS CONCRETOS
Tomando como punto de partida los anteriores proyectos desarrollados en las PEC 2 y 3 se pretende crear el prototipo final completamente funcional con las modificaciones mencionadas anteriormente, que han sido decididas tras diversos testeos y pruebas de funcionamiento. Además debe quedar incluido en una caja acondicionada de tal manera que tenga los conectores necesarios para la conexión adecuada de los diferentes dispositivos externos.
DESARROLLO DEL SISTEMA FINAL
En el caso de este proyecto final (PEC4) gran parte de las modificaciones han sido en materia de hardware y componentes, lo que ha obligado a reprogramar casi por completo el código de Arduino. Por otra parte el código de Processing se limita casi exclusivamente a la recepción de mensajes serie y a la generación de efectos visuales en función de estos mensajes recibidos.
Los mensajes de las entradas analógicas y midi deben ser enviados a la vez desde arduino hasta processing si se quieren visualizar de manera simultánea, es decir, deben ser enviados y recibidos en la misma línea en serie.
PRINCIPALES CARACTERÍSTICAS DEL CÓDIGO DE ARDUINO
Mediante la función Midi.read() se reciben los mensajes midi, que posteriormente serán filtrados con GetType.
Midi.GetType() recibe el tipo de mensaje midi concreto y guarda el valor recibido en la variable correspondiente.
Mediante el caso Switch (keys[index]) se reciben los datos del keypad y se ejecutan las distintas acciones permitidas como leer una u otra entrada, enviar datos a los dispositivos externos o generar efectos visuales.
La función SendSerialMessages() envía finalmente los datos recibidos y procesados al sistema de visualización final en processing mediante comunicación en serie.
DISEÑO DE INTERACCIÓN
La interacción con el dispositivo se realiza mediante el keypad incluido. Las opciones son:
1 – Selecciona entrada analógica A0 (+5v).
2 – Selecciona entrada analógica A1 (+10V).
3 – Selecciona entrada de datos MIDI (Puede convivir con A0 ó con A1).
A – Permite envío de señal hacia la salida analógica (Envío al filtro del sintetizador).
B – Permite envío de señal hacia Processing.
C – Envía datos serie a processing para ejecutar un efecto de vídeo.
D – Envía otro dato a processing para la ejecución de un segundo efecto de vídeo.
OPCIONES ELIMINADAS DESDE PROYECTOS ANTERIORES
Funciones de teclado en Pc para processing (eliminadas) En el prototipo anterior se utilizaba la función keyPressed() de processing para controlar distintas opciones de Processing, así como para la generación de diferentes efectos visuales. En este diseño final se ha eliminado toda la programación relativa a esta parte, ya que se ha decidido no usar el teclado del PC. En el caso de tener algún tipo de comando de teclado de PC en el código de processing, estará implementado únicamente con funciones de testeo o debug. No se pretende implementar estas funcionalidades para el usuario final en PC. Algunas de estas funciones han sido trasladadas al keypad del sistema Arduino y otras eliminadas definitivamente. El motivo de estas modificaciones es principalmente centrar todo el control del sistema en el propio dispositivo Arduino y usar processing solo como visualización, y no como sistema de control. Es decir, es Arduino quien envía los datos necesarios a processing de lo que debe mostrar en cada momento, y de qué manera debe hacerlo.
Bidireccionalidad entre Processing y Arduino (Eliminada) De la misma manera se ha eliminado esta opción de control del dispositivo desde processing. Es decir, únicamente se quiere controlar todo el sistema desde el propio dispositivo Arduino, dejando processing únicamente para la programación de los efectos visuales en función de los datos recibidos.
Código de tiempos (eliminado) Se ha eliminado la opción de visualización de código de tiempos. (La implementación del timecode en Arduino se realizará en futuras versiones si pudiese ser necesaria).
SEÑAL FILTER INPUT AL SINTETIZADOR (controlada desde MIDI)
La señal de salida analógica desde Arduino para enviar distintos valores de voltaje a las entradas de los sintetizadores se controlan ahora desde un dispositivo midi externo mediante los mensajes de cambio de control. Como ejemplo se ha configurado que la recepción de un parámetro concreto de CC envíe mayor o menor voltaje al puerto de salida analógico que actúa sobre el filtro del sintetizador. Es decir, estamos usando el dispositivo como “conversor” de datos midi a voltaje, pudiendo así modificar el sonido de un instrumento concreto desde un controlador de otro distinto.
FASE DE TESTEO
La principal complejidad se encuentra en la programación de la comunicación en serie de los valores midi enviados desde arduino y recibidos en processing. En función de los distintos efectos visuales que se quieran proyectar, es necesario realizar esta comunicación de manera muy concreta. Por ejemplo, un problema que no se ha conseguido resolver, por el momento, es el envío del mensaje NOTE OFF desde Arduino, que actualmente ejecuta la orden de desactivar nota en todas las notas que están activas. Esto combinado con que el redibujado de processing se realiza en cada frame, resulta complejo de resolver. La verdad es que apenas se aprecia, ya que en el siguiente mensaje se vuelven a redibujar las notas activas, dando la sensación de que los gráficos resultantes representan realmente las notas tocadas por los dispositivos. Pero evidentemente, con tiempo, esta programación se puede mejorar.
CONCLUSIONES Y PRÓXIMOS PASOS
Aunque es cierto que queda mucho trabajo en cuanto a la programación de todo el código relativo al lenguaje MIDI, el resultado final es bastante satisfactorio, ya que se ha desarrollado un sistema que permite hacer efectos visuales (programando de manera más creativa en processing) y que responde con gran fidelidad a la actuación musical que pueda realizar un artista.
Es importante destacar que las pruebas se han realizado con los dos dispositivos midi y analógico que estaban disponibles en el momento, pero realmente estos equipos se pueden sustituir por otros con características similares. Es decir, podemos incluir un sintetizador que tenga muchos más tipos de entradas o salidas analógicas, y simplemente habría que adaptar el código para poder recibirlas o enviarlas de la misma manera que se ha hecho con sólo dos entradas, o incluir un nuevo teclado midi o un sistema DAW, simplemente haciendo las modificaciones oportunas en el código.
Quizá sería interesante probar el funcionamiento de este sistema con algún otro software de renderizado en tiempo real como Unity o Unreal Engine, que igualmente permiten comunicación con Arduino a través de las librerías apropiadas.
REFERENCIAS BIBLIOGRÁFICAS / WEBGRAFÍA
Arduino [En línea]. Consultado en abril de 2023. Disponible en: arduino.cc
Proyecto Como se ha comentado en las anteriores PEC el enfoque es a personas con ciertas enfermedades degenerativas que, para su comodidad, necesitan controlar la temperatura de las habitaciones o lugares que visitan para no sentirse mal. El proyecto funciona cuando está conectado a la corriente, donde capta…
Proyecto Como se ha comentado en las anteriores PEC el enfoque es a personas con ciertas enfermedades degenerativas que,…
Proyecto
Como se ha comentado en las anteriores PEC el enfoque es a personas con ciertas enfermedades degenerativas que, para su comodidad, necesitan controlar la temperatura de las habitaciones o lugares que visitan para no sentirse mal.
El proyecto funciona cuando está conectado a la corriente, donde capta la temperatura de la habitación. Dependiendo de los grados se producirán diferentes efectos, se iluminarán los LEDS correspondientes a la temperatura y también el sonido de aviso. En este nuevo reto lo más importante es que se ha incorporado ha sido un servomotor que servirá de visualizar la variación de temperatura en nuestra ubicación, y se encenderá cuando la temperatura este a más de 28 °C.
Mejoras en esta Práctica
En esta entrega, siguiendo con el progreso previo, y tal como se planteó en la entrega anterior, hemos añadido nuevas funciones al proyecto que mejoran significativamente el producto.
Hemos integrado un servomotor para visualizar la variación de temperatura en nuestra ubicación.
Además, hemos desarrollado una carcasa personalizada, cuyo diseño se ha inspirado en los colores utilizados a lo largo del proyecto y en el nombre asignado en la entrega anterior.
Todo esto se ha llevado a cabo siguiendo la metodología del Design Thinking como se pedía.
Tras el desarrollo de la PEC3 y las ideas que se avanzaron en dicha práctica, se ha realizado el prototipo final y su posterior evaluación como recurso práctico material en aulas con niños con algún grado de discapacidad visual. Con el fin de una mejor adaptación del prototipo…
Tras el desarrollo de la PEC3 y las ideas que se avanzaron en dicha práctica, se ha realizado el…
Tras el desarrollo de la PEC3 y las ideas que se avanzaron en dicha práctica, se ha realizado el prototipo final y su posterior evaluación como recurso práctico material en aulas con niños con algún grado de discapacidad visual.
Con el fin de una mejor adaptación del prototipo a las aulas, se ha pensado en su disposición en el entorno y en los recursos humanos, materiales y medidas necesarios que deberán tomarse para su buen funcionamiento y, evidentemente, para que su utilización sirva de ayuda a todos los niños del aula.
Recursos humanos
Aunque el proyecto presentado es un recurso material, cabe destacar que se debe de contar con recursos humanos mínimos para su buen funcionamiento. Entre ellos están:
Docentes y educadores. Es necesario que todas las personas responsables del aula conozcan y sepan el funcionamiento de un Arduino. De lo contrario, se impartirán unas pequeñas formaciones para el uso del proyecto.
Colaboradores. En ocasiones, agentes de seguridad o de tráfico pueden acudir a las aulas con estos dispositivos para brindar más información.
Alumnos. Los alumnos que no tienen discapacidad visual también son un activo de recursos humanos ya que serán los encargados de ayudar a sus compañeros a moverse por el cruce con semáforo, eso sí, siguiendo las instrucciones de los docentes.
Recursos materiales
La adaptación de un espacio que esté destinado para el Semáforo inclusivo, a menor escala que un semáforo de tráfico regular pero que tenga los mismos elementos. A poder ser, si el aula tiene los metros suficientes sería conveniente que ocupara la totalidad del aula y encima del cruce se colocaran las mesas con pupitres. De esta forma, al realizar la actividad se pondrían mesas y sillas a un lado y el espacio quedaría más realista.
Escalón de bajada y subida de la acera. Para que la sensación de cruzar sea real. Estos escalones pueden ser construidos en materiales como madera o plástico para que los alumnos no se hagan daño en caso de caídas.
Líneas blancas de cruce. Para representar las líneas pintadas en el asfalto se deberá utilizar pintura no permanente para poder pintar el suelo del aula y que, si en un futuro se quiere retirar, sea fácil. Además, se ha pensado en no utilizar recursos como cinta adhesiva debido a que podrían causar tropiezos al ser irregular en algunos tramos.
Acera táctil. Al igual que con los escalones, se debe representar una zona anterior a dicho escalón, que indique el comienzo del cruce mediante un área con puntos rugosos que permitan a las personas con discapacidad visual entender que allí es el inicio del cruce de calle.
Estructura de semáforo. Es la carcasa que envolverá al proyecto con Arduino, ésta permitirá que el proyecto sea más realista. Mediante una máquina de impresión 3D se podría realizar esta tarea con resultados muy positivos.
Respecto al prototipo en sí, se ha adaptado el código de Arduino para que sus funcionalidades finales sean:
Colores led rojo y verde únicos. (Perteneciente a la PEC3)
Sonidos y tiempos realistas. (Perteneciente a la PEC3)
Adaptación de Panel LCD para indicar el paso apropiado de los peatones. El Panel LCD muestra dos mensajes, “PEATÓN ESPERE” y “PEATÓN PASE”. Estos mensajes han sido programados para que el Semáforo inclusivo, lo sea también para aquellos alumnos que no tienen discapacidades visuales y puedan aprender a cruzar semáforos de tráfico reales de este tipo con normalidad y seguridad.
Botón inclusivo para que el tiempo de paso de peatones tenga una duración más extensa que la de un semáforo normal para facilitar el paso de los alumnos con discapacidades visuales. Este botón, aunque en un semáforo de tráfico habitual no exista, ayudará a estos alumnos en sus primeras tomas de contacto con el tráfico para que su adaptación sea progresiva. Se debe pulsar a la vez que se pulsa el botón para pasar, de esta forma, el Semáforo inclusivo funcionará a tiempo real, para que los alumnos sin discapacidad visual puedan aprender a cruzar la calle sin tener que pensar en si se pulsó anteriormente el botón inclusivo.
El funcionamiento por lo tanto sería:
El led rojo se mantiene encendido y en la pantalla se lee “PEATON ESPERE”.
El interruptor 1 es pulsado pero el interruptor 2 no.
Una vez transcurrido el tiempo real, se apaga el led rojo y se enciende el verde. La pantalla muestra “PEATON PASE”.
A continuación, la luz verde parpadea.
El semáforo vuelve a su estado original, luz roja y pantalla con “PEATON ESPERE”.
Si el interruptor 2 se pulsa a la vez que el interruptor 1 el tiempo para pasar para el peatón aumentará 10 segundos más.
El vídeo se divide en tres partes, una primera en la que se quiere explicar de un primer vistazo qué es el Semáforo inclusivo. Una segunda en el que se muestra el Arduino y el funcionamiento y por último, una tercera en la que se responde a quién está dedicado este proyecto.
El idioma del vídeo es en inglés según los requerimientos de la práctica. El enlace a la plataforma de YouTube es el siguiente:
¿Eres parte de la comunidad? Accede para ver más publicaciones.
Este es un espacio de trabajo personal de un/a estudiante de la Universitat Oberta de Catalunya. Cualquier contenido publicado en este espacio es responsabilidad de su autor/a.
Debatecontribution 0en PR4 – Sensor de proximidad
No hay comentarios.
Lo siento, debes estar conectado para publicar un comentario.