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