Skip to main content
Version: ACS CC

Inverse Pendulum Robot

Self balancing two wheeled pendulum robot.

info

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

Diagram

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

DeviceUsagePrice
STM32Microcontroller129 RON
MPU6050IMU (Gyroscope + Accelerometer)16 RON
HM-10Bluetooth Module27 RON
LM2596Buck Converter 12V - 5V10 RON
TB6612FNGDual Motor Driver26 RON
JGA25-371Encoder Disk Gear Motor 12v2 x 31 RON

Software

LibraryDescriptionUsage
embassy-stm32Hardware InterfaceBase library for project.
  1. https://www.youtube.com/watch?v=IYOxj6VyC8s&pp=ygUXaW52ZXJ0ZWQgcGVuZHVsdW0gcm9ib3Q%3D