Group Project With Clarisse Bret, Felix Crowther and Ben Greenberg,
This electronics project involved the design of a self balancing, 2 wheeled robot, much like a Segway. The device was able to perform a dance routine to music using live beat detection.
The robot uses PID control to combat perturbations such as knocks in order to remain upright. PID values were manually tuned to give optimal results.
An interrupt service routine takes regular readings from the microphone. A buffer stores the current 'epoch' of microphone readings. If the ratio of the instantaneous energy (of the buffer) to the average energy is found to be above a certain threshold, a beat has been detected. The robot was choreographed to dance in time with this beat.
In this project, I was jointly responsible for the beat detection algorithm as well as coding the dance routine.