Have you ever wanted to 3D print anywhere and with any material? Now you can, all you have to do is program yourself to read and follow machine instructions and use your own personal fabricators par excellence - your hands! But Laura, you may ask, how do I program myself? I made a laser guide using easy to find parts that makes acting like a 3D printer much like connect the dots. This Instructable will show you how to make the guide and give you some ideas of what you might be able to make.
Step 1: The Gist
I created an Arduino controlled laser guide that walks you though the process of building something like a 3D printer. The Arduino code translates G-Code (the language of 3D printers) into coordinates that can be drawn by a laser connected to two servo motors. If you follow the dot with your hand while laying down material, eventually you'll end with something that's more or less like your 3D model.
It's a bit easier to understand how to follow the laser if you watch the process in 2D. When the light turns on, you put the pencil down. When the dot moves, you move your pencil to the dot. When the light turns off, you pick the pencil up, ending the line you were drawing. When the light turns on again, you put your pen down again and follow it, and so on and so on. Eventually the dot will just stop moving and you'll be done.
In 3D, you do the same thing but you replace a pencil with something with volume and form. Like pipe cleaners. The code controlling the laser adjusts for the height of the model and will draw on top of the layer that you already put down. So, instead of drawing lines on a single plane, you'll start laying materials on top of each other and build something in 3D. Each time you move up a level the systems will make a sort of video game "level up" sound letting you know that you've finished a layer.
Step 2: Build It
Here's what you'll need to make the laser guide - I included links to the parts I used:
Optional but Really Helpful
Step 3: Get the Parts for the Laser Guide
First we'll assemble the servo bracket so grab these parts:
Step 4: Start Assembling
Press the 1/4" 20 Hex nut into the base.
Step 5: Remove Servo Horns
Use the tiny screw driver to remove the default horns from the servo. Hold on to the screw that has holding the horn on.
Step 6: Place Hex Nuts
Press the 4 tiny hex nuts into the corresponding holes in the mount.
Step 7: Screw the Servos into the Mount
Place the servos into the mount. I've included photos of the servos from several vantage points. It's important to get them aligned in the correct way, so make sure they are attached just like the photos.
Once you have the servo placed in the right orientation, use the tiny screws (not the ones from the servo horn, the other tiny screws) to fasten the servos into place.
Step 8: Cut Wires
Cut wires to connect the servos to the Arduino. Also grab some male headers and break them into
I also cut some heat shrinking tubing to keep the joints secure.
Step 9: Solder Connections
Place a little solder on the tips of your short red and black wires. Also put a little solder on the end of your longer red and black wires. Then, solder the 3 short wires to the 1 long wire of the same color. When you solder all the wires together, the little solder you added to the tips will help keep them joined.
This will provide power and ground to all of the components while only using one pin on the Arduino. I used the shrink tubing to seal the joints.
Step 10: Solder More Connections
Grab a long green, blue and yellow wire and place then with the red and black wires you just soldered.
Grab one small red, small black, and the long blue wire. Solder them to a 3 pin male header to connect to your servo. The order matters so make sure you match the ground (black) and power (red) to the appropriate pins on the servos.
Repeat this with one red, black, and green cables. This will connect to your other servo.
Step 11: Keep Soldering!
The laser has four wires connected to it but you only need to use 3 to control it red, black and white. I use a 4 pin male header so it's easer to clip them in and out. Just solder the red, and black to the corresponding spots on the header and then skip a pin and solder yellow last pin on the header.
Step 12: You Guessed It, Soldering!
Turn the wires around and grab the yellow, blue and green wire ends that are not already soldered to headers.
Solder them to your last 3 pin header in the order: yellow - blue - green. This is going to make it easy for you to just plug your chords into the breadboard.
Step 13: Center the Servos
Before we go ahead, we'll need to power up our servos and get them centered.
Place the Arduino in your breadboard. Connect the black-red-blue pin header to the servo closest to the base, connect the black-red-green header to the other servo. Connect the red wire to 5V and the black to GND. Connect the yellow-blue-green pin header to pins 8-9-10.
Power up your Arduino and upload this Arduino Sketch. Make sure you have the correct port and board selected in Arduino. Sometimes the Micros act funny and will give you errors when you upload. Try two or three time and see if the error persists. If so, just hit reset on the board and try a few more times. I know it sounds terrible but it generally works for me on the second or third try.
Once the sketch is uploaded and your servos are centered, unplug the Arduino.
Step 14: Assemble Mount
Without moving the servo heads, gently place the base and laser holder into place. Use the tiny screws that you saved from the servo horns to screw them into place. Make sure there isn't power running when you do this, it might break your servos.
The screw is difficult to get into the laser mount, if you can't do it, don't worry, it still works fine!
Step 15: Place the Laser
Slip the laser into the laser holder and reconnect your wires. Remember black-red-blue goes to the servo near the base, black-red-green goes to the servo by the mount. Line up the red and black wires on the laser with the red and black wires on the header.
Step 16: Add RF Components
The RF transmitter and receiver allow you to control the speed at which the laser draws the instructions for printing. Place the receiver somewhere on your breadboard and connect the pins to the appropriate locations on the arduino.
I soldered four wires to a 4 pin male header block on both sides to make connecting the wires easier. I connect 5V and GND to the appropriate locations on the board. And then connect D0 to pin 2, D1 to 3, D2 to 4 and D3 to 5.
I added stickers to the keys to make the function of each key more clear. I'll describe the functions when we talk about actually using the system.
Step 17: Add Piezo Speaker
Connect the black wire of the Piezo to GND and the red wire to Pin 7.
Step 18: Add Battery & Switch
I add the switch in series to the battery voltage output so that I can turn power to the board on and off with the switch. First, I solder the end of the red batter connection wire to one pin on the switch. Then I solder a red wire to the other pin on the switch.
I clip the battery into the switch and make sure it works correctly. When the switch is open, voltage should be close to 0, when closed, it should be close to 9V.
Once I know it's working, I open the switch (so power isn't coming through) and connect the leads to GND and Vin on my Arduino.
Step 19: Wrap it Up all Pretty-Like
I laser cut a little box for my system which I'll add the files for shortly, it's not beautiful but it gets the job done. I place the battery in first, then put the breadboard with Arduino on top. I tape the Piezo in place and tape the switch somewhere to the box. When traveling, I disconnect the servo mount from the wires and pack it in with everything else. This keeps things nice and compact and makes sure I don't break anything when I carry it from place to place.
Step 20: Use It!
So now that you've build the guide system, you're ready to actually use it. The next few steps will guide you through building from getting a file, to uploading it, to running the system.
Step 21: Download an STL
Find an STL Model online that you would like to build. I've had good luck finding things on Thingiverse but you can go anywhere you please to fine STLs, you can even make them yourself in 123D Design or other CAD programs.
For my first construction, I used this hand on Thingiverse.
Step 22: Drag your STL into Slic3r
Slic3r is an open source G-Code generator that has a nice interface and was the easiest g-code generator for me to use. Download it for free at slicr3r.org
Drag your model into Slic3r and you should see something like the first image above. The 3D model doesn't show by default but click the "view" icon in the top banner to open the viewing window.
The "info" panel on the bottom right will tell you the size of your model (in mm). If you want something larger or smaller, use the scale feature to resize.
Step 23: Measure your Material
This is the part where you have to use your brain a bit. You're going to be converting your model into paths that you'll draw with your materials. You need to tell your model how big your material is. For the most accurate results, choose a relatively small materials (< 10mm) that has a uniform size. Good n' Plenties, BB's, yarn, spaghetti, would all work great.
For sake of example, I'll pretend I'm making the hand out of pipe cleaners which are about 8mm across. Err on the side of too small if you're not sure how big you material is.
Step 24: Enter Fields in Slic3r
When you're done changing the parameters go back to the Plater tab and hit "Export G-Code" on the far right, bottom of the interface.
Note to the tech savvy: Slic3r can also be downloaded and run from the command line. That would save you tons of time entering each value in on the interface.
Step 25: Preview your Model
Drag your file into the G-Code visualizer I built at: artfordorks.com/btm
You can also fork the entire project on GitHub if you so desire: https://github.com/Devendork/BeingTheMachine
This interface lets you see exactly what you'll be drawing. You can use the forward and back keys to go through the instructions and see how the laser point will move. Use the up and down keys to move through the layers.
At this point, ask yourself if you think you're materials can work in this structure. If it is large enough, if you think they'll have enough support etc. If it looks like it won't work, go back to Slic3r fiddle with some parameters and visualize again. In a perfect world, this wouldn't require so many chained programs but I am but one small artist and couldn't find the time to make it seamless (a tear drops).
Use the options panel to set custom parameters. You can specify if you are building in 3D (making a model) or 2D (making a drawing). This option will change the way the angles for the servo are calculated since 3D models will change height and the laser point will account for that and 2D models will have constant height.
You can also change the view of the simulation. Arduino doesn't have the same resolution of the screen so checking the box for Arduino view will update the visualization to what the laser will actually draw. It will probably be a bit more rasterized than the original.
The last option will let you override the layer height used in G-Code. Sometimes you need the resolution on each layer to be higher than the actual width of your material. So, you could say the width is small than reality and then change the layer height in the interface to account for the actual height of the model.
Step 26: Download the Arduino Code
Click the link that says "Download Code for Arduino" to open up a window with the Aruduino code. Copy that code and paste it into an Arduino window, then upload it to your Arduino.
Write down the value on the bottom right of the screen that says, "Distance from Base to Laser." You'll use this to set up your system to build.
Step 27: Prep the Build Platform
I used an Irwin clamp to clamp to the side of a table and a magic arm tripod mount to extend out from the clamp.
I fasten the laser mount onto the end of the magic arm and then hang the rest of the equipment from the based of the magic arm. Alternatively, you could tape the Arduino and components to the clamp.
Turn the Arduino on and both the servos will point towards the center. Adjust your laser to make sure it's pointing directly downward. Once pointing downward, measure the distance from the laser to the base and make sure it matches the value on the interface for "Distance from base to laser."
Step 28: Build!
Use the key fob to control the laser.
Here's how the buttons work (in the image above, I covered the buttons with stickers indicating their function):
The attached video shows how I follow the laser in 2D. I'm following the laser as it runs on "play" mode.
Step 29: Some Things I Built?
When I thought of this project, I liked the idea of bringing high-tech and low-tech into close proximity. I asked the other artists-in-residence what they thought the most annoying craft supply was and they said: pipe cleaners! As it turns out, pipe cleaners lend themselves well to layered paths so I tried them out and I made this hand on my first try! It took about 3 hours and since I did it on the floor, my back was killing me.
I then decided to play with natural materials, something 3D printers currently can't work with. I made a vase for flowers from flowers. My favorite part of this design is the way the entire structure decays. 3D printing objects are so permanent and I liked the idea of making them ephemeral.
Then, I tried a gun - because 3D printed guns are the end of the world, right? Turns out guns made of Good'n'Plenty's aren't quite as threatening. However, they are quite heavy and the model is the size of a real gun and fits nicely in your hand.
My big finale is going to be a Stanford bunny made from balloons, a way to take this iconic test-bench model and transform it into a new domain. I made some scale mock ups for planning purposes. The first out of jelly beans (which I made on my living room table while watching Twin Peaks) and the second out of pellet gun pellets. The balloon construction hit a snag when my only laser guide fell from 15" and shattered. I'll be trying it again in the next few weeks.
And after all the hype of 3D printing, I think the 2D drawings of tool paths are beautiful on their own. I bought some charcoal and archival paper and I'm excited to make some more.
Step 30: Some Things that Failied
As it turns out, these materials don't just lay around waiting for you to mold them into paths and some things didn't work so well.
I tried to make a kitten from cheese and I ended up with a pile of easy cheese and the desire to never eat easy cheese...ever. That stuff holds its form way to well to digest but not well enough to support the overhangs on a kitten model.
I made two failed Mobius rings, one from gum drops and the other from good ol' good n plentys, both failed.
I made the Stanford bunny from glue gun and glitter and the glitter reflected the laser all over the place and the bunny looked a lot like the cat.
I shouldn't call these failures since they can be valuable experiences in themselves. There is something rewarding about materials that tell you what they want to be and I suppose life outside of ABS is just a little more unpredictable.
Step 31: What would you make?
So you have this portable system that lets you upload a model and print it by hand with any material you wish to try. You can print at scale if you find a way to mount the laser far enough away from the base.
Add a comment and tell me what you would want to make! What materials, what model, what size and where. I really would like to know!
You can also fork the entire project on GitHub if you so desire: https://github.com/Devendork/BeingTheMachine
If you want to know more about the background of this project, I created a "process" Instructable that describes the generation of this project from idea to implementation and the future vision of human 3D printing: http://www.instructables.com/id/Becoming-a-Human-3D-Printer/