Skip to content

Triangle Reaction-Wheel Balancer

A self-balancing reaction wheel robot powered by a Raspberry Pi Pico 2 W.

  • Other
  • Open source

Suggested by Robotheca, created by @Misha999777 (opens in a new tab), from github.com/Misha999777/triangle (opens in a new tab). Pinned to commit 7dc5d86 (opens in a new tab).

Photo

This repository has no photo of the robot yet.

What it can do

Written by Robotheca from the project's documents.

  • Self-balancing reaction wheel robot built around a BLDC motor
  • Motor commutation uses Field Oriented Control with SVPWM
  • Gyroscope auto-calibrates on startup and supports motor encoder alignment
  • Gains (k1, k2, k3) and target angle can be tuned wirelessly over Bluetooth LE

Bill of materials

9 parts
Export parts list (CSV)

9 of 9 parts shown

Parts list
#ComponentQuantityEst. priceSupplier
Bill of Materials (BOM)
1Microcontroller1––
2BLDC Motor1––
3Motor Driver1––
4IMU Module1––
5DC-DC Converter1––
6Charge & Protection1––
7Battery1––
8Battery Holder1––
93D Printed Chassis1––

9 of 9 needed parts have no price in the source, so there is no parts total. Read from docs/hardware/bom.md at the pinned commit.

Build guide

The guide appears here as you scroll.

Guide by @Misha999777 (README.md), under MIT.

More guides

Wiring and electronics

Notes written by Robotheca from the project's documents.

Main parts

  • Raspberry Pi Pico 2 W (RP2350) microcontroller
  • BLDC motor
  • DRV8313 motor driver
  • MPU6050 IMU module
  • AS5048A magnetic encoder
  • DC-DC boost converter
  • 1S Li-Ion battery with charge and protection circuit

Connections

  • Battery feeds the charge and protection circuit, which powers the Pico and the DC-DC boost converter
  • DC-DC boost supplies the DRV8313 driver
  • Pico outputs three PWM signals on GPIO 10, 11 and 12 and an enable on GPIO 13 to the DRV8313
  • DRV8313 drives the three phases of the BLDC motor
  • Pico talks to the MPU6050 over I2C on GPIO 26 (SDA) and GPIO 27 (SCL), powered at 3.3V
  • AS5048A encoder is powered from the driver's 3.3V output and read by the Pico over SPI on GPIO 2 to 5
  • Core 0 runs the control loop and Bluetooth LE; Core 1 runs the high-frequency motor loop