Project showcase
COM 250 Critical Making Project

COM 250 Critical Making Project

Communicating sound using LED Lights.

  • 1,270 views
  • 0 comments
  • 4 respects

Components and supplies

Necessary tools and machines

Lasercutter
Laser cutter (generic)
09507 01
Soldering iron (generic)

About this project

Project Proposal

We have decided, for our final critical making project in COM 250, to create a sound sensing LED light. This light will communicate sound through the pulsation of light from the LEDs. This project will explore the connection between our most primitive form of communication, sound, and light. This project will communicate when sound is made. The light that appears when sound is made acts as a symbol. As we discussed in class, symbols help us conceive and reflect on communication. 

For this project we will use the Arduino Uno technology. We will attach a small sound sensing microphone to an Analog pin on the Arduino. This microphone will detect the level of noise in the surrounding environment. This sensor, after detecting noise, would turn on a LED light. After completing the light sensor, we want to build an enclosure for the Arduino and LEDs. To build this enclosure we want to try to use the 3D printer.

We plan to begin on this project immediately because we are both very inexperienced with using this technology. We will allow ourselves time to explore and learn more about Arduinos. Because of our inexperience with these technologies we will be using and the NCSU Makerspace itself, we have planned to spend many hours working on this project to allow plenty of time for mistakes. 

Before planning this project, we first had to do research on the kinds of projects completed using the different kinds of technology in the NCSU Makerspace. After our research we decided the primary technology we would use is an Arduino. We decided on this because of the unlimited project possibilities this technology can afford. We look forward to working in this setting and expanding our knowledge on the technology we plan to incorporate into our project.

We also had to take into account different factors such as the prices of some of the technologies in the NCSU Makerspace while planning for this project.  Although most of the devices and materials are free of cost to students, we learned that the 3D printing materials cost money. We have considered this factor and have decided that although we wanted to initially make a project free of cost to us that we will still use the 3D printer. This means that we will have to be more accurate in our 3D printing trials to assure that we do not waste our materials on practice runs with mistakes.

Sketch:

Progress Report #1

Initially, the learning curve for our project seemed to be very steep. The technologies we decided to use were unfamiliar to each of us. However, we felt it was necessary to challenge ourselves. The first time we were able to work on our project in the NCSU Makerspace, we discovered that we would have to order the “sound sensor” to complete our planned project. We decided to order the part from Amazon. The part that we ordered online will allow us to control LED lights using sounds at different volumes and frequencies. We came across several obstacles like this where our initial proposal did not match the opportunities we had in the Makerspace but so far we have worked around them. As partners we decided that we would like to complete our initial project proposal. We decided to wait for the correct part to use. In the meantime while we were waiting for our parts to come in, we tinkered around with the temperature sensor to get an idea of how the arduino boards worked. We do not feel that this delay has caused us to get behind on the completion of the project. It allowed us to explore more with the tools we will be using. We have found specific instructions and codes we would need to use to make the sound sensor work. We have decided to test our prototype before purchasing long strands of LED’s so that if we run into any more problems we can find a way to fix that and work around it as well.

Progress Report #2

We have ran into several obstacles with our project so far, but we think that after today’s time in the NCSU Makerspace that we are back on track. We found out that the sound sensor we bought online was specifically for the Arduino Uno but after a lot of tinkering around with it and working with people in the Makerspace we successfully figured out how to hook it up to the Sparkfun Arduino provided by the Makerspace. We plan to start 3D printing the casing for the breadboard sometime next week to continue our idea for our project. To 3D print the casing we will have to buy the filament that is provided by NC State. We will have to set aside time to learn how to properly design and print 3D objects. We decided on a white or clear filament depending on what they have available, so that it does not distract from the lights that come from the LED lights. We also discussed having openings in the case so that the light can shine through and look attractive. We plan to meet later this week in the NCSU Makerspace in order to have additional one-on-one time with someone who is skilled when it comes to working with the Arduino as well. We want to try out different ways to hook up more than one LED light on the breadboard. We also plan on experimenting with different codes that makes the different color LED lights when various levels of sound are detected.

In the attachments section on this page, we have provided further documentation of the codes we are currently experimenting with.

We have also attached a video of our successful connection of the sound sensor to the Sparkfun Arduino in the NCSU Makerspace.

Final Project Posting

We have completed our project, but it wasn't without many technical obstacles. Following our last progress report, we noticed that the sound sensor we ordered was not detecting changes in the volume of sound. It was just detecting sound itself which caused it to turn the LEDs on but not allow them to blink based on the variations of sound being detected. After much research, we discovered that other people have had this same problem with this particular brand of sensor. We consulted with workers in the Makerspace and they recommended Adafruit as a reliable company to order a new sensor from. When the new part came, we were faced with yet another obstacle. The sensor did not come with pins attached; they would have to be soldered on.

We had to learn how to solder. We practiced a couple of times with extra material in the Makerspace before we attempted to solder the pins onto our sensor. Learning to solder was much easier than we expected. It just took a couple tries to get the hang of it.

After the pins were soldered on, it was time to hook the sensor up to the Arduino and attach the LED lights. We were already very familiar with how to do this because it was essentially the same to hook up as the sound sensor we had previously been working with. Next, we had to decide how we wanted the LEDs to communicate the sound it detected. We decided that the louder the volume detected was, the more lights would turn on. We then wrote the code for this. It took a lot of trial and error, but we finally found the right intervals to set for each light to turn on. We established an initial threshold for volume to turn the first light on, and then calculated exponential intervals for the other lights. We decided to use blue LEDs because they were the brightest and most effective with the sound sensor. We decided to only use 8 of these blue LEDs because that is all the Arduino could supply power to. Eight LEDs also seemed to be the best to demonstrate the different levels of volumes the sound sensor was detecting. We tested the code by playing music and observing how the lights were visually portraying the sound.

We wanted our project to also be visually pleasing, so we decided to use the laser cutter in the NCSU Makerspace to create an enclosure for the entire Ardunio. This enclosure was a little difficult to design because we had to account for the cord that connected the Arduino to the computer. We also had to create a hole for the microphone on the sound sensor. We used black acrylic for the sides and most of the top. Then, we used frosted clear acrylic over the LEDs to create a light distribution effect. By making the enclosure for the Arduino board, we feel that it makes this form of communication media more conducive for day-to-day use.

Overall, our experience with making and completing this project was met with many obstacles. Both of us were completely unfamiliar with much of the technology in the Makerspace. With research and many, many failed attempts we overcame each difficulty we were faced with. We learned how to use an Arduino board, a laser cutter, and a solder torch. We also learned how to write and manipulate codes, as well as hook up a sound sensor. In the end, we were able to successfully complete the project and it turned out even better than we imagined!

Our final project explores our material relationships with communication technologies. The prototype we created demonstrates sound in a visual way. The sound sensor reads volume data from the external environment and communicates it using LEDs. Our project demonstrates biomedia because human-made sounds manipulate the lights. We thought that this project was similar to the biomedia articles about plant-based biomedia because sound is being communicated to the arduino board and then a signal is being sent to the LEDs in order to make them blink based off of the amount of sound.

Attached below is the code we used for the final product, as well as the initial code we wrote.

Also attached are videos of a few trial runs with 3 LEDs, 6 LEDs, as well as our final project in action!

Code

Code for 8 LED Sound Detecting LightsArduino
This is our completed and working code we have written for the final project. This code allows for 8 LED's. We have tinkered with the sound thresholds to find the perfect range to dictate when each light can turn on.
const int input = A0;
const int p1 = 7;
const int p2 = 8;
const int p3 = 9;
const int p4 = 10;
const int p5 = 11;
const int p6 = 12;
const int p7 = 13;
const int p8 =6;
int sense2 = 0;
int sense = 0;

void setup() {
pinMode(p1, OUTPUT);
pinMode(p2, OUTPUT);
pinMode(p3, OUTPUT);
pinMode(p4, OUTPUT);
pinMode(p5, OUTPUT);
pinMode(p6, OUTPUT);
pinMode(p7, OUTPUT);
pinMode(p8, OUTPUT); 
}

void loop() {
sense2 = analogRead(input);
sense = map(sense2, 0, 1023, 0, 255);
if (sense < 90) {
digitalWrite(p1, LOW);
digitalWrite(p2, LOW);
digitalWrite(p3, LOW);
digitalWrite(p4, LOW);
digitalWrite(p5, LOW);
digitalWrite(p6, LOW);
digitalWrite(p7, LOW);
digitalWrite(p8, LOW);
} else if ((sense >= 90) && (sense < 93)) {
digitalWrite(p1, HIGH);
digitalWrite(p2, LOW);
digitalWrite(p3, LOW);
digitalWrite(p4, LOW);
digitalWrite(p5, LOW);
digitalWrite(p6, LOW);
digitalWrite(p7, LOW);
digitalWrite(p8, LOW);
} else if ((sense >= 93) && (sense < 97)) {
digitalWrite(p1, HIGH);
digitalWrite(p2, HIGH);
digitalWrite(p3, LOW);
digitalWrite(p4, LOW);
digitalWrite(p5, LOW);
digitalWrite(p6, LOW);
digitalWrite(p7, LOW);
digitalWrite(p8, LOW);
} else if ((sense >= 97) && (sense < 101)) {
digitalWrite(p1, HIGH);
digitalWrite(p2, HIGH);
digitalWrite(p3, HIGH);
digitalWrite(p4, LOW);
digitalWrite(p5, LOW);
digitalWrite(p6, LOW);
digitalWrite(p7, LOW);
digitalWrite(p8, LOW);
} else if ((sense >= 101) && (sense < 106)) {
digitalWrite(p1, HIGH);
digitalWrite(p2, HIGH);
digitalWrite(p3, HIGH);
digitalWrite(p4, HIGH);
digitalWrite(p5, LOW);
digitalWrite(p6, LOW);
digitalWrite(p7, LOW);
digitalWrite(p8, LOW);
} else if ((sense >= 106) && (sense < 110)) {
digitalWrite(p1, HIGH);
digitalWrite(p2, HIGH);
digitalWrite(p3, HIGH);
digitalWrite(p4, HIGH);
digitalWrite(p5, HIGH);
digitalWrite(p6, LOW);
digitalWrite(p7, LOW);
digitalWrite(p8, LOW);
} else if ((sense >= 110) && (sense < 113)) {
digitalWrite(p1, HIGH);
digitalWrite(p2, HIGH);
digitalWrite(p3, HIGH);
digitalWrite(p4, HIGH);
digitalWrite(p5, HIGH);
digitalWrite(p6, HIGH);
digitalWrite(p7, LOW);
digitalWrite(p8, LOW);
} else if ((sense >= 113) && (sense < 116)) {
digitalWrite(p1, HIGH);
digitalWrite(p2, HIGH);
digitalWrite(p3, HIGH);
digitalWrite(p4, HIGH);
digitalWrite(p5, HIGH);
digitalWrite(p6, HIGH);
digitalWrite(p7, HIGH);
digitalWrite(p8, LOW);
} else if ((sense >= 116)) {
digitalWrite(p1, HIGH);
digitalWrite(p2, HIGH);
digitalWrite(p3, HIGH);
digitalWrite(p4, HIGH);
digitalWrite(p5, HIGH);
digitalWrite(p6, HIGH);
digitalWrite(p7, HIGH);
digitalWrite(p8, HIGH);
}
}
Initial Working CodeArduino
Attached is the first working code we have written for the sound sensor. This code turns LED's on based on the volume of sound. Each LED is assigned a volume threshold that will turn and keep on the light as long as that volume is reached.
const int input = A0;
const int p1 = 7;
const int p2 = 8;
const int p3 = 9;
int sense2 = 0;
int sense = 0;

void setup() {
  pinMode(p1, OUTPUT);
  pinMode(p2, OUTPUT);
  pinMode(p3, OUTPUT);
}

void loop() {
  sense2 = analogRead(input);
  sense = map(sense2, 0, 1023, 0, 255);
  if (sense < 83) {
    digitalWrite(p1, LOW);
    digitalWrite(p2, LOW);
    digitalWrite(p3, LOW);
  } else if ((sense >= 83) && (sense < 92)) {
    digitalWrite(p1, HIGH);
    digitalWrite(p2, LOW);
    digitalWrite(p3, LOW);
  } else if ((sense >= 92) && (sense < 105)) {
    digitalWrite(p1, HIGH);
    digitalWrite(p2, HIGH);
    digitalWrite(p3, LOW);
  } else if (sense >= 105) {
    digitalWrite(p1, HIGH);
    digitalWrite(p2, HIGH);
    digitalWrite(p3, HIGH);
  }
}

Schematics

Video of Sound Sensor Connected
This is a video of our initial sound sensor successfully connected to the Sparkfun Arduino. You can see that it is working from the red lights glowing on the sound sensor itself. Also the LED light is flashing.
Video.MOV
Final Project Laser Cut Encasing
This a video of our completed project communicating the sound of music using LEDs.
Final%20Project%20Video.mp4
Trial run with 6 LEDs
As we became more comfortable with the code we added more LEDs to it. This is an example of our trial run with 6 LEDs.
Video_1.MOV
Trial Run With 3 LEDs
Our first trial run with the new Adafruit sensor when we used only three LEDs.
IMG_7431.mp4
Final Project Documentation
This video shows the finished product. It shows the laser cut encasing of our arduino which includes an opening for the microphone of the sound sensor, as well as another opening for the USB cord on the side. At the end of the video the internal hardware is also shown.
Video%20(2).MOV

Comments

Similar projects you might like

Breadboard to PCB Part 1 - Making the Simon Says Game

Project tutorial by Katie Kristoff and Monica Houston

  • 4,692 views
  • 9 comments
  • 23 respects

Making a Screw Shield for the Arduino Pro Mini

by Iain

  • 1,626 views
  • 3 comments
  • 5 respects

The TrafficLight

Project showcase by Advaith Jagathesan

  • 12,827 views
  • 1 comment
  • 20 respects

Making an Arduino Touch Sensitive LED Sign

Project showcase by MBcreates

  • 7,634 views
  • 4 comments
  • 29 respects

Making a Cheap Aquarium Parameters Controller

Project tutorial by Boisse Martin

  • 5,023 views
  • 3 comments
  • 16 respects
Add projectSign up / Login