|34||Music-Visualization and Motion-Controlled LED Cube
Hieu Tri Huynh, NetID: hthuynh2 (email@example.com)
Islam Kadri, NetID: ikadri2 (firstname.lastname@example.org)
Zihan Yan, NetID: zyan9 (email@example.com)
Link to discussion: https://courses.engr.illinois.edu/ece445/pace/view-topic.asp?id=22725
Our project’s main inspiration came from a video about an art piece called Kinetic Rain at Singapore’s Changi Airport (https://www.youtube.com/watch?v=jhP9n6WvVfQ). Instead of bronze droplets, we’d like to use a cube of LEDs achieve the same effect and additional features.
Our project goal is to build a LED cube of size 10*10*10 with 2 features. Every 10 LEDs will be on the same wire and the wires will be supported by a board at the bottom. User can switch between these 2 features/modes by using a button on the board.
Feature 1. Music Visualization. This LED device will have microphones attached to it to listen to sound. The sound will then be analyzed and four values will be extracted and used: frequency, amplitude, angle of arrival, and beat per minute (bpm). The LED colors and configuration will adjust based on these values.
Frequency: Frequency will be used to control the color of the LED. To extract the frequency from the sound, we will use the short-time Fourier transform (STFT) algorithm.
Amplitude: Amplitude will be used to control the brightness of the LEDs.
Angle of Arrival: This value will be used to control the orientation of the animation of LEDs. In order to detect the angle of arrival in a 2D plane (0-360 degrees horizontal plane), we will use 3 microphones, and the Generalized Cross Correlation – Phase Transform (GCC-PHAT).
Beat per Minute (BpM): This value will be used to control the speed of the movement of the animation.
Feature 2. 3D Snake game. We would like to implement a 3D Snake game so that a user can play using this LED device. The Snake will be controlled by a user hand's motions.
Display: We will turn off all the LEDs except the Snake (initially a small length of LEDs) and the fruit (one LED with different color) to create the movement of the Snake. The length of the snake will grow larger as the user captures more fruit.
Hand Motion Detection: We will create a pad that has 4 proximity sensors on the board. The user will move his hand above the pad, and we will use the values of those sensors to detect the motion. For example, if the user moves his hand from Left to Right, the sensor on the left will change its value before the sensor on the Right. Based on those difference in value of 4 sensors, we will be able to detect the motion of user’s hand in 6 different directions (Up, Down, Left, Right, Outward, Inward)
We are thinking of using either a Raspberry Pi or an Arduino for the controller unit. We will design the circuit for the LEDs.
Our project is innovative and unique because it serves as an aesthetic project, like the Kinetic Rain project, with the additional use of sound as an input to affect the LED's color and shape. There are a few existing products that can visualize music using a sound's frequency, but none of them extract the previously mentioned 4 categories (frequency, amplitude, angle of arrival, and BpM) to influence the LEDs. Therefore, by extracting all 4 values listed above, we will be able to create a more visually appealing and accurate device.
Furthermore, by implementing the 3D Snake game, we will fully utilize the resource (LEDs) to increase the entertainment factor of the device and will also encourage the user to interact with it, as well as having a more hands-on use.