Build a Real Self-Balancing Robot with STM32 — From Code to Control

 

Master STM32, motor control, PID, and LQR by building a complete robot system step by step—with structured guidance and real support when you get stuck.

⭐ Rated 4.7/5 by students

👨‍🎓 120+ students enrolled

ENROLL NOW

Lifetime

$40

 $80

 ✔Intermediate-level

✔14-day money-back guarantee 

✔Lifetime access

✔Certificate of Completion

✔ 81 structured lessons

✔ 10+ hours of video content

✔ PDF Materials

✔ Video Captions

Highly Practical

What you'll learn

 ✔Managing complex projects 

 ✔ Learning STM32 Debugging tools

 ✔ Mastering Embedded STM32 Microcontrollers programming (SPI, Timers, PWM, Interrupts, etc.)

✔DC Motor Control: Theory and Implementation

✔ PID Controller: Theory and Implementation

✔ Working with incremental encoders for position/velocity estimation

✔ Using an IMU sensor (gyroscope, accelerometer, and magnetometer) to compute Euler angles

✔ Linear Quadratic Regulator: Theory and Implementation

✔ RC Joystick Integration

Video Poster Image

Course Content

  1. CH0 - Balancing Robot Course Introduction

    6 lessons
    1. 1 - Welcome to the course!
    2. 2 - Slides used in this Course
    3. 3 - Prerequisites
    4. 4 - Hardware of the course
    5. 5 - How to ask questions and other important remarks
    6. 5 - Source Code
  2. CH1 - DC Motor Control

    9 lessons
    1. 1 - Motor Control Fundamentals: Part 1
    2. 2 - Motor Control Fundamentals: Part 2
    3. 3 - Unveiling the STSPIN240 Motor Driver
    4. STM32CubeIDE 2.0 and STM32CubeMx Project Setup
    5. 4 - PWM Signal generation using the Timer of the STM32 MCU
    6. 5 - PWM Testing
    7. 6 - STSPIN840 Motor Driver and Custom Hardware
    8. 7 - Motor Driver Library Integration
    9. Rate & review this course
  3. CH2 - STM32 Timer Encoder Mode

    8 lessons
    1. 1 - Incremental encoders theory
    2. 2 - STM32 Timer Encoder CubeMx Configuration
    3. 3 - Timer Encoder Mode Test
    4. 4 - STM32 SWV Configuration
    5. 5 - Timer Update Interrupt
    6. 6 - Timer Overflow demo
    7. 7 - Timer Encoder Library Integration
    8. 8 - Timer Encoder Library Test
  4. CH3 - Proportional-Integral-Derivative (PID) Controller

    5 lessons
    1. 1 - Why do we need PID?
    2. 2 - PID Explanation
    3. 3 - PID Library Integration
    4. 4 - Main File edition for PID Testing
    5. 5 - Tuning a PID Controller
  5. Ch4 - Moving Average Filter

    4 lessons
    1. 1 - Moving Average Filter Introduction
    2. 2 - Library Integration
    3. 3 - Testing the library
    4. 4 - Updating the encoder library
  6. 5 - RC Joystick Integration

    6 lessons
    1. 1 - Introduction to the RC Joystick
    2. 2 - Timers Configuration for capturing input PWM signals
    3. 3 - Adding the callback function to capture interrupts
    4. 4 - Testing the RC Joystick
    5. 5 - Motor Control using the RC Joystick
    6. Rate & review this course
  7. 6 - Tilt Angle estimation

    37 lesson
    1. Introduction to the Attitude estimation
    1. Attitude Estimation Course Excerpt CH1

      1. 2 - STM32 CubeIde Project creation
      2. 3 - Using SWV for printf function
      3. 4 - Using SWV to plot variables
      4. 5 - SPI theory
      5. 6 - SPI Configuration using STM32CubeMx
      6. 7 - SPI wirings
      7. 8 - Reading ‘Who am I’ register
      8. 9 - Sending data through SPI
    2. Attitude Estimation Course Excerpt CH2

      1. 1 - First version of the library
      2. 2 - Testing the library
      3. 3 - How to read the magnetometer?
      4. 4 - Magnetometer update 1
      5. 5 - Magnetometer update 2
      6. 6 - Testing a new version of the library
      7. 7 - DMA Theory
      8. 8 - DMA configuration
    3. Attitude Estimation Course Excerpt CH3

      1. 1 - Removing gyroscope biases
      2. 2 - Magnetometer bias explanation
      3. 3 - Timer Update Interrupts
      4. 4 - Magnetometer bias removal
      5. 5 - Normalization and scaling of IMU data
      6. 6 - ARM MATH Library Installation
      7. 7 - Library Integration
      8. 8 - A notion of frame
      9. 9 - Testing the library
    4. Attitude Estimation Course Excerpt CH4

      1. 1 - Attitude estimation, slides
      2. 2 - A notion of frame in detail
      3. 3 - 2D rotation
      4. 4 - Euler angles and Rotation Matrix
      5. 5 - Using the accelerometer to obtain pitch and Roll angles
      6. 6 - Using the magnetometer to obtain the Yaw angle
      7. 7 - Using the gyroscope to obtain the Euler angles
      8. 8 - Library Integration
      9. 9 - Complementary Filter
      10. 10 - Testing the libraries
    5. Attitude Estimation, final library integration

      1. 2 - Tilt angle estimation: Final library integration
  8. 7 - Linear Quadratic Regulator

    7 lessons
    1. 1 - State-Space Design
    2. 2 - Technical Article Introduction
    3. 3 - Matlab Script
    4. 4 - Library Integration and LQR Implementation
    5. 5 - Testing
    6. 6 - Sign Explanation
    7. 7 - Rotation Problem
  9. 8 - Rotational Drift and Final Joystick Integration

    2 lessons
    1. 1 - The rotational drift and how to eliminate it
    2. 2 - Controlling the robot by joystick
NICE TO MEET YOU

Tutor

Greetings! I'm Yerke, the founder/editor/SEO/ loader/marketer of SteppeSchool. With a Bachelor's degree in Electrical Engineering and a Master's degree in Robotics/Mechatronics, I completed my Ph.D. in Robotics/Mechatronics.

Currently, as an automation engineer, I spend my free time teaching people about electronics, embedded programming, and robotics. For years, I've been curating insightful content on my YouTube channel (+700k views), offering valuable insights to students and enthusiasts alike.

Steppeschool Reviews

Target audience

Built For Engineers Like You

➜ Who wants to understand how robots are generally made

➜ Who wants to implement control systems algorithms in the real world

➜ Embedded developers ready to dive deep into flight controller firmware using STM32.  

➜ Robotics enthusiasts who love experimenting with sensors, PID control, and motor drivers. 

➜ Makers who want to build a robot that works *because of their own code*, not prebuilt libraries.  

➜ Researchers or educators exploring control systems and UAV dynamics in practice.

 

Requirments

WHAT you'll need

 ✔ Hardware for the balancing robot: frame, motors, wheels, etc. (we will discuss in the course)

✔ STM32 MCU

✔ Basic knowledge of programming STM32 MCUs

✔ Motivation

More Details

Frequently-asked questions