Introduction: Arduino Self Balancing Robot

Picture of Arduino Self Balancing Robot

In this project I will describe the construction of robots standing in equilibrium with Arduino.We explained in our previous version of the android controlled project. In this project we will move to our control. Let's go let's get to our building project.

Step 1: Materials:

  • Arduino Uno or Mega
  • L298 Motor Driver Card
  • 3 Piece potentiometer
  • You can cut plexiglass plate for mechanical or rigid plastic containers.
  • 4 pieces of screw rods in length of about 20 cm
  • 24-Piece Nut
  • 2 pieces 6V DC motors at 250 rpm (from which together with the wheels)
  • Lipo battery

Step 2: The Mechanics:

20 × 8 cm three plexiglass plate final.You can cut in different sizes. Cut diameter of the screw rod through the hole until after the corner of each sheet's open. Each plate so that the rod between two nuts and bolts Let's mounting screws. Let us consider each other to be equal to the gap between the plates. The engine then our way to the bottom right and left sides of the plate will be located right in the center of iron wire tied to my silikonlayal. Such mechanical parts.

Step 3: Electronic Section:

Picture of Electronic Section:

We use the engine running in a synchronous motor drive with its own library.In this way, also it happens to be that minimize errors in the work of the engine with full data system.

We’re putting the plus side of the battery to the motor LiPo 12V power input on the drive. We’re putting the minus end of the GND input.

In addition to the circuit attribute to 3 units 0.1 analog potentiometer year and 2 pins.Here the task of potentiometer kPa, manually adjusting the values of kd and will allow us to find the optimal balance point of the robot.Mpu6050 gyro sensor mounted on the bottom plate horizontally let.

Step 4: Library:

Libraries let’s get out of here

Step 5: Arduino Code:

Step 6: Video:

We complete install the software and necessary connections.Let loose in an upright position after running our robot.If you have trouble in stopping the robot’s balance with the potentiometer ‘kPa’, ‘on’ and ‘kd’ We’re changing value

More information :


superalysson (author)2016-10-08

ijust upload the code in my arduino uno and i got erro of compiling , it said that is missing the I2Cdev.h library. Do you have with you?

you will find it on google

Robot55 made it! (author)2016-10-06

I made it! It isn't exactly a pendulum but I got the information and stuff from about 3 different places. So I will add "I MADE IT! to them aswell! But I especially liked this one; the tests that have been put on, the information, the pictures... See you guys, later on! [Ben de Türküm!(yarı türküm daha doğrusu)]

R Jordan Kreindler (author)2016-07-11

Thank you for this post.

ShubhamS31 (author)2016-04-06

Kp,Ki n Kd ???

ShubhamS31 (author)2016-04-06

Kp,Ki n Kd ???

ShubhamS31 (author)2016-04-06

Tell me one thing sir
Why you connect potentiometer?
What is the value of 3 potentiometers? ?

ShubhamS31 (author)2016-04-05

Getting erro while compiling with ardiuno uno

sezgingul (author)2016-02-08

AnveshA1 this code

sezgingul (author)2016-02-08

LinuxasLt this connect diagram on project or look at this orginal project

LinuxasLt (author)2015-11-12

so how do you start it? i connected and uploaded

AnveshA1 (author)2015-11-03

can you please send me the code to

hammama2 (author)2015-09-26

double originalSetpoint = 174.29;
in the code is it possible to tell me how did you got this value ?

glowy3000 (author)2015-09-26

sezgingul (author)2015-09-19

giuseppe_1973 sorry. change code. upload new code.

giuseppe_1973 (author)2015-09-19

thanks for your quick answer.
I have another problem sketch gives me an error on line 143

SelfBalancing_MPU.ino.ino.ino: In function 'void loop ()':
SelfBalancing_MPU.ino.ino: 143: error: 'currentMillis' was not declared in this scope
SelfBalancing_MPU.ino.ino: 146: error: 'currentMillis' was not declared in this scope
'currentMillis' was not declared in this scope
Can you help me. Thank you.

sezgingul (author)2015-09-18

giuseppe_1973 potentiometer pins. A0, A1, A2

A0 >> Kp value

A1>>Ki value

A2>>Kd value

About This Instructable




Bio: Mechanical engineer, Entrepreneur, Maker, robotic systems expert and Robimek founder
More by sezgingul:Arduino Mini CNC Making Robot Hand With  Plastic PipesUse of Microphone Module
Add instructable to: