Gigantic Bubble Generator
From MAKE Magazine
This project first appeared on the pages of MAKE magazine.
Arduino-controlled Bubblebot blows enormous, undulating soap bubbles.
- Author: Zvika Markfeld
- Time required: A weekend
- Difficulty: Moderate
When I read the Geekcon 2010 call for projects, I thought, what the hack — I’ll do it. Inspired by Julia Cameron’s The Artist’s Way, I decided to let creativity into my life, and start inventing things.
I watched Sterling Johnson’s magnificent “Giant Stinson Beach Bubbles” clip on YouTube, and when I described it to my neighbor Yuval, he suggested that I combine bubble-making with Arduino, which I had been playing with. Bam! That was all I needed. I submitted the Bubblebot project idea, and it was accepted to Geekcon, where I had the exciting experience of collaborating with all these bright people and watching the design manifest from their suggestions.
People typically blow giant bubbles through a loop of absorbent cord held between two sticks. On my Bubblebot, the sticks attach to a hinged shelf that a gearmotor tilts down and back up by reeling fishing line tied to a lever. After each dip, a servo spreads the sticks and a fan blows air through the loop.
Since Geekcon, I’ve built two more versions of the Bubblebot, written an Instructable about it, presented it at a local festival, and gotten many great responses to it from both adults and children. I’ve also learned that making gigantic soap bubbles under diverse wind and weather conditions requires a human touch and intuition that two motors and a fan can’t imitate consistently.
I recently added an arcade-style console for remote manual control. Whenever the Bubblebot is switched from automatic to manual mode, a siren sounds to alert everyone nearby that the bot will now be driven by a human rather than by a flawless microcontroller
Sections
- Set up the frame.
- Add bubbling subsystem.
- Add switches and motor.
- Add the electronics.
- Build the remote arcade console (optional.)
- Program and test.
Tools
- Computer with internet connection
- Cordless drill and bits
- FTDI-to-serial programming cable/adapter for programming the RBBB
- File
- Handsaw
- Hole saw, 1" (27mm)
- Hot Glue gun & hot glue
- Pliers and wrench, (optional) for disassembling the arcade console joystick
- Protractor, (optional) for setting angle of fan mounting holes
- Razor saw
- Ruler
- Scissors
- Soldering Iron and rosin core solder.
- Wire cutter/stripper
Relevant parts
- Microcontroller kit, Really Bare Bones Board (RBBB), unassembled from Modern Device. This Arduino clone fits the project well because of its size and layout.
- Computer fan, 12v, tower/rack size, 3-pin preferred the higher CFM the better; it’s hard to compete with outdoor wind.
- Gearmotor, 6V-12V, 5-10 RPM I used a motor disassembled long ago from an old scanner or printer.

- Servo (generic), hobby, 13+ kg/cm torque

- Sawhorse or folding A-frame, 2'-2½' tall × 2½'-3' wide I made my own using lumber, two 1½" hinges, wood screws, and glue, but you can just buy one.
- L298N motor controller chip a dual full-bridge motor controller
- L298N breakout board
- Microswitch (2), momentary SPDT
- NPN Darlington transistor pair, TIP122G
- Spool to attach the gearmotor. I used a plastic solder spool.
- 7805 Voltage Regulator
- 1N002 diodes Connect as manuy as needed in series between your 12V power (-) and the L298N chip's VS pin to drop the voltage to whatever runs your gearmotor best. You can substitute other 1NXXX diodes as well.
- 1N004 diode
- resistors (2), 100Ω
- Insulated wire, 18-22 gauge, assorted colors, about 20'
- Breakaway header, 40 pin
- Heat-shrink tubing Electrical tape would make a good substitute if you don't have a heat gun.

Relevant parts (continued)
- Servo cables (10), 3-pin, 12" enough to chain together for 10'
- Project enclosure, 7"×5"×3" to hold circuit board
- Stripboard or perfboard, about 5"×3" to fit into project box
- Battery, 12V
- Barrel connecter, 5mm
- Dimensional lumber, 1×4, 12" or longer for the shelf
- Hinges (2), 1½" long with mounting screws
- Wood dowels (2), ¼" (6mm) × 2'-3' long or other strong, lightweight rods, for the cord holding arms
- Wood dowel, ⅜" (8mm) × 3' long for the tilt lever; cut to size after installation
- Cord, yarn, lace trim, or thick cotton string, 6' should be flexible, absorbent, and not prone to breaking or twisting into knots
- Fishing Line, monofilament, 6'
- Machine screws, with nuts and washers to mount servomotor to frame, and/or spool to gearmotor
- Wood screws, 1" and ½" to mount your fan, gearmotor, project box, and joystick
- Zip ties (12+), 10"
- Zip ties (12+), 4"
- Plastic tub, 4gal (approx) to hold soap mixture
- Wood glue
- Oil or grease
- Lamp cord and screw terminal block connecter, 2×2 (optional) for connecting large 12V battery
- Thin copper wire (optional)
- Paper or cardstock, and tape (optional)
- Distilled water
- Bubble solution from a toy shop or online
- Dishwashing liquid (14 oz)
- Liquid glycerin (14 oz) available from drugstores, natural foods stores, or online
- Plywood, 3'×1', ¼"-⅜" thick (7mm-10mm or so)
- Pushbuttons (2), arcade style, OBSF
- Switch, toggle, with safety cover
- Joystick, arcade style, 4-way digital i.e. on/off, rather than variably sensitive
- I/O expander chip, 16-bit, MCP23017 Get the MCP23017-E/SP through-hole version rather than a surface-mount package.
- RJ45 (Ethernet) connectors (2), female (AKA jacks), with PCB mounting posts
- Breakout boards (2), RJ45
- Cable, RJ45 (Ethernet), 6'
- Speaker, ¼W

- View:
- Paginated
- Full width

Edit Step 1
— Set up the frame.
¶
Start with a sawhorse or similar frame. Take the 1×4 shelf, measure about a third of the way down from the right side end, and saw a rectangular notch that exactly fits your servo body lengthwise. The servo will hold one of the cord sticks, and we’ll call this edge of the shelf the front.
It probably makes more sense to buy a sawhorse, unless you enjoy just about any kind of woodworking (like me) — in which case, check out how I built mine.
Attach 2 hinges along the back edge of the shelf, one at each end. Similarly attach the other sides of the hinges to the top of the sawhorse’s crossbeam, making sure that the shelf can swing 90° down — from flat horizontal to perpendicular to the ground.
Drill pilot holes for the screws to prevent the wood from cracking.
Along the front edge of the shelf, drill 2 pilot holes in the middle for attaching the fan, and another hole just past the fan mounting holes (opposite the servo notch) sized for the fixed cord arm. In the back edge of the shelf, drill a hole sized for the tilt lever about 2" from the end nearer the servo notch.
Mount the fan angled down somewhat, so that it blows underneath the arms where the loop will hang.

Edit Step 2
— Add bubbling subsystem.
¶
Place the servo in its notch, drill pilot holes for the supplied screws, and screw securely in place.
Level the servo with the shelf so that when it tilts straight down, the servo arm is oriented up and down, parallel to the shelf.
Fit one of the cord arms into its hole in the front of the shelf. Attach the other cord arm to the servo arm using short zip ties. Instead of zip ties, you can wind thin copper wire around the joint.

Edit Step 3 ¶
Cut the cord into lengths of 2' and 4'. You can make minor size adjustments later on, but these numbers should put you in the safe zone.
Loosely tie one end of each cord to the free end of each cord arm. Make sure you can untie the ends later for adjustment. Now, when the shelf is parallel to the ground and the arms are open, the cord should hang in a loose triangle.
Make a loose knot or tie a zip tie to the middle of the long cord, creating a smaller loop at the bottom of the main, larger one.
This small loop will help the main loop make its way back into the bucket when the arms tilt down, to prevent it missing the bucket and getting dirty (which weakens bubble formation).
If needed, you can tie a washer or other small weight to the bottom of the small loop.

Edit Step 4 ¶
Fit the tilt lever into its hole in the back edge of the shelf and tie the piece of fishing line to its free end.
It helps to file a small groove in the dowel to keep the fishing line knot in place.
Pull on the fishing line to manually test how much force it takes to pull the shelf (with arms attached) up to its topmost, horizontal position. It shouldn’t be too hard. The shelf should also fall down by itself if you let go. If not, make sure your hinges are properly aligned and oil them a little bit.

Edit Step 6
— Add switches and motor.
¶
Two micro switches act as limit switches for the hinged shelf, reversing the shelf’s direction when it reaches the top or bottom of its arc.
Solder 2' wire leads to the ground and NC terminals of one micro switch, and to the ground and NO terminals of the other. Hot-glue the NC-connected switch on top of the sawhorse’s crossbeam so that when the shelf swings up, it clicks the switch just before it reaches the top.
Hot-glue the NO- connected micro switch to the underside of the crossbeam so it clicks when the shelf hangs all the way down.
To get the micro switch positions right, it helps to glue them to small brackets cut from scrap wood rather than directly to the crossbeam.

Edit Step 7 ¶
Attach the spool to the gearmotor shaft. Mount the gearmotor to the back leg of the sawhorse on the lever side with the motor shaft parallel to the hinges.
The characteristics of the motor and spool that you use will dictate how you should mount them. Use your hacksense to come up with a good arrangement. You may need to add brackets, rollers, or other extra components.
Solder a 3' wire to each gearmotor terminal.
Tie the free end of the fishing line around the spool (the other end should already be tied to the tilt lever) and hot-glue it down so it doesn’t slip.

Edit Step 8
— Add the electronics.
¶
Assemble the RBBB (Arduino clone) kit according to the supplied instructions, but substitute a 7805 voltage regulator for the included L4931CZ50 regulator in the spot marked “VR.” Solder the L298N motor controller to its breakout board.
Plug the RBBB into the stripboard, perpendicular to the strips underneath. Use pin headers to solder the L298N breakout board alongside it so the Arduino D6 and D7 pins connect to the L298N IN2 and IN1, respectively.
Insert the MCP23017 16-bit I/O expander chip alongside so RJ45 pins 1–7 line up and connect with the I/O chip’s pins 0–6 in reverse order (e.g. RJ45 pin 7 to chip pin 0, RJ45 pin 6 to chip pin 1, etc.). The I/O chip’s pins 12 and 13 will connect to Arduino pins A5 and A4.
If you’re making the arcade console, fit an RJ45 jack onto an RJ45 breakout board and solder pin headers to plug it into another corner of the stripboard, so that an Ethernet cable can plug in at the board’s edge.
Page 1 of 2
