Master in Advanced Architecture, IAAC, Introduction to Programming and Physical Computing, Arduino, M5Stack, Noise Sensor, LED, Alexander Dommershausen, Aqeel Sourjah, Elena Petruzzi

Introduction

S_M_I_L_E is an interactive sound and light device. It invites people to take a picture by shouting into a tube while seeing their voices travel in a stream of light. Once the tube turns green the camera takes a picture.

Master in Advanced Architecture, IAAC, Introduction to Programming and Physical Computing, Arduino, M5Stack, Noise Sensor, LED, Alexander Dommershausen, Aqeel Sourjah, Elena Petruzzi

Diagram of Complete Workflow

Process

The system works by sending data from a noise sensor to different M5Stack receivers. These receivers run the data through their designated codes and translate them into a physical response. One M5Stack is responding with a light value that goes from red to green. Once the user reaches a high enough value, by saying S_M_I_L_E, the complete LED strip lights up. This high value is communicated to the second M5Stack where it triggers a servo motor that uses a mechanical adapter, and it pushes a button that is connected with a camera device that takes the picture.

“To get a picture, shout aloud, the tube lights green, and S_M_I_L_E!”

Master in Advanced Architecture, IAAC, Introduction to Programming and Physical Computing, Arduino, M5Stack, Noise Sensor, LED, Alexander Dommershausen, Aqeel Sourjah, Elena Petruzzi

Technical Components and Remote WIFI Connection

Arduino Code

Arduino Noise Sensor Send

void loop() {  int sensorValue = analogRead(signalPin);

Serial.println(sensorValue);

Arduino Code LEDStrip Receive

void loop() {
  int red = map(sensorValue, 0, 750, 255, 0);
  int green = map(sensorValue, 0, 750, 0, 255);
  int ledNum = map(sensorValue, 0, 750, 1, 21);
  
  if (sensorValue<50) {
    for(int i=0;i<21;i++){
      pixels.setPixelColor(i, pixels.Color(0, 0, 0));//Black   
    }
  }else{
    for(int i=0;i<21;i++){
      pixels.setPixelColor(i, pixels.Color(0, 0, 0));//Black  
    }
    for(int i=0;i<ledNum;i++){
    pixels.setPixelColor(i, pixels.Color(red, green, 0));//Color
    }
  }
  pixels.show();

Arduino Code Servo Motor Receive

void loop() {

 if(sensorValue!=lastSensorValue){
    plotValue(sensorValue);
    Serial.print("Sensor Value Received: ");
    Serial.println(sensorValue);


if (sensorValue<750){
     Serial.println("L_O_U_D_E_R");
      myServo.write(0);
      //delay(1000);

  }else if(sensorValue>=750){
     Serial.println("S_M_I_L_E");
      myServo.write(140);
      delay(1000);
      myServo.write(0);
      delay(5000);   
   }

 

Master in Advanced Architecture, IAAC, Introduction to Programming and Physical Computing, Arduino, M5Stack, Noise Sensor, LED, Alexander Dommershausen, Aqeel Sourjah, Elena Petruzzi

Physical Components and Remote WIFI Connection

 

S_M_I_L_E is a project of IAAC, Institute for Advanced Architecture of Catalonia developed in the Master of Advanced Architecture 2020/21 by Students: Alexander Dommershausen, Aqeel Sourjah, Elena Petruzzi and Faculty: Angel Muñoz, Cristian Rizzuti