With the IMU ready to use it is time to make the rest of Godfrey's wheel base. Godfrey's Phase I motor base is a two-wheel balancing design. It contains all the elements necessary to detect the robot's position and balance and move the robot in its environment.
Here is a block diagram of the system:
Here is a block diagram of the system:
At its heart is an Arduino Leonardo board. Connected to this board's serial port is the Sparkfun 9 Degrees of Freedom IMU programmed to continuously report the accelerator and gyroscope data. Also connected to the Arduino through PWM lines is the Pololu two channel motor driver which itself is connected to the drive motors. The motor current reporting component of the motor drivers are feed back to two Arduino analog ports. The motors also have built in rotary encoders and their signals are feed to the Arduino to measure rotation. A full schematic can be found here on Upverter.
It is constructed on a wood base using wood screws and hot glue. Here it what is looks like:
With all of this hardware, the base can:
- It can move with left and right wheel independently in both the forward and backwards direction.
- It accurately measures wheel rotation. This is used to accurately determine the ground path. It also helps balance the natural variations in motor speed.
- The base uses it gyroscopes to determine how fast it is pitching in any direction. This is use to balance the robot.
- It measures acceleration in all directions. Its primary use is to determine when Godfrey is upright. The gyroscopes are the primary actors in balancing, but they drift. The accelerometer measure the downward direction in a stable manner.
- It is able to communicate with other computer elements through its serial port.
- It measures the current usage of each motor. I am not sure I will use this.
A details parts list can be found here.
I will discuss the testing program and what I have learned in the next post.