Click here to view our final report.

In my 3rd year of engineering, I took an embedded systems course where, as a final project, we got to choose any project to implement on the STM32 Nucleo. We chose to build a self-balancing robot, inspired by this STM32-based self balancing robot.

I was mainly responsible for the balancing algorithm and motor control while my partner was responsible for navigation. We used the BNO055 9DOF IMU for orientation detection, OV7670 Camera for desired direction of travel, and 3 HC-SR04 Ultrasonic Sensors for obstacle detection.

We used a simple balancing algorithm consisting of a PID controller based on the IMU’s Euler angle data.

We received an honorable mention from the course instructors as one of the top 20 out of 120 projects in this course.