Balancing robot using:
- AVR Mega8
- 2x AVR Tiny26
- 3x7.2V accupack
- QMC motors with planetary transfer and decoders
- ADXL202 acceleration measurement IC
- full H-bridge based on TIP41C en TIP42C transistors
The combination of the different modules electronically is very straight forward. Both gyro and accelerometer have digital outputs with pulse width modulation. No electronic signal conditioning is necessary.
The software is developed in BASCOM.
The encoders give about 30.000 pulses per rotation. Speed measurement is therefore done separately by a Tiny26 to ensure stable timing on the Mega8. The control loop needs to be run at a fixed time interval. No interrupts can be accepted. The encoders have a A and B output, which make the speed and direction measurements simple. The data is transferred serial to the Mega8.
The acceleration measurement is done with a ADXL202. The connection of the IC is very simple. I use the digital output of the IC.
The measurement of the angle speed is done with a gyroscope. I use a standard gyroscope used in model planes and helicopters.
The angle speed measurement and the acceleration measurement are combined to determine the angle the robot makes with the floor. Both measurements are needed for a few reasons:
- The gyroscope suffers from drift. Even a small drift can cause high deviations when the signal is integrated for a longer time.
- The acceleration measurement is influenced by horizontal acceleration of the robot.
Look on the website for some movies including balancing on a hill!
Description: Two wheel balancing robot
This project has the following developers:
- Calv is a Lead Developer.