Balancing Explorer is an attempt to dive into the world of self balancing robots
and Mapping/Environmental Awareness robots. Eventually the robot will be equipped
with ultrasonic sensors and other guidance systems yet to be defined. This is
all dependent upon weather or not I can actually get the thing to balance properly.
The project has been stalled due to lack of understanding on how to properly filter
the data coming from the sensors. If you think you can help me on that one, please
let me know.
The chassis is made from four lengths of 6-32 threaded rod and three round pieces of Plexiglas.
The bottom plexi layer is 1/4" for strength and the top two layers are 1/8" to reduce weight.
The layers are held in place the two 6-32 nuts on the top and bottom of each layer. I enjoy working
with clear plastics as it really gives the robot a personality of its own.
The motors are mounted to the bottom 1/4" plate of the robot chassis. There are two Hsiang Neng
GH12 50:1 Gear Motors with Lynxmotion Green Dot Sumo Tires.
The hub adapters and motors mounts were also obtained from Lynxmotion.
The GH12 gear motors have a pretty heft stall current and from balancing I expected the motors to
consume a lot of power. To prevent overheating I decided to use two LMD18200 from National to drive
the motors. The LMD18200 can handle far more current then the L293D and offers a large tab to better
dissipate the heat generated from rapidly switching the motors direction.
In order to keep upright the robot must know which ways is up and how fast the ground is approaching.
This is usually accomplished using a gyro and an accelerometer. The gyro does a fantastic job of
determining angular speed and can be integrated over time to give and but he gyro has a drift. The
accelerometer in a static state can give a good angle but in a dynamic system other accelerations cause
the data to be error prone. When the two sensors are properly combined they can produce a very reliable
depiction of the robots attitude and angular speed. This is the part that I have yet to get right. The
accelerometer used is a ADXL311 from Analog Devices and the gyro is a ADXRS150 also from Analog. Both
parts are on SparkFun breakout boards.
The robot is driven by a PIC18F452 running at 48MHz. The micro does.. tries to keep the robot in the upright
position. The code from the robot is written in C to avoid having to do math in assembly.
As I expected that this project would be a long term project I decided to create circuit cards for the systems
rather then just hand-wiring on proto-boards. The boards turned out pretty well.
The control board houses the micro, the motors drivers, the voltage regulator and some misc. house
When I created the original sensor board I did not put any filtering on the circuit card. This proved
to be a problem. So I had to create a second sensor board that has filtering on the sensor
data. The accelerometer and gyro mount in sockets on the sides.
Balancing Explorer Data Sheet
||8.5 in(W) x 5.0 in(L) x 9.0 in(H)
||1/8" and 1/4" Plexiglas combined with 6-32 threaded rod.
|| Microchip PIC18F452
| C written in the SouceBoost IDE
||14.8V from a four cell 2200mAH lithium-ion battery pack.
A linear regulator steps the voltage down to 5V for the PIC and sensors.
||Two 12V Hsiang Neng GH12 50:1 Gear Motors.
||Two National LMD18200 driven by microprocessor
||Hardware generated Pulse Width Modulation.
||2WD using two motors
||Two Green Dot Sumo Tires from Lynxmotion
||One ADXL311 and One ADXRS150
Web site and all contents © Copyright Steven Easley 2005-2008, All rights reserved.