Self Balancing Arduino Robot_PID

by Suman_Shashi in Circuits > Gadgets

11235 Views, 68 Favorites, 0 Comments

Self Balancing Arduino Robot_PID

20161011_011114.jpg
20161017_000939.jpg

Two-Wheel Self Balancing Robot using Arduino and MPU6050 . Well guys I know its not a new type invention but still many hobbyist still love to see the electronics. I will go here with the cheap parts in order to keep minimum cost for all those young inventors who want to complete this instructable !! Savvy !!

Hats Off Lets go

Sorry for my english as it isn't my tongue language so beware and bear me for some moments.

Collecting Items (Tiresome :P)

20161011_013121.jpg
20161011_013133.jpg
20161011_013139.jpg
20161011_013152.jpg
20161011_013203.jpg
20161011_013220.jpg

1. Arduino UNO in USA or Genuino outside USA

2. MPU 6050 Gyroscope from ebay

3. BO geared plastic motors (150-300 RPM)

4. L293D Motor Driver

5. Wheels

6. Capacitors of ceramic type (0.01uF)(not used here)

7. A charger (Wall charger USB type)

Note - Motors should be of high torque and speed as well. Torque is required to lift the weight when the bot falls on either side. If it wont have such required force then you might have to visit hobby shop again!! for better ones.Speed is required for a faster response to any change in bot from sudden jerks.

Frame"Work"

20161011_015829.jpg
20161011_015833.jpg

Without any screws or bolts I am keeping here simple.

Take a (1 X 2 cm) strip of double sided tape and stick it to the ede of motor.

Similarly we will need four strips here. Two for each motor.

Then choose distance between motors. I generally keep it between 8-9 cms.

With a rotary cutting tool cut off rule of length 6cm from beginning.

We will do here same for two rulers.

Then stick the rulers keeping symmetry to both sides of motor.

I actually did this step so kinda lack my images. Well nothing to worry I have a completed one.

Upperframe Work

20161016_171632.jpg
20161016_171652.jpg
20161016_171740.jpg
Arduino Balance Bot Part-1

As you can see in the above video how I managed to make a cardboard frame to fix it on the motor frame. You can choose any height. However I chose around 10.5 cms.

Now on each side as in picture you have to punch out two holes on each side of frame. They must remain aligned. We are going to fix the motor driver L293D on it. I have cutted out a piece of cardboard with dimensions. It is having 3 holes. Two for motor wires and the fron one for IC and power wires of shield.

Full Body Assemble

Arduino Blance bot Part-2

In the video you can see how I have assembled this bot using just some tapes and band. Remember the bot must not be too heavy at the top as we are using low quality motors. High RPM with HIGH torque is preferred like the johnsson motor. RPM will help to bring robot back to its C.O.G position if tipped by a large angle and torque will help the bot to bear the weight above itself. So try to keep the height a bit low to keep the bot stable.

Calibration

5803d2a44fbade0448000bf7.jpeg
Screenshot (42).png
Arduino Balance Bot Part-3

Open Arduino IDE and find the source code from this *link*

The code involves main code with I2C ino. Rename this code to I2C.ino.

Also download the Kalman filter library from TKJ Electronics Github.

Open the first link and then click sketch the add file. Select I2C.ino and add.

Now hold your bot still perpendicular as possible and note down the angle from serial monitor. Now in the source file use that angle as limit.

For circuit Motor Shield pins would go as

INT1 = D6

INT2 = D7

INT3 = D3

INT4 = D4

SCL = A5

SDA = A4

For a person like me who hates batteries I shorted 12V with 5v terminals on motor shield and powered them with charger 5V/1.55 A output. You may follow your own power method.

Thank you guys,

Instructable managed by Ambika and Shashi Cheers

Links Updated Guys !!! Comment to let me know if doesn't work

Updates

Self Balancing Balance Bot
Untitled.png

Updated the code

Bot can now face some pushes

Some code changes introducing a better auto callibration.

Have a look on pic.

Will update code soon after some testing.

Links Updated