What you’re building: A simple Arduino controlled pneumatic system using fairly inexpensive parts. This can be used to power a soft robot, or to water your lawn, it’s more of a walkthrough of our project’s main ideas and concepts but it can also be followed as as a tutorial.
What you will need:
- A working Arduino unit. (In our case we went with the UNO)
- ⅛” and/or ¼” tubing and y connectors (need a lot of this to connect our pneumatic system together)
- Solenoid Valve (We used this for opening and closing a valve, limiting the air flow split from one singular air source. This worked, however, there is a better use for this which we will discuss.)
- MOSFET Transistor x 2 (This will be used as a switch to open/close our valve(s) as well as operate the dc pump)
- Diaphragm pump. (our source of air pressure)
- Access to a 3D printer (for printing out a mold to test with
- EcoFlex Silicone Mold, or any silicone analogue. (Extremely stretchy, durable material. Well suited for soft robotic projects)
- A dilapidated toaster oven (optional, used to set our silicone mold in 15-30 mins rather than 4 hours)
*Keep in mind, we used a combination of multiple molds to make our final design. This was a terrible idea and inevitably created molds full of leaks and tears/ The main idea of this is that we are more designing the pneumatic system and the brain behind this robot, so to speak. The actual body is modular and in turn, replaceable. This should encourage you to start with something that works and then build from that*
-If you are reading this post to create a soft robot of some sort to be controlled by air programmatically, then you may want to start by fabricating a gripper or whatever you may want to inflate. In our case, we started here. The STL files for a simple gripper are available from this site and are a nice starting place. If you don’t care about the soft robotic stuff then I would skip ahead to step 2.
In terms of constructing a gripper the general process is to:
1: 3d print the mold you wish to set and fill mold with EcoFlex. Dry for approximately 4 hours (30 if you put the mold in a toaster oven)
2.) Pour out a thin layer of EcoFlex to form a circular shape. This will serve as the backside of the gripper.
3: Ensuring the silicone has dried properly, carefully remove the gripper from its mold, starting one leg at a time (assuming you’re using the 4 legged gripper model).
3: Attach the layer of silicone to the gripper with EcoFlex and then set out to dry again.
5.) Your gripper should now be ready to use. You can use small tubing or a blood pressure monitor to test out the functionality of the gripper.
-After making the initial mold we then printed a new ‘X’ shaped connector which we would use to ‘splice’ the legs of the previous mold. As I previously mentioned this was a pretty bad idea and I would recommend printing an entire mold if you’re already going the length to redesign it.
Step 2: Autonomous Pneumatic Control
-If you recall, our main goal was to split a single source of air into two tubes/valves, both to be controlled by the Arduino.
-Our approach to this part of the project ended up being more work than was really necessary, and I’ll explain why briefly.
-The solenoid valves would’ve been much better used for a decompression system rather than to restrict air flow from one valve to the next. This is because the solenoid valves would restrict air flow by a decent factor, and because of which, the air pressure we get when these valves are in their open state is very low. A better use for these would’ve been to use a y-splitter, connect the end of the motor to this and have one end of the splitter attached to the solenoid valve in order to get decompression. This of course would’ve required us to purchase another motor for the front/back valve distinction but it would’ve worked much better. Regardless, what we did next still has relevance to controlling the components properly.
What we did.
Above is picture of our valve/motor circuit put together as well as a diagram of what we made conceptually, rendered in Autodesk circuits, a very nice cloud based Arduino simulator. The pump is activated as soon as the first valve opens, waits 5 seconds, and then opens the next valve and turns off the motor after the second valve is closed, effectively creating a “walk cycle”, in a perfect world that is. Here is a link to the Autodesk circuits project if you want to look at the code and layout in depth.
In more detail the layout we went with consists of:
-2x solenoid valves (represented as multimeters in the gif), are controlled by MOSFET transistors, which effectively act as a switch to send 12V to the each valve when a digital output is written to inputs 5 or 4. We get the 12V from the “vin” or “voltage in” pin as that simply uses the power straight from whatever you supply it with, in our case a 12V wall adapter. Notice a diode is being used to prevent the solenoid from “throwing back” current in the opposite direction, which would damage the Arduino.
– A single dc diaphragm pump (represented as dc motor in gif), is controlled by another MOSFET, this time receiving 3.3V from the Arduino. A HIGH digital write signal from input 3 will turn the pump on and a LOW signal will turn it off.
At this point you have something like this:
Which, with a working model, has its flaws:
-Robot has no way of decompressing
-Airflow to the actual robot is very weak
Going back to earlier in this post if you changed the design to something like this:
Using two motors entirely and utilizing the valves solely for decompression (ignoring the lack of wires in my diagram) would:
-Allow the decompression of the robot (inflate/deflate).
-Keep airflow consistent and strong throughout the entire line.
A lot can be learned from a project of this nature. There are virtually no checkpoints aside from the ones you set yourself and there’s really no “right” direction that you could take the project. Overall, it’s good practice to do something you may not be familiar with, and it’s sometimes really hard to know where you should focus your efforts at first. I certainly know more about how these soft robots are supposed to be designed, how to quickly set up and test hardware (even if you may not have all the parts physically), and even how to set up most of these components that I had previously never used. I’m glad that I have these now, as I can now apply the things I’ve learned to other projects that I may take on.