Ollie is an open source blimp-based autonomous and ambient robot that dwells in human habitats. Ollie is observant, often flying in a manner suggesting curiosity for the world around him. Ollie reacts to voices by excitedly flapping his wings, communicating his friendliness and eagerness to be noticed. Ollie wants to know about humans and yearns for their attention.

Ollie is available to DIYers, hobbyists, artists, designers and students under the Creative Commons Attribution-ShareAlike 3.0 Unported License.

Ollie has an Arduino brain, wings to fly and a microphone to listen. In this instructable I will teach you how to make Ollie so you can meet him too. Please contribute suggestions, experiments, tweaks, hacks and discoveries of your own process here and comment on ollie.nilaratna.com. Thank you!

Step 1: Parts List

The main parts needed are :

* 1 Arduino Pro Mini 328 – 5V/16 Mhz
* 1 FTDI cable or breakout board to charge Arduino Pro Mini
* 1 Electret Microphone
* 1 Polymer Lithium Ion Battery 850 – 900 mAh
* 2 Blue Arrow 3.6 Gram Micro Servos
* 1 36″ Mylar balloon envelope
* 1 30 guage wire/ wire-wrapping wire in 2-3 colors
* 1 LED
* 1 Sheet of Mylar or foil for wings
* 1 Spool of sculpture wire for wings
* 1 Helium tank or access to a party store
* 1 Switch
* 1 3.9 KΩ resistor
* 1 4.7 KΩ resistor

Additional items

* Arduino Uno or other (for testing)
* Breadboard
* 22 or 24 guage wire
* Lightweight tape
* Small weighing scale
* Soldering iron and solder
* Quick-setting Epoxy
* Glue gun
* Playdoh or clay
* Small cups
* Cutter
* Wire stripper
* Wire wrapping tool

Step 2: Circuit

Step 3: Making the Wings

Bend sculpture wire to create 2 identical wing shapes. Try to conserve amount of wire used to minimize weight. Use epoxy to secure the ends.

Attach servo accessory to the ends of the wings keeping check of orientation and secure with epoxy. Secure with small pieces of tape if necessary.

Cut out identical pieces of Mylar or foil and attach to wire shapes using a glue gun. Leave the foil loose when attaching so it takes a hemispherical shape when wing is flapped.

Attach wings to the servo.

Wire up the servos using wire-wrapping wire.

Step 4: Wiring Up the Servo

Plug the control wires from the servos to digital pins 2 and 4 and connect to 5V power and ground on a breadboard and/or Arduino Uno (for testing)

Upload a basic servo program to check wiring making sure that both wings exhibit identical motion.

If wings are not moving check continuity in circuit, secure connections and try again. If circuit works, disconnect and prepare wiring for Arduino Mini Pro.

Insert servos through 2 small identical plastic cups and glue to secure in place. Make sure wings move without any obstructions. Cups are useful in attaching wings to the balloon and hiding wires.

Step 5: Attaching Wings to Blimp

Mark points on the empty 36" blimp envelope where wings will be mounted. Points should be in exactly opposite on the balloon surface and provide balance to the blimp.

Cover the cups with Mylar foil using glue gun.

Fill up 36" Mylar envelope with Helium.

Attach servo cups to the balloon using small pieces of tape. Let wires hang loose.

Cover the tape with pieces of Mylar or foil. Silver metal tape can also be used.

Step 6: Setting Up Electret Mic

Power the Electret mic through Arduino Uno as shown in circuit diagram using 2 resistors of 3.9Kohm and 4.7Kohm. Control wire should be plugged into analog pin 2 of Arduino.

Connect LED to digital pin 13 on Arduino Uno.

Make sure all connections are secure.

Resistors are used to increase the amplification of the signal received from the Electret mic and should be wired correctly.

Run this simple program to make sure input is being received. LED will light up whenever a certain threshold of volume is reached. This threshold should be set to a normal or loud talking volume.

int buffer = 0;
//Sound variables
int potPin = 1; // select the input pin for sound sensor
int ledPin = 13; // select the pin for the LED
int soundVal = 0;
void setup()
  pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT
  Serial.begin(9600); // open the serial port at 9600 bps:
void loop()
    soundVal = analogRead(potPin);
    if( soundVal>1020 ){
      Serial.println("VERY LOUD!");
    else if (soundVal<450 || soundVal >750){
      if (buffer == 0){
         buffer = 15;

If the circuit is not working play with the values in the program and make sure resistors are wired correctly.

Step 7: Connecting Everything

Wire everything up according to the circuit diagram. Attach toggle switch and LiPo battery to the circuit. Solder all the wires directly to each other and secure with hot glue.

Upload the final Arduino sketch given below to the Pro Mini using FTDI cable or breakout board.

Solder connections to the Arduino Pro Mini very carefully according to the circuit diagram.

Attach circuit to bottom of balloon using small amount of foil or tape.

At this point circuit will be light enough to be lifted by the balloon or just the right weight to keep it in equilibrium. Adjust with a small amount of clay if circuit is too light.

#include <SoftwareServo.h>
SoftwareServo myservo; // create servo object to control a servo
SoftwareServo myservo2;
int goUp = 0;
int val = 0;
int wait = 0;
int flyFor = 0;
long flapTime = 0;
int angleMin = 0;
int angleMax = 120;
int upSpeed = 20;
int downSpeed = 1;
int buffer = 0;
//Sound variables
int potPin = 1; // select the input pin for sound sensor
int ledPin = 13; // select the pin for the LED
int soundVal = 0;
void setup()
  pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT
  myservo.attach(2); // attaches the servo on pin 2
  Serial.begin(9600); // open the serial port at 9600 bps:
void loop()
  // Servo
  if (flyFor < flapTime){
    if (wait == 5){
      if (val < angleMin){
        goUp = 1;
      else if (val >angleMax){
        goUp = 0;
      if (goUp == 0){
      }else {
    if (wait > 200)
      wait = 0;
// sets the servo position according to the scaled value
    soundVal = analogRead(potPin);
    if( soundVal>1020 ){
      Serial.println("FREEAK OUT!");
      upSpeed = 15;
      downSpeed = 15;
      angleMax = 45;
      angleMin = 10;
      flapTime = 6000;
    else if (soundVal<450 || soundVal >750){
      if (buffer == 0){
        upSpeed = random (1, 20); //1 to 30
        downSpeed = random (1, 30);// 1 to 30
        angleMax = random (110, 120);
        angleMin = random (30, 45);
        flapTime = 10000 + random (5000 , 10000);
        flyFor = 0;
        buffer = 15;

Step 8: Ollie Can Fly!

Ollie is ready to fly. Turn the switch on so Arduino Pro Mini is powered with the battery. Ollie will flap his wings whenever he hears you talk or a loud sound is made. Ollie will randomly burst into flight and bring happiness and joy in the life of many.

Please submit your experiments, tweaks, hacks and suggestions here and comment on www.meandollie.com . Ollie would love some friends.

Step 9: Helpful Tips

Everything adds weight, so be frugal with materials. Use Playdoh or clay to balance if blimp is too light.

If LiPo battery 900mAh is unavailable, replacement battery should be ~18.5g (0.65oz) or less.

Helium runs out of Mylar slowly, Ollie will fly for at least 1.5-2 days before it needs refilling.

Check entire circuit on breadboard or Arduino Uno before wiring or soldering to the Arduino Pro Mini.

Be very, very careful while soldering to Arduino Pro Mini, the chip can get burned easily.

Test servos and make sure wings are oriented correctly and moving in mirrored direction.

Make adjustments to the code as is fitting to your environment.
Pretty good thanks for share
<p>nice project. can be a concept for many more ideas. thumbs up</p>
<p>How could I save this data in a .wav or any other format for playback?</p>
I love the idea and will probably build one soon only using the ATtiny 85... I'd like to make a hot air balloon equivelent to ajdust the elevation more acurately... thinking about using a buetane lighter with an adjustable flame. <br>
Ollie is soo cute and i wish i had one!
you should really use this with an ATtiny 45/85 microcontroller programmed in arduino. It has only 5 IO pins, 2 are pwm, 3 are ADC. this anly uses 4 pins, so this tiny controller is perfect, and at around $1.50, it is way cheaper that the arduino pro mini, you could make a dozen or more.
WOW ! I will use this idea in my negative thinking :P heheheheehhahahah<br>The World is unsafe
it's so cool!!! <br>i really want to make mine!...<br><br>i wonder... if you make his wings a little bigger, and plane.... it would gain some altitude when hear sound. i mean, for it not to touch the ground... <br><br>anyway, maybe i will try...<br><br>greets
how much did you spend <br>
I have been working on it for a year for my Senior Thesis. The total cost of the main parts is under 50 bucks (woo!!). However, I worked on 5 or so different prototypes before arriving on this one. I spent a lot on parts I never even used. A estimate of those costs is perhaps upwards of $400.
I want to make this so I went in search of parts. Thought it would be nice to have a more complete list of where to get things and about how much everything costs. I'll update this list if I can find cheaper parts (and if it lets me). This is what I found:<br> <br> <a href="http://www.sparkfun.com/products/9218">1 Arduino Pro Mini 328 &ndash; 5V/16 Mhz</a>&nbsp;- $18.95<br> 1 FTDI cable or breakout board to charge Arduino Pro Mini<br> --- <a href="http://www.google.com/products/catalog?q=ftdi+cable&um=1&hl=en&bav=on.2,or.r_gc.r_pw.&ie=UTF-8&tbm=shop&cid=13412712673349640211&sa=X&ei=RTfUTfumEKPmiALY55iZAg&ved=0CF0Q8wIwAA&biw=1416&bih=847#">FTDI cable</a> - $17.95&nbsp;<br> --- <a href="http://www.google.com/products/catalog?q=breakout+board&um=1&ie=UTF-8&tbm=shop&cid=17153922806958900575&sa=X&ei=aDfUTfqZKPTSiALXtfy6Ag&ved=0CDIQ8wIwAQ&biw=1416&bih=847#">Breakout board </a>...? - $4.95 (is this what you were talking about?)<br> <a href="http://www.sparkfun.com/products/9964">1 Electret Microphone</a> - $7.95<br> <a href="http://www.sparkfun.com/products/341">1 Polymer Lithium Ion Battery 850 &ndash; 900 mAh</a>&nbsp;- $8.95<br> <a href="http://www.rctoys.com/rc-toys-and-parts/BA-36G/RC-PARTS-BLUE-ARROW-SERVOS.html">2 Blue Arrow 3.6 Gram Micro Servos</a> - $21.90 (2 x 10.95)<br> 1 36-inch Mylar Balloon Envelope<br> --- <a href="http://www.rctoys.com/rc-toys-and-parts/MACH-SENV/RC-PARTS-BLIMP-HELIUM-BALLOON-ENVELOPE.html?utm_source=googlebase_froogle&utm_medium=US&utm_term=MACH-SENV">www.rctoys.com</a> - $10.95<br> --- <a href="http://www.sfparty.com/products.php?product=Balloon%3A-Round-Silver-Size-Selections">Local San Francisco Party Store</a> - $6 (Will this work as well or do I need to get it from the site you listed?)&nbsp;<br> <a href="http://www.radioshack.com/product/index.jsp?productId=2062640&CAWELAID=107598440">1 30 guage wire/ wire-wrapping wire in 2-3 colors</a> - $4.19<br> --- I figure I can just mark the wires with sharpie or something similar to save money<br> 1 LED - $1.50<br> --- Probably too expensive to order online, better to find it at a local store (at-<a href="http://www.radioshack.com/product/index.jsp?productId=2103802 ">RadioShack</a>)<br> 1 Sheet of Mylar or foil for wings<br> --- Do you think this <a href="http://www.dickblick.com/products/grafix-clear-lay-assorted-colors/">mylar-like paper</a> work? - $3<br> --- I chose Blicks because it has locations close to me and thought it wouldn't be cost effective to ship.<br> Sculpting Wire<br> --- What about<a href="http://www.dickblick.com/products/galvanized-wire/?wmcp=google&wmcid=products&wmckw=33405-1032 "> Galvanized Wire, 18 gauge</a>? - $3 Blick<br> --- What gauge was your wire?<br> 1 Switch<br> --- Will this <a href="http://www.radioshack.com/product/index.jsp?productId=3020764 ">switch</a> work? - $3<br> --- What switch did you get? (I'm concerned about weight)<br> 1 3.9 K&Omega; resistor<br> --- <a href="http://www.radioshack.com/product/index.jsp?productId=2994581 ">1/8-Watt 4.7K Ohm Carbon-Film Resistor</a>&nbsp;- $1.19<br> --- Will this resistor work?<br> 1 4.7 K&Omega; resistor<br> ---&nbsp;<a href="http://www.radioshack.com/product/index.jsp?productId=2062327&numProdsPerPage=60 ">3.9K ohm 1/2W 5% Carbon Film Resistor</a>&nbsp;- $1.19<br> --- Will this work?<br> <br> I didn't want to get into the Additional Items, since I'm low budget. I just wanted to create a list of where I can get the components, and where everybody else can, and roughly how much it would cost.&nbsp;<br> <br> Total (without shipping/tax) =<strong> 86.39&nbsp;</strong><br> **This is if I can get the cheaper parts I listed above. Also <strong>without</strong> tax and shipping on some parts.<br> <br> Anybody know where to get stuff cheaper? Or do I just have to gather the parts slowly?
Here are some updates to the list, parts I recently found cheaper when I was looking to buy some of them.<br> <br> <a href="http://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l2736&_nkw=4x+3.7g+Mini+Micro+Servo+RC+plane+Helicopter+Boat+Car" rel="nofollow">3.7 Gram Micro Servos</a>&nbsp;~$9 for 4 of them<br> <br> <a href="http://www.ebay.com/itm/Arduino-Pro-Mini-5V-16MHz-MEGA328P-2-Breakaway-40-Pins-header-/220911375199?pt=LH_DefaultDomain_0&hash=item336f58135f" rel="nofollow">Arduino Pro Mini w/ Convenient breakaway headers</a> ~$14
Thank you for compiling this. I might add this is to the instructable as many people have questions about cost. Everything is fine including the switch and balloon. The only thing you got wrong was the breakout board. For the microphone this is all you need : http://www.sparkfun.com/products/9964
So you need to also get the FTDI cable to charge it?
i whent th the lik and evevthing added up wass 97.79 cuzz i wold have to buy some of the stuff like adrino
Did you mean Arduino Pro (additional us$ 50)? You don't really need it, it is just convenient to test your circuit on. If you have a breadboard, you can just use the Arduino Mini itself.
this is it i posted it a while a go but here it it i thin il make this<br> <br> <a href="https://www.instructables.com/id/Mousebot-Revisited/">https://www.instructables.com/id/Mousebot-Revisited/</a><br> <br> <br> look at this you colud take the brais out of this bot put it on the bottom of the baloon insted of the mortors you could use fans for the wings but so it gose back and forith not up and down put the light snsers ot the front of the ballon and the momantary swich on the front and and have a momantary switch on the top hooked upto a capasater and a fan so if it hit the roof it would come back down
no like buying the pro mini and evrthing from scratch i have some of the stuf laying round tho iv never used aduino and did you se mr desine
The list of parts with links to where they were sourced (with pricing) is available here: http://meandollie.com/make/
pritika thx for this lovely idea, i really love it!<br><br>i already bought all the parts and started assembling them, but am facing a problem, hoping you can help me out.<br><br>When i connect the board with usb directly everything works fine &amp; seems programed very well, but when i connect the 3.7 lipo battery i feel its very low voltage for it, and none of the servos work, but if i disconnected one of the servos the other one work but kinda slowly !!<br><br>what do you think the problem ?
does it need a step up or something to get 5v out of the 3.7 battery ? cause you didn't mention this out if it does need.<br><br>Please help me cause everything connected right and the only thing missing is the battery issue.
hi.....i need your help
Forgot to mention am a developer in Beenaproject.com , we featured Ollie on our site while ago, we loved it and wanted to make one here.<br><br>you can check it here : http://www.beenaproject.com/?p=1269 =)
I have already started building it, i just have ti wait for the rest of the parts to come in the mail i am sooooo excited to have my new house pet!
Excellent! Good luck to you.
i have found your tips very helpful...here in pakistan all components are not avaiable...so please if you can suggest some aternatives from where i can buy them..thank you
say if i didnt use any of the additional items will Ollie(love that name) be any diffferent?<br>
I have to build one!
Hello,<br>This is wonderful. I want to try it. How do you &quot;program&quot; Ollie? Is there a step by step process for us folk who might not be familiar with &quot;running&quot; a program?Great job... so cool!
This is great. Saw it during the Parsons Festival.
This is so cool! I can't wait to build one! (well, as soon as i find some helium!)
There are two changes I needed to make to get this to work, one is that I moved the microphone control to pin A1.<br><br>Second, I had to modify the servo calls (I used the sample with the Arduino uploader to make the changes.) It works great! I have it all on the breadboard but it is now ready for soldering!<br><br>Thanks again for such a great project! Plus the troubleshooting was fun--it made me get in the code and work to understand what was going on to get it to work so I ended up learning a lot more this way. This is my first Arduino project.<br><br>Matt<br><br>Here is the modified program with redone servo calls:<br><br>#include <br>Servo myservo; // create servo object to control a servo<br>Servo myservo2;<br>int goUp = 0;<br>int val = 0;<br>int wait = 0;<br>int flyFor = 0;<br>long flapTime = 0;<br>int angleMin = 0;<br>int angleMax = 120;<br>int upSpeed = 20;<br>int downSpeed = 1;<br>int buffer = 0;<br>//Sound variables<br>int potPin = 1; // select the input pin for sound sensor<br>int ledPin = 13; // select the pin for the LED<br>int soundVal = 0;<br>void setup()<br>{<br> pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT<br> myservo.attach(2); // attaches the servo on pin 2<br> myservo2.attach(4);<br> Serial.begin(9600); // open the serial port at 9600 bps:<br>}<br>void loop()<br>{<br> // Servo<br> if (flyFor &lt; flapTime){<br> if (wait == 5){<br> if (val &lt; angleMin){<br> goUp = 1;<br> digitalWrite(ledPin,HIGH);<br> }<br> else if (val &gt;angleMax){<br> goUp = 0;<br> digitalWrite(ledPin,LOW);<br> }<br> if (goUp == 0){<br> val-=upSpeed;<br> }else {<br> val+=downSpeed;<br> }<br> }<br> wait++;<br> if (wait &gt; 200)<br> wait = 0;<br> myservo.write(val);<br>// sets the servo position according to the scaled value<br> myservo2.write(120-val);<br> flyFor++;<br> }else{<br> //Sound<br> soundVal = analogRead(potPin);<br> Serial.println(&quot;Listening............&quot;);<br> if( soundVal&gt;1020 ){<br> Serial.println(&quot;FREEAK OUT!&quot;);<br> upSpeed = 15;<br> downSpeed = 15;<br> angleMax = 45;<br> angleMin = 10;<br> flapTime = 6000;<br> }<br> else if (soundVal&lt;450 || soundVal &gt;750){<br> if (buffer == 0){<br> Serial.println(soundVal);<br> upSpeed = random (1, 20); //1 to 30<br> downSpeed = random (1, 30);// 1 to 30<br> angleMax = random (110, 120);<br> angleMin = random (30, 45);<br> flapTime = 10000 + random (5000 , 10000);<br> flyFor = 0;<br> buffer = 15;<br> }else{<br> buffer--;<br> }<br> }<br> }<br>}
Best idea ever: have a small speaker attached and have him be able to make comments using the voice of the Turrets in Portal! :D
Put a micro camera and a transmiter, and voila, a watching drone...
I thought of that but decided that Ollie will not be another watching drone. There are far too many out there and the idea of blimp surveillance would send Ollie in a different conceptual direction altogether.
I think the addition of a camera would be wonderful too, but not for the same reason. If you have an onboard camera it would allow you, as long as the arduino/other brains have the capability, to do gestural interfacing, navigation, or even people identification. Given the current hardware, you might be able to do voice command recognition, or possibly (perhaps with a second mic) locating the source of the command so you could say something like &quot;Come here Ollie!&quot; and it would probably do that, it could also fly towards or away from loud crowds. While we're on the subject of features, perhaps some LEDs and a simple light level sensor to enable a dim light show on the surface at night<br><br>Awesome project by the way, now I want one! This ible could definitely use more photos though, maybe even a time lapse of the build (everyone loves a good time lapse).
Yep, the idea of the watching drone, just kidding lol
Looks really great, and he's so social! ;-)<br>I would love to have a space for which i could build one.<br><br>Add it to one of the contests - ill vote for sure.
This reminds me of my sons aquarium. In particular the Tiger Barbs. They are a beautiful silver with black vertical stripes and little red highlights. They are really curious and very cute when they school and swarm to investigate something. A school of these balloons with a &quot;flocking&quot; control program would be mesmerizing!
this is cool 5/5, this just reminds me of something i saw way back; <a href="http://www.festo.com/cms/en-au_au/11469_14860.htm#id_14860">http://www.festo.com/cms/en-au_au/11469_14860.htm#id_14860</a><br> but ur 1 is cooler<br> <br> p.s. but it anyone does make a robot like the manta ray in the clip, send me a link to it plz
I really like this, I might just make one, with my own variations of course.
So...do you have a kit of this for sale or...sell the thing assembled(just needing put the Hellium in the balloon)?
The list of parts with links to where they were sourced from is available here: http://meandollie.com/make/
There is no kit for sale as of now. You would have to order the parts separately or improvise on things you might already have.
I need a bit closer look at how to attach the servo to the wing please.<br><br>Thanks, looking forward to assembling this!
Just added a new image for a version I built this weekend. I used some silver metal tape that is strong enough, but you can use regular tape as well and then hide it with mylar.<br><br>https://www.instructables.com/id/Ollie-a-DIY-autonomous-robotic-blimp/step4/Wiring-up-the-servo/
<a href="https://www.instructables.com/id/Mousebot-Revisited/">https://www.instructables.com/id/Mousebot-Revisited/</a><br> <br> <br> look at this you colud take the brais out of this bot put it on the bottom of the baloon insted of the mortors you could use fans for the wings but so it gose back and forith not up and down put the light snsers ot the front of the ballon and the momantary swich on the front and and have a momantary switch on the top hooked upto a capasater and a fan so if it hit the roof it would come back down
A hobbyist told me that Helium comes in purity grades, ergo higher <br>purity helium is lighter = more lift.<br>Anyone Know more ??<br><br>A
Bulk helium supplied for industrial uses doesn't have a lot of variance in it. The low grade (4.5) helium supplied for welding here in Canada is 99.995% pure. The very high grade (6.0) &quot;research grade&quot; helium that they use in gas lasers is 99.9999% pure. <br><br>I doubt the difference in moisture content or other contaminants between the two would be observable in the gas volume this blimp's envelope would require.

About This Instructable




More by pritika.16:Ollie - a DIY autonomous robotic blimp 
Add instructable to: