Tarea 3 I&P2021 - Bastián González, Josefa Zamora, Franco Castañeda
Título | Tarea 3 I&P2021 - Bastián González, Josefa Zamora, Franco Castañeda, Michell Diaz |
---|---|
Palabras Clave | tarea3i&p |
Período | 2021-2021 |
Asignatura | Interacción y Performatividad |
Del Curso | Interacción y Performatividad 2021 |
Carreras | Diseño, Diseño Gráfico"Diseño Gráfico" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property., Diseño Industrial"Diseño Industrial" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property. |
Alumno(s) | Josefa Zamora, Bastián González, Franco Castañeda Becerra, Michell Diaz |
Profesor | Renzo Varela |
Primera instancia de Desarrollo: Lluvia de ideas
- Crear una prenda (Casco, Mascarilla, Banda para la cabeza, entre otras ideas).
- Que capte y reproduzca música.
- LED que interactúe con la música.
Fundamento
Se busca crear un accesorio tipo bandana de lycra que interactúe con sonidos ambientales de modo que se exprese luminosamente, para uso deportivo y recreativo, pensado para utilizarse en espacios oscuros o de poca luz. De esta manera se consideran dos modalidades de aplicación, la modalidad de uso recreativo y juego, y la de uso para Deportes.
La Modalidad para Deportes: Consiste en advertir a los usuarios, conductores u otros deportistas para evitar accidentes. Según los decibeles del sonido captado el color de los led de la bandana cambiarán. El objeto encendido señalará una luz azul para alertar a los objetos que no produzcan ningún sonido perceptible por el sensor; la luz verde indica un sonido leve y/o que se escucha a lo lejos; de igual modo, la luz amarilla indicará un sonido de intensidad media; y el rojo señalará un ruido elevado.
La Modalidad Recreativa: Consiste en sincronizar el accesorio con la música ambiental de modo que cambie de color según el ritmo de la música. También este modo te permite seleccionar el color que deseas siendo un accesorio totalmente personalizable.
Materiales
- Tela Lycra.
- Placa principal FLORA
- Luces LED RGB Flora NeoPixels V2.
- Portapilas para 3 pilas AAA con interruptor.
- Hilo conductor inoxidable de 18 metros.
- Reguladores.
- Sensor de sonido con micrófono y salida de audio incorporado.
- Cables dupont macho hembra y macho macho.
- Resistencias.
Proyecciones
Objeto de Estudio
Vistas con LEDs activados
Costuras y ubicación en la bandana
Los objetos se ubican en la costura trasera de la bandana, ya que es el espacio menos visible y puede quedar holgado para ubicar la Placa Flora con las baterías escondidas allí, se utilizarían 3 capas de de tela, en la del centro se ubicarían los objetos protegiendo la Placa Flora con un bolsillo oculto que lo afirma y lo protege, las leds se reparten a los alrededores de la bandana de extremo a extremo.
Código Arduino
Este código se busca optimizar para el microcontrolador FLORA de AdaFruit y así reemplazar Arduino, así como la tira LED por neopixeles Flora RGB, modificando las librerías a incluir tales como:
#include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_LSM303DLH_Mag.h> #include <Adafruit_NeoPixel.h>
Código en Primera instancia
#define Rpin 11 #define Gpin 10 #define Bpin 9 #define delayLEDS 3 #define sensorPin A0 float sensorValue = 0, filteredSignal = 0, filteredSignalValues[] = {3.4, 3.1, 2.7, 2.4, 2.1, 1.7, 1.3, 0.9, 0.4}; void setup () { Serial.begin (9600); } void loop () { MainFunction(); } void MainFunction() { sensorValue = (float) analogRead(sensorPin) * (5.0 / 1024.0); FilterSignal(sensorValue); Serial.print(sensorValue); Serial.print(" "); Serial.println(filteredSignal); CompareSignalFiltered(filteredSignal); } void FilterSignal(float sensorSignal) { filteredSignal = (0.945 * filteredSignal) + (0.0549 * sensorSignal); } void CompareSignalFiltered(float filteredSignal) { if (filteredSignal > filteredSignalValues[0]) { RGBColor(0, 0, 255); Serial.println("Blue"); } else if (filteredSignal <= filteredSignalValues[0] && filteredSignal > filteredSignalValues[1]) { Serial.println("Azure"); RGBColor(0, 255, 255); } else if (filteredSignal <= filteredSignalValues[1] && filteredSignal > filteredSignalValues[2]) { RGBColor(0, 127, 255); Serial.println("Cyan"); } else if (filteredSignal <= filteredSignalValues[2] && filteredSignal > filteredSignalValues[3]) { RGBColor(0, 255, 127); Serial.println("Aqua marine"); } else if (filteredSignal <= filteredSignalValues[3] && filteredSignal > filteredSignalValues[4]) { RGBColor(0, 255, 0); Serial.println("Green"); } else if (filteredSignal <= filteredSignalValues[4] && filteredSignal > filteredSignalValues[5]) { RGBColor(255, 255, 0); Serial.println("Yellow"); } else if (filteredSignal <= filteredSignalValues[5] && filteredSignal > filteredSignalValues[6]) { RGBColor(255, 0, 255); Serial.println("Magenta"); } else if (filteredSignal <= filteredSignalValues[6] && filteredSignal > filteredSignalValues[7]) { RGBColor(255, 0, 127); Serial.println("Rose"); } else if (filteredSignal <= filteredSignalValues[7] && filteredSignal > filteredSignalValues[8]) { RGBColor(255, 127, 0); Serial.println("Orange"); } else if (filteredSignal <= filteredSignalValues[8]) { RGBColor(255, 0, 0); Serial.println("Red"); } else { RGBColor(0, 0, 255); Serial.println("Default: Blue"); } } void RGBColor(int Rcolor, int Gcolor, int Bcolor) { analogWrite(Rpin, Rcolor); analogWrite(Gpin, Gcolor); analogWrite(Bpin, Bcolor); delay(delayLEDS); }
Circuito en Tinkercad
Para el circuito de Tinkercad se crea una instancia con un sensor de ultrasonido y un aro Neopixel debido a que no posee sensores de Sonido, ni tampoco del Microcontrolador de Adafruit. Con esta simulación se busca comprobar la capacidad de variación e interacción del aro LED con las variables que recibe desde el sensor. Pudiendo variar en color y en cantidad de LEDs iluminados
El circuito de esta simulación modificada es el siguiente:
//Simulación con sensor de Ultrasonido y anillo Neopixel int velocidadAnimac = 0; int distanciaUmbral = 0; int cm = 0; long readUltrasonicDistance(int triggerPin, int echoPin) { pinMode(triggerPin, OUTPUT); digitalWrite(triggerPin, LOW); delayMicroseconds(2); //Para poner el trigger pin en HIGH por 10 microsegundos digitalWrite(triggerPin, HIGH); delayMicroseconds(10); digitalWrite(triggerPin, LOW); pinMode(echoPin, INPUT); //Lee el echo pin, y retorna el ultrasonido en microsegundos return pulseIn(echoPin, HIGH); } // Anillo NeoPixel #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif //pin #define PIN 13 //pixel number #define PIX 16 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(PIX, PIN, NEO_GRB + NEO_KHZ800); void setup() { Serial.begin(9600); pinMode(13, OUTPUT); velocidadAnimac = 100; pixels.begin(); pixels.setPixelColor(0, pixels.Color(100,255,6)); pixels.show(); delay(1000); } void loop() { // Definir distancia para que se activen los LEDs máximo 325 distanciaUmbral = 325; // medición del ping en cm cm = 0.01723 * readUltrasonicDistance(7,6); Serial.print(cm); Serial.print("cm, "); if (cm <= distanciaUmbral && cm > 225) { for (int i = 0; i < 7; i++) { pixels.setPixelColor(i, pixels.Color(150,0,225)); pixels.show(); } for (int i = 7; i < 16; i++) { pixels.setPixelColor(i, pixels.Color(0,0,0)); pixels.show(); } delay(1000); } if (cm <= 225 && cm > 175) { for (int i = 7; i < 16; i++) { pixels.setPixelColor(i, pixels.Color(150,0,225)); pixels.show(); } for (int i = 0; i < 7; i++) { pixels.setPixelColor(i, pixels.Color(0,0,0)); pixels.show(); } delay(1000); } if (cm <= 100){ Serial.print("muy cerca"); for (int i = 0; i < PIX; i++) { pixels.setPixelColor(i, pixels.Color(10,200,200)); pixels.show(); } delay(1000); } delay(velocidadAnimac); }
Referencias
- Circuito con sensor de sonido https://www.youtube.com/watch?v=G-zCNkNp4RY&ab_channel=BrainSmash
- Circuito con sensor de movimiento y luces neopixel https://www.youtube.com/watch?v=Cg3uBXMrshI&t=40s&ab_channel=AdafruitIndustries
- Paquete de componentes FLORA a utilizar https://www.adafruit.com/product/1405
- Código del circuito con sensor de sonido https://github.com/BrainSmash/Arduino-Acoustic-Control-for-RGB-LED-Strip