Lately my son and I got some how mad about the idea of building our own remote controlled blimp. The basic requirements we had in mind were: a helium filled balloon must lift the blimp up in the air, and it MUST be remote controllable in its direction and altitude. Well, fine, we could do that, others did that as well (see this sub-micro-blimp, oder that micro-blimp, or the very profesionell „ARM“ blimp from the picture below).
But it turned out to to be NOT that easy. Until now, we succeeded in getting a very early (and glumpsy) prototype up in the air, and at least controll it some how. Thus, if you watch the videos in this article, keep in mind, that this is work in progress, and we expect to come to a better result very soon.
2. The Hardware
For a basis, we used the propellers and the moters of a broken microcopter. Those motors indeed where very lightweight, and the asumption was: if they could lift a microcopter, they will drive a blimp. Unfortunately, while mounting one of the motors, I ripped of a cable, which I was not able to solder back on again. Thus, we had to take a micro server apart to get it's motor for a replacement.
To drive the motors forth and back, H-bridges are needed. We decided to take the SN754410 from TI since it is cheap, and easy to integrate.
Now, the hardest part is to remote controll all the motors. It would have bean fairly easy taking one of those very small micro receivers (like this one), and use for all motors servo motors with their electronics. Only problem: the receivers are fairly cheap, but you need a remote controll which is not (and so far I have no other use for such a remote controll).
So, we thought an XBee would be the right choice since it offers to controll its 8 digital IOs remotely. Exactely what we need. As a remote, an other XBee connected to a PC would do a great job.
Well sounded good, turned out to be a little problematic regarding the powersupply:
The XBee (Pro, Series 2) draws about 50mA when receiving, and up do 120mA when sending. Wow, thats a lot! Also the XBee is picky about the voltage it is willing to work with. We where not able to operate the XBee and the motors from the same powersource, without having the XBee braking down constantly when sending it's ACK packages (no wonder when it uses 120mA). Also the XBee is very picky about the voltage you supply. It is specified to work in between 3.0-3.4 volts. Well a LiPo cell supplies 3.7V (or even more if freshly charged). Thus, two powersources (one for the motors, one for the XBee) and a voltage regulator are needed to satisfy the XBees needs. As you could imagine, this will be a major issue when it comes to weight discussion.
As frame to mount the motors and all the other stuff on, piece of 4mm carbon fiber tube was used (we recycled a broken one from a kite). When it comes to mounting things on the frame, hot glue is your friend ...
1. Used Components
The table below show a detailed list of components used for the blimp:
|1||Digi XBee Pro S2||Connected to PC, sends remote commands|
|1||Digi XBee Pro S2||Receives remote commands, operates the H-bridges through its GPIOs|
|2||TI SN754410||Quadruple H-bridges, each capable of operating two moters back and forth|
|1||STM LM1117||Low dropout 3.3V voltage regulator for the XBee|
|3||DC Motors||Micromotors from servo and broken microcopter|
|3||Propellers||Taken also from broken microcopter|
|1||Microstar LiPo 130mA||LiPo single cell batery for XBee|
|1||Microstar LiPo 160mA||LiPo single cell batery for motors|
|1||Carbon fiber tube||4mm tube as used for kites|
|1-5||Ballooons||The number of balloons needed depends on the size of the balloons|
|1||Helium kanister||For the balloons|
The following figure shows how the components are wired up:
Note: That voltage reulator thing for the XBee is not quit satisfaying and only works barely since the voltage of the LiPo battery is always very close to the dropout voltage of the LM 1117. Thus only a regulator with low dropout could be used, and it only works since the LiPo has about 4.2 volts at the beginning.
3. The Weight Problem
..or what is a balloon able to lift ...
When putting all the above components on the frame, we ended up with a total weight of 30-35grams! Sounds not much, but it is. At least for a helium filled balloon. A normal sized party balloon is able to lift about 10grams. So either you need 4-5 of them, or one big balloon. Taking 4-5 balloons does not work that well since it makes the blimp super glumpsy and hard to steer (as you could see in the attached video). So next we will try using one big balloon with a diameter of about 50cm. It is said, that such a balloon is able to lift about 60-90grams. A far more better solution would be saving weight (we are thinking of that too, yet I don't know how to solve that XBee issue).
For the weight of the components, see the pictures.
4. The Software
Since the XBees firmware alredy allows to control its GPIOs, only the software for the PC to send the remote commands has to be written. I first gave the C based "libxbee" library from Atti a try, but the XBee, the library and I did not get along that well, and I was not willing to invest much debuging time. Thus, I switched to Andrew Rapps Java based XBee API and wrot a very basic application to remotely switch the GPIOs to controll the motors. The program just waits for some defined keys, and then sends the according remote AT commands to the blimp.
The program (called "xzrem") takes the following parameters as commandline arguments:
|serial port||mandatory, port to which the coordinator is connected to|
|speed||mandatory, speed in bauds at which coordinator operates|
|address||mandatory, 64bit address of remote XBee in the form aa:bb:cc:dd:ee:ff:gg:hh|
|motor mode||optional, give "excel" to operate each motor eclusively|
./xzrem /dev/ttyS1 9600 "00:13:a2:00:40:61:30:09"
In the main window, the following keys are realized:
|F5||connect to coordinator (do this prior any other command)|
|SPACE||stop all motors|
For more details see the code and the README on github.