I wanted to create something relatively complicated for the final project of my embedded systems class. Therefore, I built this robot. I envisioned this robot as being able to send a video feed back to a computer, for the computer to use computer vision algorithms on the video feed, and then to issue commands back to the robot accordingly.
The final project for our class encouraged that we write most of the code for controlling peripherals and using on chip functions from scratch. Writing the bare metal device drivers for our robot’s peripherals was actually incredibly fun and made me learn a lot about reading technical/hardware reference manuals and how software works at its lowest levels (CSR reading and writing!).
The battery connector was somewhat tenuous and after some uses it actually tore up the pads from the PCB and I had to rework it. In the future it will be good to pay more attention to the structural strength of frequently abused parts of the PCB.