This is a hat for a raspberry pi that I designed for our Senior Project. I was in charge of writing the code for the device along with the design, implementation, and sourcing. I wrote the application code all in user space, with a simple python script. The video is an early implementation I was sending to the project coordinator demonstrating I was receiving data and processing it to get physical orientation of the device.
The Hat was designed with a handful of things in mind. First and foremost was the design requirements of having an IMU and buttons on the board to interface with the Pi. I grabbed the dimension of the pi’s we were using off of the raspberry pi documentation website and plugged them into Altium. I was also being conscious of the enclosure we were using, so we could still slide the top on and off.
This was the first time I had designed an I2C circuit along with using python to control the circuit. Figuring out how to control the I2C bus in linux along with referencing the correct addresses in the IMU was the difficult part. I also fell victim to a classic mistake when designing an I2C bus: forgetting the pull up resistors.