At Oregon State University, I worked with a teammate to create a dancing robot that reacted in three different ways to three sound-based inputs. The robot used a SparkFun Sound Detector to measure sound amplitude and frequency, which triggered changes in LED colors, flashing patterns, and dance movements. We used four servo motors for movement and implemented a fast Fourier transform (FFT) function, EasyFFT, to filter noise, detect beats, and identify common frequencies. A rolling average filter smoothed volume fluctuations to prevent LED flickering. The final system included a robot with two actuators on each side, a breadboard with the sound sensor, an RGB LED that changed colors based on volume, and a red LED that flashed in time with the music’s beat.
My primary role was writing and modifying code for FFT analysis, beat detection, and the robot’s dance movements. I also developed code for the LEDs to react to sound input and researched the SparkFun sound sensor to fully understand its capabilities. I 3D-printed the robot’s body, set up the sound sensor on the breadboard, and ensured it worked properly. To stabilize the robot while allowing movement, I designed a support system for the breadboard and Arduino. This project strengthened my skills in coding, hardware integration, and problem-solving
Breadboard setup for LED lights, servo motors, and Sparkfun sound detector
Breadboard setup for LED lights, servo motors, and Sparkfun sound detector
LED light color cut-offs for amplitude (volume) of sound
LED light color cut-offs for amplitude (volume) of sound
Rolling average filter applied on raw sound amplitude data to fix LED flickering
Rolling average filter applied on raw sound amplitude data to fix LED flickering
Raw sound data from Sparkfun sound detector
Raw sound data from Sparkfun sound detector
Most common sound frequencies filtered from raw sound data by applying an FFT function
Most common sound frequencies filtered from raw sound data by applying an FFT function
Back to Top