The Saga of the Blimp
or
To Dream the Impossible Dream
by
Briton Barker
Elizabeth Sorenson
Frank Sorenson
Myles Watson
For CS 580 Winter 2001
Click here for our in class presentation.
 |
Figure 1: Our inspiration.
Objective
Our goal in this project was to modify a remote controlled blimp to be controlled by a microchip
instead. We wanted the blimp to autonomously navigate the halls and maybe even the stairs of the
Talmage (BYU Computer Science) Building.
The Balloons
We began by getting our hands on a couple of remote controlled blimps and balloons. The first
balloon, from
ToyTronix,
was simply a big latex balloon filled with helium. It had two small motors
with propellers to perform horizontal movement and turns, and one larger propeller to move the
balloon up. The vertical propeller only worked one way, however, and would not move the balloon
down. This balloon was very difficult to control through the RC device, we think partly because the
two horizontal propellers were not shielded from each other's interference and weren't well matched.
Also, the balloon lost helium purity rapidly, requiring a modification of ballast every fifteen
minutes and a refill of helium after several hours. The balloon was not able to lift much more than
its own base even just after a refill of helium, partly because we are at a high altitude.
Our second balloon set came from
Plantraco.
With this set we actually got two mylar balloons, one
shaped like a blimp and the other shaped like a flying saucer, and one gondola base. We could attach
the gondola to either balloon with scotch tape. The gondola was larger than the base of the first
balloon, but it also performed much better. It also had two side propellers for horizontal movement,
but they were larger and shielded from each other. The propeller for vertical movement could rotate
either way, allowing us to move the balloon either up or down. Because the balloons were made of
mylar, they didn't loose helium purity nearly as quickly and only required refills after several
weeks, rather than hours. Using the remote control, we were able to navigate the balloon through
doorways and up the stairs. Overall, it responded much better than the first balloon.
For all these reasons, we decided to use the balloon set from Plantraco.
The only problem with the second balloon set was the amount of helium necessary to fill the
balloons. Thankfully, the Chemistry department allowed us to use their helium, since they had
"enough
to float the Benson Building."
Weight restrictions
We found that the blimp
shaped balloon could lift about 4 ounces. The flying saucer lifted about 3 ounces. By using the
blimp, we would have 4 ounces to lift the gondola with its motors, batteries, our microchip and any
boards and wires, and whatever sensors we wanted to use. Throughout the project we weighed each
piece using a simple 8 ounce maximum kitchen scale as we focused on controlling our weight.
 |
Figure 2: Weighing the gondola and blimp on our kitchen
scale.
The Sensors
Because we wanted our blimp to function autonomously, we knew it would need sensors to give it
information about its situation at any given time. So we searched the internet for ranging and
rotational sensors that were lightweight and reasonably priced.
Our ranging devices came from
Polaroid.
We figured we would need at least two, one for horizontal
and
one for vertical distances. The rangers came with a transducer that sent and received the ultrasonic
pulse and a small board to control the ranging functionality. Each transducer/board combination
weighed about 1 ounce. To use the ranger, we had to set the init pin on the board high, and count
the time until the echo pin went high. The wait time was translatable to twice the distance from the
transducer to the nearest object.
 |
 |
Figure 3: The ranging sensors. On the left is the
transducer with its size compared to a dime. On the right is the board.
One tricky part about the rangers was the voltage. For the transducers to function, the sensor board
stepped up the voltage to 400 V. The literature that came with the sensors called this a
"noticeable, but harmless, shock." We were careful to avoid experiencing this shock too frequently.
To save on weight we used two relays to switch between the ranging transducers, allowing us to use
both transducers with one board. Because of
the voltage going to the transducers, we had to use special relays that could handle 400 V. We saved
about 2/3 of an ounce by only using one board.
After much searching, we were able to find a decent rotational sensor, or gyroscope. It was called
the
Pico Gyro
and weighed 4.7 grams. It was intended for use in remote controlled mini
helicoptors. The receiver in the helicoptor would send the gyro a pulse-width modulated signal and
receive back a
modified signal with the pulses widened or narrowed depending on the rotational acceleration. This
allowed the helicoptor to stabilize itself. For our purposes, we figured we could measure the width
of the return pulse to determine the spin of the blimp. Despite its size, the gyro was highly
sensitive. Actual pulse widths depended on the temperature as well as the rotational acceleration.
 |
Figure 4: The Pico Gyro compared to a dime.
After playing around with the gyro for a bit, we discovered the we could just tie the input low and
get a return pulse where the width indicated the turn. This saved us from having to use our 16 bit
counter on the chip for the pulse-width modulation.
The Motors
To make the blimp function autonomously, we had to rip out the standard remote control for the motors
and connect them directly to our microchip. We had three motors total to control, two for horizontal
and one for vertical movement. Each motor was capable of turning in two directions. We found some
useful h-bridges from
Zetex
to help us with this. The h-bridges were small and light and able
to handle more current than other devices their size.
 |
Figure 5: The three Zetex h-bridges we used.
The Microcontroller
We ended up using the Atmel 8515 as our blimp's brain. We compiled our programs with the avr-gcc
compiler and used UISP to download the program onto the chip. We built our own
programming board on a breadboard.
Our first attempt at programming the chip resulted in sweet music. We attached a piezo element from
a musical greeting card to one of the output pins and figured out how to make it play "Mary Had a
Little Lamb." There was much rejoicing when we finally got this to work.
After the music, we attached a small LCD device to the chip and figured how to control it. We then
wrote our own printf so we could output data and text to the LCD for easier debugging. By this time
we felt we had a pretty good understanding of how to program the chip.
 |
Figure 6: Some of the mess we made during this
project. The green rectangle in the middle is the LCD display used. The breadboards
contain the cicuitry for programming the chip.
We next programmed the chip to control the two ranging sensors through one board by toggling between
two relays. Our printf on the LCD gave us an indication of how accurate we were. We then added the
Pico Gyro. Because of its sensitivity, we decided that when the blimp first started up we would get
16 pulses from the gyro and average the results to determine the initial bearings.
Final Program
Our final configuration on the blimp included all three sensors and all three motors. The default
motion was forward, by turning both side motors. One ranging sensor pointed down and took a reading
every 60 ms. If the distance to the ground was too great, the program activated the vertical
motor in the down direction. If the distance was too small, the program activated the
motor in the up direction. There was a range of
about two feet where the motor was off.
The forward sensor also ranged every 60 ms. As long as the distance to a wall or object was
greater than several feet, the program did nothing with this information. But once the distance was
too small, the program reversed both side motors to stop the blimp and turned the blimp randomly
right or left until the forward distance was sufficient. The program then returned to its default
forward motion.
The program received information from the rotational sensor about 33 times a second. If the
rotational acceleration was small, nothing different happened. But if it because too large, the
program would stop the forward motion and use the side motors to return the blimp to a stable
position.
Putting It All Together
We didn't want to lift a breadboard with our blimp, since breadboards weigh about 3 ounces. So we
wired wrapped and soldered together all the sensors, h-bridges, relays, and the chip on the gondola.
 |
Figure 7: Wire wrapping the chip into the gondola.
One problem we ran into around this point was power. We planned to use a light-weight 6 volt lithium
battery to power everything. We decided on 6 volts because that is what the ranger needed. However,
we discovered that at 6 volts, each of the three motors drew more than half an amp. We burned out
several buffers and h-bridges before we discovered this and got the Zetex h-bridges. Even with the
better quality h-bridges, however, we didn't want several amps draining from the batteries whenever
we used all three motors. We ended up adding three AAA batteries to power the
motors.
Unfortunately, adding the extra batteries put us significantly overweight. Despite all our weight
shaving, our gondola weighed in at 6 ounces. Even without the three AAA batteries we were slightly
over the 4 ounce limit. So we scotch taped the blimp and the flying saucer together. This
gave us more lift than we needed, so we attached post-it notes and modeling clay to the blimp until
it reached
neutral buoyancy.
 |
Figure 8: Block diagram. (Click on the diagram for more
detail.)
 |
 |
Figure 9:The final parts of the blimp. The left shows the
insides of the gondola. One can clearly see the ranging board and some of the
batteries. On the right are the blimp and flying saucer taped together.
Our first test drive turned out pretty well. We had to hold the blimp steady for the first couple of
seconds to allow the rotational initialization. The blimp then spent several seconds adjusting its
height and flying at walls before it figured out which direction took it down the hall. After that
it performed amazingly well. It never crashed into a wall, or hit the floor or ceiling, but did
manage to
move up and down the halls.
One thing we did have to be careful about was not allowing the wires inside the gondola to touch the
balloon. This could cause a short, since mylar is conductive. In our demonstration for the class,
one of the h-bridges was touching the balloon, causing a short to one of the side motors. So the
blimp didn't function as well as during our tests, but was still able to control its own vertical
position.
Parts List
- Blimp, flying saucer, and gondola from Plantraco
- 2 sonar ranging modules from Polaroid
- 1 Pico Gyro
- 3 Zetex h-bridges
- Atmel 8515 microcontroller
- 5 MHz crystal
- wire wrap wire
- several resistors and capacitors
- solder