ZAPpelin, or How to Train Your Blimp With an Arduino and IR Remote

24K7814

Intro: ZAPpelin, or How to Train Your Blimp With an Arduino and IR Remote

Is it flying seal? A flapping alien?

No it's a ZAPpelin, an Arduino controlled indoor blimp, setup to learn in the signals from an IR remote to command it.

This project came to life at the third Arduino Jam Februari 15th to17th 2013, at Timelab, Ghent, Belgium.

Our team consisted of:
-charles32
-mgossye
-myself (masynmachien)

The main challenges we set ourselves:
- Keeping the weight down. The Zappelin should be reasonably small to be used in a living room.
- Keeping costs down by using an ordinary "TV style" IR remote most of us have lying around at home. (the high inertia of a blimp made this possible).
- Using the advantage of an Arduino over standard modelling RC equipment to use an alternative propulsion concept.

Here's a video of the ZAPpelin in action:

If you like this Ible, please give it your vote. Thanks!

STEP 1: Parts and Materials:

For a DIY Arduino board:
• 28-pin DIP IC Socket
• 16MHz crystal
• momentary push-button (optional)
• 10 k0hm resistor
• 2 x 22pF capacitors
• ATMega168 or 328 microcontroller chip
• breadboard style perf board
• a row of 6 female headers
• some thin wire

IR sensor:
• we used a PNA4602 type (as the ones Adafruit)

Hardware to program:
•USB to UART converter
•Arduino board (used as ISP for changing fuse bits)

Remote control
Any "TV style" IR remote control. We used an Apple one, but other worked too.

Software:
•Arduino 1.0 (or later)
•avrdude

RC gear:
• Two ultra micro servo under 2.5g (a regular type, not linear ones). We used a so called HK-5320 1.7 g servo, which actually weighs 1.9g with wires and connector. It turns out these have alimited mechanical range of about 100°. The slightly heavier (actually 0.5g heavier). HK-282A does have a 180° mechanical range, and would be my choice for a new build. I was not yet able to determine the mechancal range of the intermediate (in weight) HK-5330.
• Two extension leads with connectors compatible with the servos and one for the battery (the Hobby King servo connectors are compatible with the common “minium battery connectors”)
• A 1s LiPo battery around 2.5 to 4g.  Obviously you will need a suitable charger (not shown).

Balloon and helium:
• You can have your ballons filledat the balloon shop for a couple of euro or bring home a helium bottle (rented or bought, around 50 EUR for a canister + 50 balloons).
• The lift capacity of the balloon needed depends on the gear used. It should be about 20 to 25 g. Our first attempt was based on my favourite Zeppelin NT Mylar balloon carrying a good 17g. The Zeppelin NT blimp balloon can be ordered from Deutschen Zeppelin-Reederei GmbH (you can find it by clicking klick on "Produktubersicht", choosing "Accessoires" and scrolling down).
• To add an extra control function we needed more lift and added a latex balloon. Depending on temperature and moisture a latex balloon will last longer or shorter. The spare buoyancy needed for this project lasted roughly a day.
Remark: with an Arduino pro mini 3.3V we would have saved about 5 g and this would not have been needed.

For the fins:
• Some EPP sheet (Expanded PolyPropylene), 3 mm thick. We used a triangle with two 22 cm long to start with.
• Three times about 5cm of 0.8 to 1mm diameter carbon rod.
• a piece of extruded polystyrene (Depron or similar), 3mm thick, 35cm long, 5cm wide.

For assembly and trimming:
• Some sewing thread.
• Superglue.
• Scotch tape.
• A couple of grams of putty, to be used as trim ballast.

Tools:
• A precision soldering iron and solder
• A scale accurate to 0.1g.
• Scissors.

STEP 2: Making a Lightend Arduino Board + Changing Fuse Bit

We built a simplified perfboard Arduino. Something like this, but without voltage regulation, and a minimum of connectors. The row of headers is for power and uploading with an FTDI USB to serial cable.

The IR sensor is connected to Pin2 (input), Ground and VCC.

An Arduino pro mini 3.3V would be a ready made solution. Instead we built a minimal Arduino board and made it work on one LiPo cell (3.7V). The standard brownout voltage (low battery switch off) was below that value, but takes in account such a large margin that it didn’t work without changing it to a lower value.
We set it to 1.8V using avrdude.

To set the brownout voltage to 1v8, we have to reprogram the extended fuse bit.
First, make sure your arduino-board is functioning and the chip has the bootloader on it.
Then upload the arduino as ISP sketch on another arduino board (in this example, Arduino Uno)

Now, wire up the arduino board with your own board like shown here.

Now, install winavr. (Search on google or click here)

Go to cmd and type this line of code:
avrude -p m328p -c avrisp -P COM3 -b 19200 -v

Change m328p to m168p if you are using an ATmega168.
Change avrisp if you aren't using an arduino as ISP to your own ISP
Change COM3 to the COM port where your ISP is connected to

As shown in the picture, you can now read the fuse bits.
Standard arduino fuse bits are:

lfuse = 0xFF
hfuse = 0xDE
efuse = 0x05

We need to change the efuse to 0x06.
Type the following line of code in cmd to do this:
avrude -p m328p -c avrisp -P COM3 -b 19200 -v -U efuse:w:0x06:m

Again, you have to change this line to your own situation.
If everything worked out, the ATmega chip should be ready to handle lower voltages.




STEP 3: Testing in Preparation of the Sketch

We first determined the range and speed of the used tiny servo's with a classic sweep sketch on an Arduino Uno.

Unfortunatly, the tiny servos can only use values from 25 to 145 (instead of 180 normally achievable with Arduino commands), and in reality the corresponding range is only 100° (instead of 120° as expected. Dismantling such a servo showed the tiny potentiometer has this limited range. So there is not such a simple solution as changing the mechanical stop on the servo output axis. So we had to do with this range, but that worked out OK.

STEP 4: Fins

The carbon rod is attached to the servo horn with some sewing thread. After tying down, the thread is soaked in super glue for a stiff attachment. Excess thread and horn ends are cut, to allow for free movement of the horn later on.

The carbon rod is attached to the tail fin with some tape. Align carefully, so the fin will be perpendicular to the servo and fix in place with some drops of superglue where the rod protrudes from the tape.

We made the fins pretty large to start with to allow for trimming. The surface was finally almost halved. It was also clear the carbon rod stiffening the fin shouldn't be to long (first the rods were 8-9 cm instead of about 5-6 cm).

The servo horn is carefully bent to keep the fin away from the body of the blimp.

STEP 5: Assembly of the Zappelin

Mounting the parts on the balloon is all done with scotch tape. The board gets a backing in EPP sheet to brotect the balloon from the sharp component ends on the back of it. Also the servo's were isolated from the balloon with some foam, because the tiny servos can become quite hot in use.

A first test was made with one fin on the bottom. This allowed a limited control similar to my nano air swimmer.

Adding a latex balloon as a "head" (simply attached wit scotch tape on the knot) made room to add a second servo and fin. The two fins were put on the side, pointing downwards in neutral position.

Unfortunatly, the tiny servos used have a range of only about 100° (instead of 180° normally achievable with Arduino commands) so full backwards or forwards flapping is not possible. But, as upwards thrust is to be combined with any movement, this proved workable.

To get enough stearing response we did need to put the fins more outwards (larger lever arm). So we put them on a light beam (the length our extenson leads allowed, about 34 cm in total). The beam was from Depron (extruded polystyrene sheet) and scotch tape

STEP 6: The Sketch

We use a sketch in two parts:
one for reading/learning in a IR transmitter
one for flying

Click on the end of the page to download the ZIP file that includes the sketches


First, we used the sketch called IRsniffer to "snif" the IR pulses coming from the remote.
You have to connect a usb to serial converter to the arduino board.
First, press the key a on your keyboard.
Then, press the button on the remote you want to program.
You have to copy the IR data code from the serial monitor to the IRcodes.h file in the right command(forward, backward, ...).
And, That's all!

Then, just upload the final IRcommanderservo sketch.
Disconnect the usb-serial converter.
Plug in your battery and...
FLY!

Here you see a demonstration on how to program a new IR remote to the ZAPpelin




STEP 7: Flying

As usual with RC blimps the weight is trimmed (with putty) till it slowly floats downwards.
Flying is done with the following functions
Up
Forward + up
Backwards + up
left + up
right + up
Everything off = down

The weight is trimmed so any movement brings a slight upwards moment. The time of the intervals you chose to stop all movement is used to level out the flying altitude.

We enjoyed spending a lot of time trimming the servo parameters for each movement, to optimise the control for use in small spaces.

STEP 8: Some Ideas on Further Work:

The IR response could be improved in the sense that it would be good if 'is faster. That way the intervals between servo commands can be shortenned.

Making the learning completely "self contained" in the Arduino, thus without connecting to a computer would be handy.

Switching to an ATtiny would reduce weight and cost.

A helium friendly battle blimps version could be made by adding an IR transmitter (with some barrel to make it not to easy). When a blimp is "hit" by a shot it falls "dead" for some time. Of course battling with needles on the nose is more spectacular, but it waste a valuble natural source: helium.

14 Comments

ok if u guys put a rfid chip on it. then put long range rfid sensers around the shop linked to a controller comp u could pretty much turn the blimp into a zoned unit it'ill fly around ina circut of yr choosing.
No I do not have a kit. And I'm not planning on one.
You can replace the DIY Arduino board with an Arduino pro mini 3.3V to simplify things and add the sensor, 2 servo's, battery, balloon and foam sheet as listed.

If you are into a simpler blimp project check out this one: https://www.instructables.com/id/13-RC-Blimp/
Hello,

Sorry for the late reply.
I saw your article about your zappelin and i would like to build one like yours.
I wonder, do you have a kit ready for sale?

Thank you
Hello, I know you don´t knoe who I am but I am a great fan of everything that flies. I would like to ask if you could help me in building a zeplin. I think that it is fasinating...my mail is botmaluco@yahoo.com.br...if it is possible would you send me a tutorial, with a list of all the material necessary and the code...thank you very much
Great to hear we share a fascination.
But I'm not clear what kind of tutorial you wish for. This Ible is a tutorial, with a list of materials and the code for this specific type of blimp.
I can try and help you some more but then I should know more what kind of blimp you are thinking of.
Glad to bring inspiration.

Bare in mind the lift capacity of a hot air balloon compared to it's volume is much less than for helium, and for a solar balloon probably even more so. So you wil need a big balloon.

Also important is that to steer a balloon outdoors you ned quite some power
As volume varies to the third power compared to linear dimensions, this meens that helium filled outdoor RC blimp start at volumes of about cubic meter. For hot air balloons one should think of at least several cubic meters (see existing model RC hot air balloons without propulsion) Probably 10's of cubic metersfor propulsion in "no wind" conditions"

A hot air balloon with an RC controlled camera, tethered or fre flight) would be easier mith the tiny camera's and RC gear available today.

Existing solar balloons ar made out of black, very thin plastic sheet. In good conditions (sunny, yet cold) they create enough lift to carry themselves, but as soon the conditions are not perfect the balloons come regularely back down.

A concentrator sounds interesting, but it is not obvious this brings more extra lift than is lost with it's own weight and higher heat losses (higher surfave temperature).

Please keep me posted on any further calculations or experiments.

succes!



Your project caused me to think of a solar, GPS-guided hot air blimp. To be used in daylight hours, it would suspend a Mylar solar reflector beneath the blimp, reflecting a focused field of solar heat onto a matte-black panel on the underside of the envelope. It could be programmed via arduino, or radio controlled, with electronics and propulsion powered by active solar panels.
You were featured, ;-)

Very good
We were the second. The first place was for Four-On-A-Glow
It looks like it's behaving a little like a cross between an Ornithopter, and a fish, something I've been wondering about for some time, did you test any other shapes for the fins?

Where can one obtain such nice blimp shaped enveloped.
Thanks!

You can get the Zeppelin balloon from the Zeppelin Reederei.

I forgot to add a link were it was mentionned under materials and tools. I did now, but here it is for your convenience: Deutschen Zeppelin-Reederei GmbH (you can find it by clicking klick on "Produktubersicht", choosing "Accessoires" and scrolling down).
Can't believe I'm the first who comments on this. Such a lovely Blimp! It moves so gracefully! Love it, wonderful project.
This is totally awesome!!!!!!!!!!!!!!!!!!!!!!!!!!!