The Self-Balancing Robot using Arduino


The idea of this project was to design and construct a robot that consists of a body and two wheels that would be able to balance on its own. This behavior is similar how a segway (a new mode of transportation) works. Our goal was to have a working finished product – a robot that, without human interaction, could balance on two wheels.

Arduino Self-Balancing Robot

High Level – Physical Design

The design of this project is relatively simple at first glance. Physically we planned to have a body, which would be made of two platforms separated and held in place by four threaded rods. The bottom platform would simply be for holding the wheels in place. The top would hold the microcontroller and supporting hardware (which will be addressed next). The weight near the top helps keep the robot more stable, so the wheels can correct for tipping more gradually.

High Level – Microcontroller Interfacing Design

In order to make Theobald balance, we need the two most basic things in computing aside from the microcontroller itself – input and output. Our input consists of something that can sense what angle the robot is at in relation to the ground. A few things can do this: we could find distances from a side of the robot to the ground using infrared distance sensors or supersonic range finders, or we could use a combination of and accelerometer and gyroscopes to get the angle in relation to the earth and correct that way. Then we also need output. This comes in the form of our two motors which will attempt to right the falling robot. To control two motors without creating our own h-bridge motor controllers we need a motor driver with the following capabilities: interface with our microcontroller, output to two motors, and be able to go clockwise and counter-clockwise.

Member Task Distribution

This project was done in a very collaborative manner. The main construction of Theobald (as far as the frame) was completed by Ethan since he was actually in the process of building a doghouse and had all the equipment and materials at hand. After the frame was complete all members collaboratively assembled pieces, soldered, researched, developed, implemented, tested and reimplemented. After finishing, the bulk of this webpage was completed by Ethan while Zech and Tony worked on our presentation.

Hardware – Microcontroller (Arduino Uno)

The microcontroller we used is the Arduino Uno which is built on the ATMega328 microcontroller. Arduino builds the board that uses this microcontroller and gives it useful interfaces like a power jack, built in 16MHz clock, USB connection, and convenient spots for hooking up wires. Visit the link to get all the specifics with the Arduino Uno.

Arduino Self-Balancing Robot circuit

Hardware – IMU (SEN-10121)

This accelerometer/Gyroscope combination (often called an Inertial Measurement Unit or IMU) is very convenient in that it combines two nice devices and uses a serial interface for output when requested. If the output instead was analog, it would be up to the ATMega328′s analog to digital converter to get a digital value which has only 10 bits of precision.

Major Components in Project


For more detail: The Self-Balancing Robot using Arduino

This Post / Project can also be found using search terms:

  • self balancing robot arduino
  • balancing robot arduino
  • arduino balancing robot
  • balancing robot using arduino
Clip to Evernote

Leave a Comment

(Spamcheck Enabled)

Read previous post:
Arduino Thermal Camera
Arduino Thermal Camera

My recent arduino project was to build thermal camera on the cheap using an ir sensor and some pan/tilt hardware....

Scroll to top