Intro: Duck, Duck, Bubbles
Yeliz here, excited to share a couple projects I got to do with Sony as a guest Maker-in-Residence for their new MESH product! For those not familiar, MESH is a series of basic Blue-Tooth connected sensors and physical components to help any beginner get started with DIY IoT projects. Check out their website for more information.
MESH is a great product for any level, as it doesn't require coding skills to use but does have the capability. They will likely be found in schools and kits in the future. I decided to do a couple of projects to showcase how this can be used as a great learning tool for both adults and kids. I recommend this DIY bubble blower project especially for parents with children as a creative and technical bonding experience. There's a lot of room for creativity and play, while some basic concepts of physical computing are introduced.
List of Parts:
Bubble blower mix + small wand
Double sided tape
Hot glue gun
Small Brushless Motor
4-Slot AA Battery Holder
MESH Button and 2 GPIO Tags
Step 1: Make Your Character.
I made a duck to fit the bubble concept and keep a cute friendly tone. I've provided an image for you to print on an 8.5"x11" paper. Make sure the head is at least 3.5 inches in diameter, not including the duck bill.
Cut the outline of the image and then trace it onto a piece of cardboard and cut that out.
Glue the image cutout onto the identical cardboard cutout.
For those of you who want to make your own design:
Using Adobe Illustrator, I started by designing a head and a body separately. The head needs to be at LEAST 3.5 inches in diameter, in order to hide the motor and bubble wand completely. I limited myself to almost all perfect circles, to keep a cute/bubbly feeling.
After the body and head are designed, I did a quick mockup to make sure the movement of the head doesn't allow for gaps or look awkward. Seems ok. Color it in, go ahead and print it and cut it out. This step shouldn't take more than twenty minutes. You can even skip Illustrator and work directly with paper and pen if you really want to.
Step 2: Make Your Scene.
I took this image of water I found online and just photoshopped it a bit to suit my needs. You can use this one or do a quick image search for one.
Cut out the waves from the two images.
The width of the whole scene is about 10".
The height of the foreground is about 3.5" and the background is about 4.5".
Cut a square of cardboard to glue them to with a glue stick.
I didn't bother cutting out the waves into the cardboard, so my waves are very flimsy. The whole thing is put together with cardboard and a hot glue gun.
Cut out a base and structural piece.
They will be placed about 4" inches apart from each other, so the base should be about 10" by 4".
Next, cut out a short piece of cardboard to hold up the foreground and background. Make room on the base to glue the foreground and background to it, then add a structural piece that fits snuggly between the two. This structural piece should be shorter than the foreground, and it will be used to hold up the body, so closer to the center is better. I placed mine a bit too far out.
There will be a few more identical structural pieces that sit right next to this first one, so you should actually cut out a few of them, because they will later be used to hold up the body.
Step 3: Configure Servo Wiring and MESH Recipe
Wire the servo
Setup is simple, but if you get confused, look at the photo.
The battery case will have a black wire [Ground] and a red wire [Power].
Wire Power to the red or middle wire of the servo.
Wire Ground to the black wire of the servo.
Wire from GPIO ground to ground on the servo.
Wire from GPIO PWM to the brightest colored wire on your servo. Usually it will be yellow, white, or orange.
The GPIO PWM node is the bottom-right plug on the tag when the I/O label is upright.
The GPIO Ground node is the top-right plug on the tag.
Setup the MESH Recipe
To check that the system works, you'll need the MESH app. In the app, each new project is called a "Recipe". If you don't know how to use MESH, do the tutorial.
In your recipe, make sure you have your Button and both GPIO tags connected. Rename the GPIO tags to "SERVO" and "FAN". The components should be connected in the order below. The formatting reads as COMPONENT[name if named] -> Setting -> Value.
To control the servo, the PWM settings are as follows:
PWM = 0: Servo Power Off
PWM = 1: Position angle = 0
PWM =~ 13: Position angle = 90
PWM =~ 25: Position angle = 180
I suggest putting a Timer and then another FAN in the workspace and linking them all up so that it looks like the second screen shot.
Have the first SERVO setting to PWM = 1, and the other set to 25. When you click the Button, the servo should to position angle 0, wait a second, and then go to position 180. Play around with these numbers and get a feel for them. They're not perfect, they do the job.
Step 4: Set Up Head
For your reference, the last photo is what the head-rig is going to look like by Step 6.
Affix popsicle stick to servo
Now that you have the controls for the servo figured out on the MESH app, you need to mark the back of the duck to ensure you put it in the right position before you glue or tape anything.
Start by ensuring the best position for the servo. Remember it only moves 180 degrees, so you have to be careful that you position it so that it can move where you want it. Also note the direction of the servo- you want the gear to be facing toward the duck's head.
Once you ensure the angle, affix the servo to a popsicle stick. Servos always come with little gears and screws, but the screws might crack the wood. What I did was use a push-pin to poke a hole through the stick and wiggle it around, and then screw the popsicle stick to the gear that is already on the servo.
Test position of servo and mark it
Tape the popsicle stick to the back of the head and figure out the optimal position to place the servo, as seen in the first photo. Hold the servo such that it stands vertically aligned with the duck, with the gear+popsicle stick facing toward the back of the duck. From the MESH Recipe that you did earlier, change the PWM values so that the ducks head dips its head down, waits, and pulls back up in an appealing fashion when you push the Button.
Let's call those two variables to the head positions headUp and headDown from now on.
Mark with pencil around where the servo goes on the duck's back, and outline the popsicle stick on the duck's head. Remove the tape. Cut off any extra length of the popsicle stick so that it's not visible from the other side.
Affix popsicle stick to head, with a gap between
When the duck's head is moving, you want the head to be in front of the body, but the popsicle stick itself must go behind the body. This means that you'll need to make a small area of padding on the back of the duck's head in order to create a gap between the head and the popsicle stick, just enough of a gap width for the body to nestle between loosely, but not so much that the head becomes unstable, about twice the thickness of the cardboard.
I did this by cutting out two pieces of cardboard, placing the popsicle stick between two smaller pieces, and snugly fitting the popsicle stick between them, as seen in the third photo.
Before adding more, try a few more movement tests, where you can push and pull the head along the groove you've created for the stick and refining the position. Once satisfied, put one last layer of cardboard over the popsicle stick to hold it in place. Cut out a few more similar sized pieces of cardboard at this point and set them aside for later. All of this was done using a glue stick, but I think an added glue gun to the popsicle stick would have been even more stable.
By now you should have a head on a popsicle stick attached to a running servo.
Step 5: Configure Propeller Fan
At this point you'll need to wire your fan up to the second GPIO tag, which is much simpler than the servo was. I tried putting the fan and servo on the same GPIO, but I believe it shorts the tag, as it tends to disconnect and then reconnect often when connected to both the motor and the servo. It would be better if we could just use one tag, so if anyone knows how to resolve this, let me know and I'll update.
Wire the Fan
Wire the black wire on the motor to the Ground node on the GPIO Tag.
Wire the red wire to the VOUT node on the GPIO Tag.
The MESH recipe will look identical to the one from earlier, but the settings on the GPIO tag will be slightly different. The first GPIO component will set the VOUT to On, the second one will set it to Off. I suggest that you add this setup to the first one and not start over. You can either disconnect the button from the previous setup, or use a different tag for a trigger such as another Button, the Move Sensor, or the Motion Detector.
With this completed, pressing the button should turn on the fan for a few seconds and then turn it off.
Test out fan with bubble wand
Before putting the bubble wand and fan on the head, you want to get a feel for the appropriate distance and angle that the fan and wand need to be at in order for the best bubble-blowing. Hold the fan in one and the wand in the other, turn on the fan, and get a good estimate of what you want.
I was debating using a pipe cleaner for my bubble wand, but ultimately decided that the plastic one was more rigid and thus more reliable.
Install bubble wand + fan to head
The next part requires a bit of trial and error. First, bend the bubble blower wand so that the end of it sits almost perpendicular to the handle. You'll want to sandwich the bubble blower handle between the cardboard covering the popsicle stick and another piece of cardboard, and then stack several layers of glued cardboard. Use some double-sided tape to stick the fan motor on to all of this.
Using the fan MESH recipe, make sure the fan doesn't hit anything when it runs. Try dipping the bubble wand into the bubble mix and see if the fan is successfully shooting out bubbles. Adjust as needed.
The last photo is actually from the next step, but it's helpful to see the finished head here too.
The head will be a little heavy at this point, which is why we are using 4 AA batteries to power this servo. You also might have noticed that my popsicle stick is actually just two coffee stirs glued together- yeah, use a popsicle stick.
Step 6: Place Body and Head
Place the body
There is one piece of cardboard from the scene that you placed to hold up the foreground and background. Put a small slit into that, about a half inch, and sit the body into it. Get an idea of where it sits best.
You made a few identically sized rectangles of cardboard from Step 2. Take those and stick them under where the body sits and glue them down. Using an Olfa or Exacto knife, cut out a slit into each piece and push the body into the aligned slits. I don't recommend gluing the body into the slits. I ended up adjusting it up until the very end of the project, and even then I never glued it in, out of convenience.
Setup head rig and install
You can use the markings from the previous step to help you estimate where the servo will have to sit. Cut out a few longer pieces of cardboard and glue them together to make a sturdy supporting wall that the servo will sit in.
Hold the wall in one hand and the head/servo rig in the other, estimating where they should go such that the head is in the appropriate position. Trace around the servo onto the wall. You want it to be a tight fit, so cut the hole a couple millimeters smaller than the outline you drew, since we know cardboard will give in to the pressure for a nice, tight fit, like what you see in photos 2 and 3.
Use as much glue and cardboard as necessary to prop up this piece, since it is the most important and only moving part of the whole thing. I used just a few thick pieces and glued it near a supporting piece that holds the body, so the whole thing is quite structurally sound for how quickly it was thrown together.
I did use double sided tape at first, just to make sure I'm satisfied with the positioning before I commit.
Step 7: Install Bubble Blower Dish
With the head an body properly fixed, you should try running the part of the MESH recipe that moves the servo.
Cut a plastic cup down to a half inch
Estimate where the bubble blower wand lands when the head is down. You want the bubble blower soap to be there, but we don't want to use too much bubble blower at once, so it's best to make a shallow dish. Note that this dish should be plastic, as paper cups absorb the soap and eventually deteriorate. The paper cup made for a great stand because it had the lip around the edge to ensure the plastic dish didn't fall off without me needing glue or tape.
Cut both cups down to the appropriate height for a dish an a stand and pour some bubble mix into the dish. Use double-sided tape to stick them together if it's too flimsy.
Test head bobbing with dish
Now that everything is approximately in place, just trigger the servo part of the MESH recipe. Adjust the PWM values or the height of the cup to get the optimal dip. If the bubble wand comes up with the bubble blower film, you've succeeded! Yay!
Try running the propeller again, now that the wand probably smashed into the dish clumsily and yanked back up. The wand might also try to un-bend a little. Make sure the fan is consistently blowing bubbles and not hitting anything.
Step 8: Complete Mesh App
The final MESH recipe:
I fiddled around a lot to get everything working consistently, but it didn't take too long. The duck doesn't blow bubbles every single time, but that can be improved with sturdier construction if I decide I want to keep it long term. Overall, this project was delightfully satisfying, funny, entertaining, and magical.
Thanks to MESH, it is really easy to make quick and messy sketches like this that have no need for a computer at all. The connected GPIO provides a great layer of flexibility in being able to control simple servos and motors, and I'm definitely looking forward to testing its limits in future projects.
I wanted to keep the physical computing simple and really focus on the crafty aspect, in order to exemplify the importance of play in these types of projects. I hope that people considering MESH will think of the line as building blocks for your own personal toys, encouraging kids of all ages to explore fun with technology in less intimidating ways. Besides, who doesn't love bubbles?
Hopefully you all have as much fun doing it as I did.