Step 2Parts
Electronics.
- Microcontroller - Arduino (ATMEGA328) compatible. I've used a Seeeduino here. (from coolcomponents).
- Motor drivers - Adafruit's Motoshield. A modern classic. It can drive two stepper motors each drawing up to 600mA and has pinouts for a servo too, so is perfect for this project. (oomlout.co.uk)
- Motors - 400 steps per revolution (0.9 degree per step), 4.6v NEMA 16 stepper motors. These have a 5mm diameter shaft. (ebay - astroyn excess).
- Power supply. 1 amp (1000mA) Variable voltage AC/DC power supply. I set mine at 6v. At peak, the machine might be drawing 1.2 amps (2x 600mA), so you might benefit from a beefier-than-average power supply. That said, it ran for months on a 600mA supply before I did something silly and it stopped. (expro.)
Gondola. This is the pen holder. I am from the "heavy and stable" school of thought. I think it makes for a more definitive impression, and a cleaner line.
- 3x 6003Z deep groove bearings. (simplybearings.co.uk)
- 50mm length of K&S stock #144 brass tubing (21/32", 16.66mm dia). (hobbies)
- Laser cut acrylic parts. The original is made of corrugated cardboard and a blank CD, just glued on, so this is by no means necessary. (Ponoko)
Running gear.
- Beaded cord. This is used in roller blinds. (ebay - a shade better). You could use metal ball chain if it matches the pitch.
- Sprockets. Don't seem to exist off-the-shelf, so I made these 3D printed ones (shapeways).
- Counterweights. I used a bolt with a stack of washers hung on it.
Hardware.
- Surface - big flat surface to base your machine on. Discussed in the next step.
- Brackets - laser cut plywood to allow the motors to be fastened to a flat wall. If you are mounting on a board, you might be able to just simply stick the motors directly on the top edge of the board. (Ponoko)
| « Previous Step | Download PDFView All Steps | Next Step » |





























































I decided to try and build this amazing device of yours, but I am a novice. I am looking for the stepper motors you specified and am having trouble finding the right ones. I am finding a lot more options in the NEMA size 17 rather than 16 does this matter as long as the other technical specs match? And, could you suggest some online resources for purchasing these motors that I may not know about? Thank you very much.
Jud.
Current is the significant value you need to be looking for though, rather than voltage. Voltage is pretty irrelevant in fact. I use these motors because they draw 600mA, and that nicely matches the maximum that the motorshield can handle. I run them at 6v, but I could go higher for more torque (and more heat), but they have 4.2v marked on them.
The very first motors I got were NEMA17 motors that I bought because they were labelled 4v, and I figured I wanted to be safe and work with low voltages if I could, and because I didn't know what to look for, I didn't notice they were rated to draw 2 amps. So it kind of worked, but I also destroyed a couple of power supplies and motorshields before I figured out what was going on.
Hope that's some help!
What I'm curious about is this: I have some stepper motors laying around already, but they're 1.8 degree per step. I'm wondering if you could venture a guess or might know what this would do to my final image results?
I've looked through the documentation for the Adafruit motor shield and also the AFMotor documentation and it talks about the combination of the two being able to do some different step types that I thought I could use half-steps to get the same 0.9 degree per step resolution from my 1.8 degree steppers.
So thinking in those terms I was reading through your Arduino based code trying to see how hard it would be to adjust the stepping and ran across a few things that sparked my questions. You've done two things that I'm specifically looking at. First defining motorStepsPerRev as 800 when it is 400 for your steppers and secondly using the interleave step type. I understand the interleave step type creates the half step I was considering using, but what does the motorStepsPerRev being double do? Does that effectively microstep it again so you're getting an even smaller resolution of almost 0.22 degrees?
Logically that seems to make sense, but I just wanted to find out as I was hoping to use what I had right now on hand to build my own version.
The settings for motorStepPerRev defines the the number of AFMotor steps per revolution, rather than the physical hardware number of steps. So if I was using the simple (non interleaved, I can't remember what it's called) step type, then AFMotor steps will be equal to the physical steps, but when we start using the fancy-dan step styles it'll change. So I get 800 INTERLEAVEd steps, or 6400 MICROSTEP steps per rev. They all translate to 400 physical steps.
So with yours, if you're using the interleaved step style, you'd set motorStepsPerRev to be 400, even though your motors only have 200 physical steps.
The physical size of the pen movements per step is a product of step size and sprocket size. If you have a coarser motor (1.8 degree or more), then you can get back your physical resolution by having a smaller sprocket.
So 1.8 degree is ok, you might not even notice the difference, depending on the thickness of the pen you use (and to be honest, there isn't a "wrong" way, just a different shading effect), for example:
If you want to draw a square 2cm across with a pen that has a 2mm tip, with a 400step motor (0.9degree) it might be 100 steps across, and the pen tip is 10 steps across, then the code will draw 10 lines into the pixel to get it to maximum density, each line is 10 steps away from the next.
If you only had half as many steps to play with (a 200 step, 1.8 degree motor), then the pixel would still be 2cm wide, and then pen would still be 2mm wide, but it'd only be 50 steps across, and the pen tip would be 5 steps across and each line would be 5 steps away from the previous one. So if that was your maximum density, you can see there'd be no difference.
BUT if I decided to use a pen that was a tenth of the size (lets say, it was 0.2mm fineliner) instead of a big fat marker, then it'd be different. The 400 step motor version will have a pen that is 1 step wide, and will fill the pixel by drawing 100 lines, each line 1 step away from the rest.
Now, the 200 step motor version only has 50 places it can move to within the 2cm box, so the most it could possibly draw would be 50 lines with a 0.2mm pen, and that would only half-shade the square. In fact, the smallest pen it could correctly describe is one that's 1 step across, or 0.4mm. Smaller than that, it'll start behaving oddly.
Hope that's some help,
sn