Piano con arduino Design thinking Fase 1: empatía Imagina que eres un artista especializado en diseño de interacción tangible de reputación internacional y un centro de producción de artes visuales te invita a realizar una residencia artística para que desarrolles un proyecto libre con Arduino y…
Piano con arduino Design thinking Fase 1: empatía Imagina que eres un artista especializado en diseño de…
Piano con arduino
Design thinking
Fase 1: empatía
Imagina que eres un artista especializado en diseño de interacción tangible de reputación internacional y un centro de producción de artes visuales te invita a realizar una residencia artística para que desarrolles un proyecto libre con Arduino y el software que quieras. Plantea un proyecto adecuado para este contexto en el que predomine resolver un problema, ya sea personal, social, ambiental, económico, empresarial…
Fase 2: definir
En mi caso voy a usar mi prototipo de la PEC2 al que voy a orientar en la siguiente manera: un teclado para niños con el que puedan asociar sonidos con colores y notas musicales.
El proyecto se centra en niños que muestren cierto interés en la música. Con este piano diseñado con Arduino, les será más fácil aprender los sonidos diferentes notas musicales y asociarlos con colores para recordarlas mejor. Al prototipo de la anterior PEC habría que añadirle más complejidad y profundidad.
Fase 3: idear:
Mi lluvia de ideas fue la siguiente:
– Integrar el prototipo con processing y que se muestre una partitura donde se dibujan las notas tocadas con su color correspondiente.
– Diseñar una tapa como si fuera un teclado para ocultar la placa y que sea visualmente más atractivo para los niños. Tener en cuenta la orientación de los botones, puede que tenga que invertir los valores.
A lo que hay que añadir las ideas que tuve en la PEC2:
– Posible integración con processing para reproducir un color o un texto asociado.
– Que se guarden las notas y que con otro botón se vuelvan a reproducir como si fuera una canción grabada.
– Añadir un botón para el modo “Simón dice”.
Y las ideas que se me fueron ocurriendo durante la realización de la PEC:
– Añadir el tiempo que el usuario tiene pulsado el botón.
– Borrar la canción una vez reproducida.
– Editar los colores de las notas para que sean más diferenciados.
– Pintar cada botón físico con el color del LED cuando se pulsa.
Fase 4: prototipar
En este segundo prototipo voy a añadir el código para el botón de reproducir las notas tocadas y empezaré la integración con processing. De momento descarto la idea del «Simón dice».
En la primera versión del prototipo conseguí guardar las notas del usuario, pero tuve que rellenar el array cancion[] con NULL para evitar notas falsas y de paso lo usé para hacer break del for loop si hubiera menos de las 10 notas máximas que guarda.
En la segunda y última versión, conseguí un timer correcto para que los tonos no se solaparan y sonaran más armónicos y añadí el borrado de la canción después de reproducirla.
En el siguiente prototipo introduciré la conexión con processing y mejoraré el diseño visual.
Fase 5: probar
Empecé haciendo las ediciones en el código del proyecto de tinkercad. Implementé varias variables nuevas para este botón.
Una vez estuve contenta con los resultados de la primera versión y comprobé que se guardaba correctamente, importé el código a la placa para verificar el resultado real. Me di cuenta que la duración de las notas hacía que a veces se solaparan entre sí.
En la segunda versión del prototipo conseguí arreglarlo, añadí el borrado de la canción y edité los colores. Exporté el código de tinkercad a IDE y a mi placa Arduino para pruebas.
Para la siguiente iteración en la próxima PEC, editaré el exterior de la placa y moveré el buzzer y el LED de sitio con cables puente y diseñaré la parte de processing.
Introducción En esta PEC lo primero que se ha realizado han sido diversos proyectos del libro de proyectos básicos de Arduino. Mas tarde, siguiendo la descripción de esta entrega, se nos pide realizar un Proyecto Arduino basándonos en el design thinking. Se ha creado un controlador de temperatura…
Introducción En esta PEC lo primero que se ha realizado han sido diversos proyectos del libro de proyectos básicos…
Introducción
En esta PEC lo primero que se ha realizado han sido diversos proyectos del libro de proyectos básicos de Arduino. Mas tarde, siguiendo la descripción de esta entrega, se nos pide realizar un Proyecto Arduino basándonos en el design thinking.
Se ha creado un controlador de temperatura enfocado para persona con algunas enfermedades degenerativas que necesitan vigilar la temperatura de las habitaciones o lugares a los que visitan, este problema no es muy conocido por las demás personas que no lo padecen o conoces a alguien con ese padecimiento. Algunas enfermedades degenerativas como la Esclerosis Múltiple tienen como consecuencia que alguna temperatura o los cambios bruscos de ella pueden empeorar los síntomas de la enfermedad como la pérdida del equilibrio, la fatiga, dificultades en la visión, la capacidad de concentración o la pérdida de reflejos.
Prototipo
Lo primero ha sido crear el circuito en el simulador Tinkercad, cuando estaba completo se ha pasado a la construcción en la protoboard. El prototipo funciona cuando está conectado a la corriente, donde capta la temperatura de la habitación. Dependiendo de los grados se producirán diferentes efectos:
Si la habitación donde se encuentra el proyecto está a menos de 16 °C, todos los LEDS estarán apagadas y pitará para informarnos que la habitación está muy fría.
Si nos encontramos 16 °C y 19 °C se encenderá el LED azul, informando que la habitación se encuentra fría.
Con la temperatura de 19 °C a 24 °C se iluminará la siguiente LED, verde, indicado que la temperatura es aceptable.
Si nota unos grados de 24 °C a 28 °C, el LED amarillo se encenderá para informar que aún es tolerable.
A partir de 28 °C la luz roja y pitará, para informarnos que la habitación está muy caliente.
Testeo
Se ha hecho un testeo y un video explicativo bajando los grados para demostrar que estaba todo correcto.
JUSTIFICACIÓN El presente documento se corresponde con la segunda Prueba de Evaluación Continua (PEC02) de la asignatura de Interacción Tangible del Grado…
JUSTIFICACIÓN El presente documento se corresponde con la segunda Prueba de Evaluación Continua (PEC02) de la asignatura de Interacción Tangible del Grado en Técnicas de Interacción Digital y Multimedia de la UOC. En esta prueba nos proponen crear un mini proyecto con Arduino en el que la acción…
JUSTIFICACIÓN El presente documento se corresponde con la segunda Prueba de Evaluación Continua (PEC02) de la asignatura de Interacción…
JUSTIFICACIÓN
El presente documento se corresponde con la segunda Prueba de Evaluación Continua (PEC02) de la asignatura de Interacción Tangible del Grado en Técnicas de Interacción Digital y Multimedia de la UOC.
En esta prueba nos proponen crear un mini proyecto con Arduino en el que la acción de usuario actúe sobre, al menos, dos controles como iluminación, audio y/o imagen. Debemos trabajar el desarrollo del proyecto a través de las fases del design thinking (empatizar, definir, idear, prototipar, testear).
Se publica en Folio un extracto de la memoria, con la que podéis reproducir fácilmente el prototipo, junto con el video del funcionamiento.
HISTORIA
El proyecto es un guiño al juego de SIMON SAY (Simón dice), ya que el funcionamiento de memorizar los colores o tonos es el mismo, aunque un poco más sencillo. La diferencia es que se trata de una única melodía con un número de notas predefinido. Cuando se logra reproducir correctamente podemos abrir la cerradura, por lo que he llamado al prototipo SIMON OPEN.
La cerradura bloquea una caja que contiene a Van Gogh pintando su autorretrato. El juego se trata de liberarlo reproduciendo la melodía aleatoria. ¡Si no eres capaz de memorizar un sencillo código sonoro-luminoso, no podrás salvarlo! ?.
DEFINICIÓN
El proyecto consiste en 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.
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), tenemos la posibilidad de abrir la cerradura de una caja tocando un sensor capacitivo.
PLANTEAMIENTO
Para resolver el problema planteado necesitaré generar números aleatorios (del 0 al 3) y almacenar la secuencia en un array de n posiciones. Comparando la secuencia pulsada por el usuario en los 4 pulsadores disponibles con la generada aleatoriamente podremos averiguar si es correcta y activar el sensor capacitivo para poder abrir la cerradura.
En el momento en que presionamos un botón equivocado, que difiere de la melodía generada, volvemos a empezar y se genera una nueva aleatoriamente.
Mapa conceptual
Enlace al video explicativo del funcionamiento
En el siguiente enlace está disponible una pequeña explicación del funcionamiento del prototipo, en el que se testea tanto el acierto como el fallo en la reproducción de la secuencia aleatoria:
PROTOTIPO
Para diseñar el prototipo he instalado la placa de interconexión y el Arduino sobre una antigua caja de diskettes, colocando la palanca del servomotor actuando como cerradura. Los componentes utilizados son los siguientes:
1x Arduino UNO
1x Piezoeléctrico
5x Resistencias 220 Ohms
2x Resistencias 10 kOhms
1x Resistencia 4,7 kOhms
4x Pulsadores
4x LED de color verde, amarillo, rojo y azul
1x Condensador de 0.1nF
1x Servomotor
Esquema y conexiones
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 8 servirá para enviar los datos al piezo.
El pin 9 lo utilizo en modo PWM para modificar el ángulo del brazo del servo.
El esquema del conexionado, implementado utilizando Fritzing:
EL CÓDIGO
//Importamos las librerías para el servo y el sensor capacitivo y creamos las instancias
#include <Servo.h>
#include <CapacitiveSensor.h>
CapacitiveSensor capSensor = CapacitiveSensor (13,12); //Defino los pines para activar el sensor
Servo myServo;
const int numNote = 6; //Número de notas de la secuencia, que proporciona la dificultad al juego
int notes[] = {1915,1519,1275,956}; //array que guarda las 4 frecuencias
int sequence[numNote]; //array que guarda la secuencia inicial (random)
int userSequence[numNote]; //array que guarda la secuencia generada por el usuario
int position = 0; //posición en la que guardar la nota
boolean locked = true; //Al inicio la puerta está bloqueada
int sensorValue; //variable que almacena el valor del sensor capacitivo
void setup() {
Serial.begin(9600); //iniciamos la comunicación en serie para poder utilizar el monitor serie
myServo.attach(9); //Salida al servo
pinMode(2,OUTPUT); //Salida a led verde
pinMode(3,OUTPUT); //Salida a led amarillo
pinMode(4,OUTPUT); //Salida a led rojo
pinMode(5,OUTPUT); //Salida a led azul
//inicializamos los arrays
for (int i=0;i<numNote;i++){
userSequence[i] = 0;
sequence[i] = 0;
}
myServo.write(90); //Colocamos el brazo del servo a 90 grados (bloqueo)
secuenciaInicio(); //Función que reproduce la secuencia de inicio del juego
}
void loop() {
//Leemos el sensor de contacto
sensorValue = capSensor.capacitiveSensor(30);
// Leemos el valor analógico y lo mostramos por el monitor del puerto serie
int keyVal = analogRead(A0);
Serial.println(keyVal);
Serial.print(sensorValue);
Serial.print(» La secuencia es: «);
for (int i=0;i<position;i++) Serial.print(userSequence[i]);
//Dependiendo del valor que llegue tocamos una nota u otra, y encendemos el led correspondiente
if (keyVal == 1023){
tone(8, notes[3],500);
digitalWrite(5, HIGH);
delay(700);
grabarTono(3);
}
else if (keyVal >= 900 && keyVal <= 1022){
tone(8,notes[2],500);
digitalWrite(4, HIGH);
delay(700);
grabarTono(2);
}
else if (keyVal >= 650 && keyVal <= 710){
tone(8,notes[1],500);
digitalWrite(3, HIGH);
delay(700);
grabarTono(1);
}
else if (keyVal >= 500 && keyVal <= 550){
tone(8,notes[0],500);
digitalWrite(2, HIGH);
delay(700);
grabarTono(0);
}
else { //Si no estamos pulsando mantenemos el silencio y los led apagados
noTone(8);
for (int i=2;i<6;i++) digitalWrite(i, LOW);
}
//Si tocamos la malla metálica y la caja no está bloqueada abrimos el brazo del servo y desbloqueamos la cerradura
Sobre el proyecto Antes de ponerme manos a la obra con este proyecto, creé un pequeño esquema con lo que quería hacer y posteriormente las preguntas que quería que salieran. En un principio, iban a haber 3 posibles respuestas, pero como la pantalla lcd sólo permite 16 caracteres…
Sobre el proyecto Antes de ponerme manos a la obra con este proyecto, creé un pequeño esquema con lo…
Sobre el proyecto
Antes de ponerme manos a la obra con este proyecto, creé un pequeño esquema con lo que quería hacer y posteriormente las preguntas que quería que salieran. En un principio, iban a haber 3 posibles respuestas, pero como la pantalla lcd sólo permite 16 caracteres en horizontal y dos líneas en vertical, tuve que acortar las respuestas a dos, y tratar que, las preguntas no superarán los 40 caracteres, ya que es el máximo que permite. Por otro lado, opté por hacer el concurso en inglés, ya que no parece que el sistema acepte bien el sistema UTF-8.
ARDUCINE
Tu Arduino se va a convertir en un juego de preguntas sobre cine.
Para la creación de este interactivo juego de preguntas y respuestas se han usado los siguientes materiales:
2 pulsadores.
1 pantalla lcd.
2 leds (uno rojo y uno verde).
Piezo.
3 resistencias de 220 Ohmios.
1 resistencia de 10 Kilo Ohmios.
1 potenciómetro (de 10 Kilo Ohmios)
Tiempo: 50 minutos
Nivel: **
Basado en los proyectos: Piano electrónico, Bola de cristal.
Se necesitan muchos cables, por eso se tiene que prestar mucha atención a la hora de realizar las conexiones y asegurar que todo está en su sitio.
Se tiene que añadir la librería LiquidCrystal para poder visualizar los caracteres. Una vez conectado, es importante que se gire la rueda del potenciómetro para que se muestre la pantalla. En mi caso, por falta de espacio se han tenido que usar dos placas, una para los componentes de la pantalla, el potenciómetro y los pulsadores (quería que estuvieran accesibles para poder jugar) y otra placa para añadir el piezo (“altavoz”) y los leds rojo (respuesta incorrecta) y verde (respuesta correcta).
Semáforo inclusivo El proyecto que presento consiste en el desarrollo de un sistema de ayuda a la infancia de niños con discapacidad visual o ceguera que se eduquen en el mismo aula. El objetivo principal de este proyecto es crear un semáforo inclusivo que brinde información clara y…
Semáforo inclusivo El proyecto que presento consiste en el desarrollo de un sistema de ayuda a la infancia de…
Semáforo inclusivo
El proyecto que presento consiste en el desarrollo de un sistema de ayuda a la infancia de niños con discapacidad visual o ceguera que se eduquen en el mismo aula.
El objetivo principal de este proyecto es crear un semáforo inclusivo que brinde información clara y accesible a los niños con discapacidad visual, promoviendo así un ambiente de aprendizaje más inclusivo y equitativo para todos los estudiantes. La intención es que pueda ser utilizado en las aulas siendo adaptado para evitar accidentes fuera de ellas e iniciar un proceso de adaptación hacia el mundo real. Como símil se podría comparar a los simuladores que hay en las autoescuelas que on usados por los alumnos antes de que realicen sus primeras prácticas con un vehículo.
Este proyecto se enfoca en la implementación de tecnología accesible para mejorar la educación inclusiva y las oportunidades de aprendizaje para los estudiantes con discapacidad visual o ceguera.
Para el proyecto se ha usado Arduino Uno como la plataforma de programación y se emplearán algunos de sus componentes electrónicos, siguiendo las pautas del enunciado, que incluirán: tres luces LED de diferentes colores (rojo, amarillo y verde), un zumbador (altavoz) y resistencias, para crear el semáforo.
El programa ha sido diseñado para simular el comportamiento de un semáforo utilizando tres LEDs de diferentes colores y un pulsador como entrada para cambiar el estado del semáforo.
Cuando el pulsador está apagado, el LED rojo está encendido y los otros dos LEDs están apagados, lo que representa el estado de espera para el peatón. Cuando el pulsador está encendido, el LED amarillo se enciende brevemente, simulando el estado ámbar de los semáforos y, luego el LED verde se enciende y el LED amarillo se apaga, lo que representa el estado de paso para los peatones.
Además, se ha añadido la funcionalidad de reproducir una secuencia de notas musicales cuando se enciende el LED verde para simular que los peatones pueden pasar y, otra con pausas para indicar el fin del paso.
Algunas imágenes del prototipo con Arduino:
Estado inicial (Semáforo en rojo)
Estado 2 (Semáforo en ámbar)
Estado 3 (Semáforo en verde)
Estado 4 (Semáforo en ámbar con indicación de cierre para el peatón)
Introducción En esta práctica se plantea el diseño y construcción de un prototipo de alarma que detecte movimiento mediante un sensor y emita una alerta lumínica y sonora. Este proyecto puede usarse tanto en sistemas de seguridad para el hogar como en entornos empresariales. Proyecto Para la realización de este proyecto se ha utilizado el kit de Arduino, un LED, un buzzer piezoeléctrico, un fototransistor y los cables de conexión necesarios para que la alarma se active si el sensor…
Introducción En esta práctica se plantea el diseño y construcción de un prototipo de alarma que detecte movimiento mediante un sensor y emita una alerta lumínica y sonora. Este proyecto puede usarse tanto en sistemas de seguridad para el hogar como en entornos empresariales. Proyecto Para la realización…
Introducción En esta práctica se plantea el diseño y construcción de un prototipo de alarma que detecte movimiento mediante…
Introducción
En esta práctica se plantea el diseño y construcción de un prototipo de alarma que detecte movimiento mediante un sensor y emita una alerta lumínica y sonora.
Este proyecto puede usarse tanto en sistemas de seguridad para el hogar como en entornos empresariales.
Proyecto
Para la realización de este proyecto se ha utilizado el kit de Arduino, un LED, un buzzer piezoeléctrico, un fototransistor y los cables de conexión necesarios para que la alarma se active si el sensor detecta movimiento.
Para llevarlo a cabo se ha utilizado el kit de Arduino y la plataforma de simulación en línea Tinkercad.
Hola, Os presento mi proyecto lo he nombrado como semáforo de proximidad. El link del resultado en vídeo: https://youtu.be/e8zge0MouM8 El resultado en resumen consta de un sensor que detecta la distancia de un objeto y dependiendo de esta distancia ilumina de un color u otro los leds…
Hola, Os presento mi proyecto lo he nombrado como semáforo de proximidad. El link del resultado en vídeo:…
Hola,
Os presento mi proyecto lo he nombrado como semáforo de proximidad. El link del resultado en vídeo:
El resultado en resumen consta de un sensor que detecta la distancia de un objeto y dependiendo de esta distancia ilumina de un color u otro los leds que también incluye el circuito.
Para hacer el prototipo se ha necesitado diferentes piezas de arduino y para programar estas piezas se ha utilizado el software de arduino. Para complementar y cumplir con los requisitos se ha utilizado processing para realizar un pequeño programa que nos diera información visual.
Componentes:
Arduino Uno R3: microcontrolador que nos sirve para gestionar toda la información respecto al resto de los componentes.
3 Leds: necesitaremos para dar iluminación a la lógica que aplicaremos en el proyecto. Uno de cada color, verde, rojo y amarillo.
3 resistencias de 220 ohmios: se utilizarán para controlar el flujo de corriente que llega a los leds.
Sensor ultrasónico HC-SR04: aprovechando que tenía otro kit de arduino por casa he utilizado este sensor que mide la distancia entre un objeto y el mismo sensor. Funciona emitiendo una serie de pulsos ultrasónicos y luego mide el tiempo que tarda en recibir los ecos de esos pulsos para finalmente hacer el cálculo de la distancia.
Cables: se utilizan para realizar las conexiones del circuito.
Corren los años 50 y un profesor del MIT llamado Marvin Minsky crea uno de los artilugios mas peculiares de la historia de la electrónica: The useless machine. La maquina pasó desapercibida hasta años mas tarde, tras el auge de internet, cuando un video de una maquina…
Corren los años 50 y un profesor del MIT llamado Marvin Minsky crea uno de los artilugios mas…
Corren los años 50 y un profesor del MIT llamado Marvin Minsky crea uno de los artilugios mas peculiares de la historia de la electrónica: The useless machine.
La maquina pasó desapercibida hasta años mas tarde, tras el auge de internet, cuando un video de una maquina de este tipo se convirtió en uno de los primeros memes de la red. Bien sea por el concepto, bien sea por lo cómico de ver una máquina que se auto apaga, el video se extendió y se hizo su hueco en la historia de internet.
Cumplidos los 70 años del primer prototipo de Minsky, y a modo de homenaje, se plantea el siguiente proyecto educativo: Revisar, reinterpretar y reinventar la icónica máquina de Marvin. Crear la maquina inútil, todavía mas inútil.
Bajo esta premisa comenzaba hace varias semanas mi pequeño proyecto educativo para la UOC. Un proyecto muy interesante, entretenido y con el que me he trasladado a mis años mas tiernos cuando daba clase de tecnología en el colegio. Os dejo por aquí unas fotos, el video del prototipo, y la memoria, por si alguien siente curiosidad por el proceso creativo detrás de esta máquina tan inútil, pero tan genial.
En este miniproyecto se ha realizado una simulación de un sensor de aparcamiento trasero de un vehículo, el cual consta de un sensor de ultrasonidos, un zumbador y un diodo de emisor de luz (led). El funcionamiento es el siguiente: Primero el sensor de ultrasonidos detecta el objeto y en ese momento el zumbador empieza a sonar y la led a encenderse de forma intermitente. Cuanto menor sea la distancia entre el sensor de ultrasonidos y el objeto, más rápido…
En este miniproyecto se ha realizado una simulación de un sensor de aparcamiento trasero de un vehículo, el cual consta de un sensor de ultrasonidos, un zumbador y un diodo de emisor de luz (led). El funcionamiento es el siguiente: Primero el sensor de ultrasonidos detecta el objeto…
En este miniproyecto se ha realizado una simulación de un sensor de aparcamiento trasero de un vehículo, el cual…
En este miniproyecto se ha realizado una simulación de un sensor de aparcamiento trasero de un vehículo, el cual consta de un sensor de ultrasonidos, un zumbador y un diodo de emisor de luz (led).
El funcionamiento es el siguiente:
Primero el sensor de ultrasonidos detecta el objeto y en ese momento el zumbador empieza a sonar y la led a encenderse de forma intermitente. Cuanto menor sea la distancia entre el sensor de ultrasonidos y el objeto, más rápido parpadeará la luz del led y más rápido sonará el zumbador.
Logrando así detectar si el objeto está cerca o lejos de un obstáculo en momentos en los que no hay campo de visión como en la parte trasera de un vehículo, simulando así un sensor de aparcamiento o marcha atrás de un coche.
¿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.
Buenas Andoni,
Acabo de leer tu proyecto y me ha parecido divertidísimo. No tiene desperdicio.
Un saludo.
Gracias Adrià,
Me alegro que te guste :)