Shh explora la interacción con el entorno, permitiendo que una criatura aparentemente dormida despierte cuando detecta ruidos fuertes. La idea es que este objeto, que normalmente está inactivo, cobre vida en respuesta a estímulos sonoros. El objetivo es que la matriz LED reaccione al ruido por un parametro establecido, permitiendo que la criatura exprese su estado a través de su ojo. La idea es que, al captar un cierto umbral de ruido, el ojo de la criatura se ilumine de manera que refleje su estado de ánimo. Dependiendo de la intensidad del sonido, la criatura podrá manifestar emociones como enojo o tristeza, utilizando el cambio en la iluminación y patrones visuales de la matriz LED para comunicar estas sensaciones.
Imágenes del proceso
Shh es una criatura que no quiere ser molestada y es sensible al ruido
El primer paso es ubicar un espacio tranquilo, como una sala o una habitación, asegurándote de que haya el menor ruido ambiental posible. La criatura “Shh” es sensible al sonido, por lo que un entorno silencioso te permitirá interactuar mejor con ella.
Para utilizar el objeto, primero debes colgar a “Shh” en la pared, en la parte posterior del objeto, encontrarás un orificio que está diseñado para este propósito. El objeto utilizado para colgarlo debe tener un radio no mayor a 1 centímetro. Asegúrate de que esté bien sujeto para evitar caídas.
Una vez que hayas colgado a “Shh”, revisa que esté correctamente conectado a una fuente de energía. Para comprobar que el dispositivo está encendido, observa si comienza a mostrar señales en su matriz LED. Si ves actividad en la matriz, sabrás que está listo para interactuar contigo.
Para despertar a “Shh”, simplemente emite algún sonido en el espacio o háblale directamente. La criatura es muy sensible al sonido, por lo que cualquier ruido captado podria activar una respuesta.
El estado de ánimo de “Shh” dependerá del nivel de ruido en su entorno. Si le hablas suavemente o emites sonidos tranquilos, su estado será neutral o triste. Sin embargo, si el ruido es muy fuerte, como cuando hay muchas personas hablando o si gritas, la criatura mostrará un estado de ánimo enojado. Su matriz LED reflejará estos cambios de humor, lo que hace que la interacción sea dinámica.
Si deseas que “Shh” vuelva a dormir, asegúrate de que no haya ruido en su entorno. Una vez que el sonido desaparezca, la criatura entrará en su estado calmado mostrando su ojo cerrado en la matriz LED.
Que la criatura no despierte Que la criatura no cambie de estado
#include "Arduino_LED_Matrix.h" //Include the LED_Matrix library
#include "frames.h" //este archivo contiene los 3 frames
ArduinoLEDMatrix matrix;
const int pinSensor = 8; // aqui esta conectado el sensor de sonido
const int intervaloTiempo = 800; // con esto establecemos un intervalo de 1 segundo para medir el nivel de ruidom, cada un segundo toma una muestra
unsigned long millisCurrent; //estas variables las deje igual que en el video https://www.youtube.com/watch?v=PYkzJQhFNlA
unsigned long millisLast = 0; // unsigned long: numeros positivos y grandes, esto porque el valor que devuelve millis() puede volverse muy grande
unsigned long millisElapsed = 0;
int sampleBufferValue = 0;
const int umbralMedio = 5;
const int umbralAlto = 5000;
int frecuenciaActual = 1;
void setup() {
Serial.begin(9600);
matrix.begin();
}
void loop() {
millisCurrent = millis();
millisElapsed = millisCurrent - millisLast;
if (digitalRead(pinSensor) == LOW) {
sampleBufferValue++;
}
if (millisElapsed > intervaloTiempo) { //que solo se realice si ha pasado el tiempo suficiente (1 seg)
if(sampleBufferValue < umbralMedio) { //si el valor de sampleBufferValue es menor que umbralMedio, esto significa que no hubo mucho ruido, por lo tanto estado: calmado
matrix.loadFrame(calmado);
Serial.print(sampleBufferValue);
Serial.println(" CERRADO"); //antes de probar la matriz led, probé con esto en el monitor para saber si los parametros estaban funcionando
}
else if(sampleBufferValue >= umbralMedio && sampleBufferValue <= umbralAlto) { //si el valor de sampleBufferValue es mayor o igual que umbralMedio pero menor o igual que umbralAlto, estado: triste
matrix.loadFrame(triste);
Serial.print(sampleBufferValue);
Serial.println(" TRISTE");
} else if(sampleBufferValue > umbralAlto) { //si el valor de sampleBufferValue es mayor que umbralAlto, esto significa que hubo mucho ruido, por lo tanto estado: enojado
matrix.loadFrame(enojado);
Serial.print(sampleBufferValue);
Serial.println(" ENOJADO");
}
sampleBufferValue = 0;
millisLast = millisCurrent;
}
}
//Codigo para matriz led ojo calmado
const uint32_t calmado[] = {
0x1f816,
0x81681083,
0xfc70ee07,
66
};
//Codigo para matriz led ojo triste
const uint32_t triste [] = {
0x0,
0x7fe8010,
0x0,
66
};
//Codigo para matriz led ojo enojado
const uint32_t enojado [] = {
0x2001f816,
0x81689097,
0xfe000000,
66
};