EBOX

From ESE205 Wiki
Jump to navigation Jump to search

Project Proposal

Overview

We created an audio responsive LED lighting system integrated on a desk that can be used as a fun addition to one's home entertainment and lighting systems. The EBOX has 3 modes that the user can set with a tap of a touch sensor to customize the dynamic light patterns to fit any mood.

Group Members

Jordan Gewirtz

Chanel Lynn

Nish Chakraburtty

Tony Sancho-Spore (TA)

Dr. James Feher (Prof)

Link to Log

Objectives

  • Use an Arduino to implement a Fast Fourier Transform(FFT)
  • Integrate the FFT through the Arduino with our LED lights
  • Make the LED lights respond music with a specific, non-random color scheme
  • Have the Light intensity change with the decibel level of the music
  • User interface

Challenges

  • learn Arduino
  • Soldering
  • learn complex circuitry
  • carpentry
  • writing the code and interfacing the Arduino with the LEDs and Sound receptor
  • Learn to not short our entire project
  • Learn how to use transistors
  • Make sure nothing blows up
  • Staying under budget

Gantt Chart

Budget

Item # of Units: Estimated # of Units: Actual Unit Price: Estimated Unit Price: Actual Total Price Estimated Total Price: Actual (Including Shipping)
Arduino (Link) 1 1 $22.00 $0.00 (Provided by TA) $22.00 $0.00
Transistors (Link) 10 $0.06 $0.60 $0.00 (Provided by TA)
LED (strips - 6ft) (Link) 1 1 $21.99 $21.99
Arduino Microphone (Link) 10 10 $0.88 $0.69 $8.88 $6.90
Table (Link) 1 1 $39.99 $39.99 $39.99 $43.86
Capacitive Touch Sensors (Link) - 5 - $1.40 - $6.99
Total 14 $48.78

Design And Solutions

Steps to Build the EBOX

1. Program the color patterns

2. Upload the code to the Arduino

3. Plug leads into the hardware

4. Solder external power source to lights and Arduino

5. CAD box to hold the hardware

6. Assemble table

7. Secure lights around the underside of the table

8. Plug in power source adapter to an outlet, place a speaker near the microphone, and enjoy!

Components

LED Light Strip (6ft)

Arduino Uno

Capacitive touch sensor

Sound Detection Sensor Module (Microphone)

Desk with glass or translucent top

5V Power adapter

Leads (wires)

The Software

The method of approach in terms of software was to program the Arduino to do a running average of the frequencies coming in from the Fast Fourier Transform and send a message to the LED strip to output a certain pattern of lights.

A Fourier Transform is a transformation of a function of time into the frequencies that make it up, but a Fast Fourier Transform is an algorithm that computes the same result but in nlogn time rather than n^2 by factorizing the discrete Fourier transform matrix into a product of mostly zeros. We downloaded a Fast Fourier Transform Library (referecne/link library) from an open source to translate the analog sound signals into digital signals with this decrease complexity to allow for a quick response to the audio input. Music or other forms of audio are inputted to the system through the Arduino microphone and the Arduino is programmed to take those anolog signals into the FFT (Fast Fourier Transform) operations and the output is series of frequencies in the range of 0-720.

The Electronics

Background

The electronics that eBOX contains includes an Arduino Uno [1], a WS2812B LED strip [2] , a KY-038 4 pin microphone [3] , and a TTP223B digital capacitive touch sensor utilizing the self-capacitance configuration [4] [5] , all of which is soldered up to an external power source that has a standard Type A wall outlet adapter.

Design Considerations & Challenges Faced

As discussed in the Software section of this wiki, the Arduino functions as the operator of eBOX. It holds all of the code that allows eBOX to perform its functions as well as serving as the interfacing module with the other hardware components. Detailed specs with respect to the Arduino UNO can be found here. One important aspect to consider is that the Arduino UNO comes with only 2 preset 5v port, but for our setup (see figure below) 3 ports were needed. This potential hardware issue was resolved as the ports of the Arduino can be altered to give out power instead of receive information. In our case, we overrode digital port 13 to be a 5v power port instead. However, it is important to note that only devices that draw low power should be connected to the overrode port to ensure not frying the Arduino; we specifically had the touch sensor be powered by overrode port digital 13 as 2 sensors need approximately 5.5V DC and we only used one.

The WS2812B LED strip is a particularly nifty piece of hardware. At 10ft long it provides ample length to satisfy any creative design one is crafting. Furthermore, not only is the strip addressable from Arduino’s fastLED Library, but each individual LED in the strip is addressable with respect to brightness and color. Additionally, the WS2812B LEDs are wired in series allowing for communication via a one-wire interface. This means that one can control each LED in the strip individually using a single Arduino digital pin. This setup also allows for the strip to be cut without damaging the LEDs that precede the cut. With respect to power, the WS2812B LED strip should be powered using 5v where each LED draws about 50mA when set at full brightness. This actually started to become an issue due to the surge protector that was part of our external power source. The surge protector would shut off the supply if the current was approaching 2.4 A. This technical issue was overcome similar to the Arduino issue via a software solution. We limited the how bright the LEDs could get by moding the RGB components by 160 instead of 255. This allowed for eBOX to run longer without running into an over consumption of power issue.

The KY-038 4 pin microphone allowed for sound detection based off the specs found here. It is crucial that the microphone has an analog out pin in order for frequency detection to be possible. If the mic only has a digital pin, only threshold sounds detection is possible based on the potentiometer setting.

The TTP223B digital capacitive touch sensor utilizing the self-capacitance configuration was ideal for functioning as a clean and simple user interface. Essentially a digital signal is sent if a human finger gets close enough to the sensor that a change in capacitance is detected. The finger functions as a dielectric as well as conductor, both contributing to an increase in capacitance. More details on how the finger functions as a dielectric and a conductor, as well as discussion on proximity vs contact can be found here. The digital signal sent to Arduino due to the change in capacitance was used to change modes from party to lamp to off, enabling a slick user interface to operate eBOX by the touch of a button.

The adapter for the external power source needed to be usable in most places. That is why we soldered an adapted with a Type A configuration. As previously discussed, the adapter had a built-in surge protector which required us to modulate our energy consumption. The adapter had inputs of 100-240V, 50/60Hz and 0.45A. It outputted 5.25V and 2400mA.

For the literal hardware set up and configuration see the diagram below

The Housing

Results

Shortcomings

Poster

External Links

Project Proposal Presentation Powerpoint Link

Code Repository

References

Software References

Electrical Design References

Physical Design References




eBOX Log https://classes.engineering.wustl.edu/ese205/core/index.php?title=EBOX_Log