You are on page 1of 8

instructables

SIMPLEST Arduino Vertical Plotter

by idontcaregroup

We made a simple "proof of concept" vertical plotter Pulley Wires (material of choice)
out of things that we found lying around, two stepper
motors, and an Arduino! You could probably make it Pulley Attachment x 2 (for steppers)
too, by following these simple steps.
Counterweights
Parts List :
Wood
Arduino Uno + USB Power Cable
Scrap Metal
Stepper Motor x 2
Screws
Breadboard x 3
Power Source
SN754410 Chip x 2
Writing Utensil
Joystick (or other potentiometers)
Duct Tape
22 Gauge Wire (amount varies)

SIMPLEST Arduino Vertical Plotter: Page 1


Step 1: Walk the Plank

1. Find a piece of wood (or any material really) that is roughly the length of the drawing space you
desire.
2. Attach two stepper motors in line with each other at each end of the plank. (We bent scrap metal
and screwed it directly into our plank.)
3. Attach hooks to the back of the plank so that it can hang wherever you like; an easel, on your wall,
or on top of a whiteboard like us. (We found already bent metal and cut it in half.)
4. Attach Arduino in the center between the two motors.
5. Attach breadboard(s) in between the Arduino and the motors.
6. Move onto wiring.

SIMPLEST Arduino Vertical Plotter: Page 2


Step 2: Wiring

1. Follow the schematic shown, repeating it for both motors.


2. Make sure to attach the second motor to pins 3, 4, 5, 6 so that you have three PWM ports (just like
8, 9, 10, 11).
3. Attach joystick(s) to a separate breadboard that will be used as the controller, as shown. Attach one
of the motors to pin A0 on the Arduino and the Left/Right axis, and the other to pin A1 and the
Up/Down axis. (This could be done with any sort of potentiometer with an analog output, and could
even be done wirelessly if you so choose. This is where the project would become a lot better.)
4. Distribute power in whatever way is easiest, preferably with two separate 9 volt power sources for
each motor. (We split it from one outlet so our motors ran at half speed.)

SIMPLEST Arduino Vertical Plotter: Page 3


Step 3: Whiteboard Marker Mount

1. Find a piece of metal and beat it with a hammer in a vice so that it wraps around the pen and hold
its tight. (This is the only way this will work.)
2. Assemble some sort of pulley system, using treaded rubber cable like we did, or you can use
something like fishing line or even a rope.
3. Attach the pulleys to the piece of metal, we attached screws and wrapped the pulley around the
screws.
4. Add counterweights at the ends of the pulleys, as well as the bottom of the marker mount to keep
tension.
5. If everything has been done perfectly so far, your marker will lay perfectly against your writing
surface. Ours was far from perfect so we had to attach a magnet near the tip of the marker to lightly
hold it against the whiteboard.

SIMPLEST Arduino Vertical Plotter: Page 4


1

1. Magnet

SIMPLEST Arduino Vertical Plotter: Page 5


Step 4: Arduino Code

SIMPLEST Arduino Vertical Plotter: Page 6


You could make this code as complex as you want, // set the speed of the motor to 100 RPMs
but since this is the SIMPLEST plotter, that's what
you get. stepper.setSpeed(100);

Using this code, all you have to do is rotate the stepper2.setSpeed(100);


joystick 45 degrees counter-clockwise and you have
an intuitive controller with an inverted vertical axis. Serial.begin(9600);

Arduino Code : }

/* void loop() {
* MotorKnob * * A stepper motor follows the turns of a
potentiometer * (or other sensor) on analog input 0. * int lr = analogRead(A0);
* http://www.arduino.cc/en/Reference/Stepper * This
example code is in the public domain. */ int ud = analogRead(A1);

#include Serial.println("------------------------------------");

// change this to the number of steps on your motor Serial.print ("LR: ");
#define STEPS 100
Serial.println(lr);
// create an instance of the stepper class, specifying //
the number of steps of the motor and the pins it's // Serial.print ("UD: ");
attached to Stepper stepper(STEPS, 8, 9, 10, 11);
Stepper stepper2(STEPS, 3, 4, 5, 6); Serial.println(ud);

// the previous reading from the analog input int delay(100);


previous = 0;
// get the sensor value
void setup() {

int val = analogRead(0); stepper2.step(1);

if(val > 525) { }

stepper.step(1); else if(val2 < 475) {

} stepper2.step(-1);

else if(val < 475) { }

stepper.step(-1); // remember the previous value of the sensor

} previous = val; }

int val2 = analogRead(1);

if(val2 > 525) {

SIMPLEST Arduino Vertical Plotter: Page 7


SIMPLEST Arduino Vertical Plotter: Page 8

You might also like