We programmed a self-balancing Segway that "dances" according to the audio. The audio input is sampled and analysed for beats, executing the dance moves through the MicroPython controller.
I programmed the self-balancing PID control system, which takes in data input through both the gyroscope and accelerometer. The Segway continuously balance itself with the help of the feed-forward control and negative feedback.
The signals are sampled and filtered using band-pass filters to eliminate noises and drifts for better accuracy.
A demonstration of the Segway can be found here:
Details and documentation of the project can be found on my Github.