Inverse Pendulum Robot
Self balancing two wheeled pendulum robot.
Author: Fallah-Mirzaei Amir
GitHub Project Link: https://github.com/UPB-PMRust-Students/acs-project-2026-amir-FM
Description
A robot that uses an accelerometer and a gyroscope to sense when it is falling and revert to a vertical position, which is parallel to the weight vector. The user can connect to it via Bluetooth and give it commands to move: front, back, turn right, and turn left. Gyroscope and accelerometer sensor data are fed into a feedback-based control loop stabilization algorithm. The output of this program is fed directly into the stepper motor controller.
From the research I have done, I learned that there are multiple control algorithms, with PID being the easiest to implement and understand. As a bonus, I will provide the use with the possibility to select what control algorithm the robot uses.
Motivation
This is a project I had on my radar for a long time. Having no experience with Control Systems, I thought it was a great idea to start with this project. I also like the fact that this is a hardware-inclined task, because my experience in university is software-heavy.
Architecture
Log
Week 20 - 24 April
Made initial documentation and ordered hardware parts.
Hardware
I am running the robot in a theadered format, for the ease of development, to concentrate my attention on building it, not on changing the battery every 40 minutes.
Schematics
TBD
Bill of Materials
| Device | Usage | Price |
|---|---|---|
| STM32 | Microcontroller | 129 RON |
| MPU6050 | IMU (Gyroscope + Accelerometer) | 16 RON |
| HM-10 | Bluetooth Module | 27 RON |
| LM2596 | Buck Converter 12V - 5V | 10 RON |
| TB6612FNG | Dual Motor Driver | 26 RON |
| JGA25-371 | Encoder Disk Gear Motor 12v | 2 x 31 RON |
Software
| Library | Description | Usage |
|---|---|---|
| embassy-stm32 | Hardware Interface | Base library for project. |