Microcontroller and FPGA Reaction Wheel Cat
Quick links: showcase website, including technical documentation; YouTube demo video; GitHub repository with the most relevant code; GitHub repository with the entire codebase.
In the fall of 2022, I took a course on microprocessors in Harvey Mudd College’s engineering department. After we spent the first part of the semester learning about FPGAs and microcontrollers through labs that had us build electrical systems and write code in SystemVerilog and C to control them, we undertook independent team projects to design our own application that would make use of both an FPGA and a microcontroller. Working with my partner Anthony Kang, I decided to make a robotic “cat” that would spin a reaction wheel based on readings from a combination of accelerometers and gyroscopes to flip around in midair and always land on its “feet.” Facing our fair share of challenges along the way, we didn’t quite accomplish this ambitious goal by the end of the semester, but we did produce a proof of concept in the form of a device that hangs from wires and uses its reaction wheel to level itself when perturbed, as demonstrated in this video.
In the course of the project, I implemented a PID controller, quadrature encoder decoder, and SPI reader in SystemVerilog. I also designed an electrical system to drive a high-current brushed motor. More information can be found on this showcase website.