Jordi's been hard at work on the BlimpDuino code. Here
's the latest version, which he describes as follows:
"Wow, a lot to explain! I added a lot of interesting functions, it will blow your mind ;-)
First I added a smart delay system. If you need to delay() something you can use the smart_delay(1000) function, and it will delay the value between the () and spend the time capturing IR packets rather than doing nothing. This code improved the performance in the navigation routine 100%..
I also added an 'anti static' function for the motor, at the beginning you need to apply more force to the motors in order to move it, well this "dead zone" was screwing my system, so i modified the motor functions, to pulse the motors for 10 milliseconds with a higher power (like 80%), and then back quickly to the desired speed, so now the blimp is more reliable than ever...
I also added two autopilot state modes, hold altitude only and hold altitude and navigate mode... Blimpduino will enter to hold altitude only mode, when the IR beacon is not preset (does not detect any IR packets), it will use only motor power (vectoring thrusters pointing down always) to maintain altitude, which is like stand by.. If there any IR packets in the air, it will enter to hold altitude and navigation mode, using the vectoring to hold altitude...
I improved the battery protection system, now with the new power regulator is working better than ever... it can read the real voltage of the LIPO... amazing... "
Also added is a very efficient hardware PWM to drive the servos. Note that in doing this he discovered a serious bug in the standard Arduino servoTimer1.h library. Somehow the upgrade from Arduino 11 to Arduino 12 broke this servo pulsing library, so after lots of time wasted debugging this, he wrote his own library, which is included in the above code. (It only works for Pins 9 and 10).
You can see his video of the blimp in action here
. Note that the code now lights up a blue LED in the direction that it sees the IR beacon, so you can see the navigation routines working in real time.