03-08-2012, 02:23 PM
Mechanical Engineering 224 to Control a Boe-Bot
Professor Espinosa.pdf (Size: 826.26 KB / Downloads: 982)
Introduction
The objective of this project is to use our knowledge acquired in Mechanical Engineering
224 to control a Boe-Bot along a specified path,
using gyroscope sensing in a closed-loop feedback system (see figure 1). The Boe-Bot robot is
mainly composed of two servo motors to operate the wheels and a Board of Education carrier
board, which is controlled by a program called BASIC Stamp. Specifically, we will create a
BASIC Stamp program that will use a specified voltage, which corresponds to a certain angular
velocity, to control the direction of travel of the Boe-Bot. Then, using closed-loop feedback from
a gyroscope and ADC (Analog-to-Digital Converter), the Boe-Bot will correct itself to travel in a
completely straight line.
Boe-Bot Assembly
Our Boe-Bot was brand new, therefore unassembled. First, we attached the four
standoffs to the four corners of the chassis. The standoffs support the Board of Education from
which the Boe-Bot runs. After centering the Parallax Continuous Rotation servos, we attached
the servos to the chassis using Philips screws and nuts. We then attached our power source, the
battery pack, to the underside of the chassis. After that, we attached the tail wheel ball and high
quality rubber band tires. Lastly, we connected the Board of Education onto the four standoffs,
with the breadboard closest to the drive wheels. And the Boe-Bot was born! (See figure 2 for a
photo of an assembled Boe-Bot).
Servo Calibration
Before assembling the Boe-Bot, we had to calibrate the servo motors (see figure 3). We
used a program (see Appendix A) that sends the servos a signal, telling them to stay still.
Because the servos are not pre-adjusted at the manufacturing facility from which they came, they
will actually start spinning. We then had to use a screwdriver and adjust the servos until they
were still. This calibration is called centering the servos. When the program input is PULSOUT
12, 750, it is centering the right (designated by 12) servo to stay still (750 designates no
movement in either direction). When the program input is PULSOUT 13, 750, it is centering the
left (designated by 13) servo to stay still. When the input 750 is increased, the servo will travel in
one direction, and when it is decreased, the servo will travel in the opposite direction.
Gyroscope Calibration
The main programming softwares we used in this project were LabView and BASIC
Stamp. While we were capable of programming the Boe-Bot to travel in straight lines and make
various turns with BASIC Stamp, we did not know the actual angles the Boe-Bot turned during
its test trials. In order to be more accurate with our Boe-Bot following its respective path, we
integrated the response of a gyroscope in a closed feedback loop, which will allow us to program
the robot to make turns at specified angles and will adjust the Boe-Bot so it does not deviate from
its straight path.
In this project, we used an ADXRSS150EB gyroscope from Analog Devices. It operates
on a 5 Volt power supply and is capable of sensing up to 150 degrees in angular motion. This
gyroscope contains two polysilicon sensing structures which have capacitive pickoff structures
that are capable of detecting motion caused by a Coriolis force. This Coriolis force is produced
when the Boe-Bot rotates. After the Boe-Bot rotates, the Coriolis force causes the two
polysilicon sensing structures to be displaced orthogonal to the vibrating motion of the Boe-Bot.
The capacitive pickoff structures on the polysilicon sensors then pick up the Coriolis motion and
a rate signal output is produced. This rate signal is the feedback we need in order to ensure that
our Boe-Bot turns at specified angles and follows a straight path.
Before we wrote our final program, we needed to calibrate the gyroscope and determine
the relationship between its angular velocities and their respective output signals. We first
created a LabView program (see Appendix B) that plotted our gyroscope output signals versus
time: