Hello I am Brecht Willockx.
I am 17 years old and come from Belgium. In the past 8! months I have been working on a Self Balancing Robot.
The name Willoduino is from my last name WILLOckx and the brain arDUINO.
It's my end of year project. I study in high school for industrial engineering.
The brain of my robot is the Arduino Uno. The robot is finished!! The hardest part was finding the PID-values.
As always it was a lot harder than assumed by me. The last part is to obtain basic motion control (Forward/Backward, Stop Right/Left) with a cheap bluetooth module (+Android).
I've made a Android App in App Inventor:
I use a IMU 5 DOF (IDG500/ADXL335) for reading the angle of the robot. The sensor is placed on the bottom of the robot.
As we are interested only in gravity measurement, we want dynamic acceleration as low as possible.
The best place for reducing rotational acceleration is near the the motor axis.
Accelerometer hasn't the noise from the dynamic acceleration (v=w*r) with r=0 (bottom).
Gyros sense rotation only, not acceleration. Rotation is a "system wide" variable for a rigid system.
They can be placed anywhere you want, even at the very top of the botom.
With a complementary filter, the correct angle is calculated!
I use also encoders from the motor. he encoders are tracked using interrupts and direct port manipulation.
The robot knows his position now. I use a PID controller to calculate the best PWM-value.
The 37D metal gear motors are controlled by two independent motorcontrollers.
The wheels are school made from erthalon for good grip.
I also made a 3D-model in Inventor. It's my first design -the place of the components are changed-.
At the moment, I am drawing the actual robot.
The correct version: You can see the assembly: http://www.youtube.com/watch?v=bkWXbv9CG84
If you want more information about how a balancing bot works check out x-firm.com which has a great tutorial section for balancing robots. Oh yeah and it is a lot harder to build one than you would think (I found out the hard way!).
When the robot is ready, I will also make a video!!
Greetz from Belgium
Self Balancing
- Actuators / output devices: 1:29 Pololu 37D metal gear motor with encoders
- Control method: PID - controlled by bluetooth not yet-
- CPU: Arduino Uno (atmega328)
- Power source: 12V NiMH 2200mAh
- Programming language: Arduino (C#)
- Sensors / input devices: motor encoders, 5DOF IMU (IDG500 and ADXL335)
- Target environment: indoor
This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/willoduino-self-balancing-robot