SIMPLEST Arduino Vertical Plotter

Introduction: SIMPLEST Arduino Vertical Plotter

We made a simple "proof of concept" vertical plotter out of things that we found lying around, two stepper motors, and an Arduino! You could probably make it too, by following these simple steps.

Parts List :

Arduino Uno + USB Power Cable

Stepper Motor x 2

Breadboard x 3

SN754410 Chip x 2

Joystick (or other potentiometers)

22 Gauge Wire (amount varies)

Pulley Wires (material of choice)

Pulley Attachment x 2 (for steppers)

Counterweights

Wood

Scrap Metal

Screws

Power Source

Writing Utensil

Duct Tape

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.

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.)

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.

Step 4: Arduino Code

You could make this code as complex as you want, but since this is the SIMPLEST plotter, that's what you get.

Using this code, all you have to do is rotate the joystick 45 degrees counter-clockwise and you have an intuitive controller with an inverted vertical axis.

Arduino Code :

/*
* MotorKnob * * A stepper motor follows the turns of a potentiometer * (or other sensor) on analog input 0. * * http://www.arduino.cc/en/Reference/Stepper * This example code is in the public domain. */

#include

// change this to the number of steps on your motor #define STEPS 100

// create an instance of the stepper class, specifying // the number of steps of the motor and the pins it's // attached to Stepper stepper(STEPS, 8, 9, 10, 11); Stepper stepper2(STEPS, 3, 4, 5, 6);

// the previous reading from the analog input int previous = 0;

void setup() {

// set the speed of the motor to 100 RPMs

stepper.setSpeed(100);

stepper2.setSpeed(100);

Serial.begin(9600);

}

void loop() {

int lr = analogRead(A0);

int ud = analogRead(A1);

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

Serial.print ("LR: ");

Serial.println(lr);

Serial.print ("UD: ");

Serial.println(ud);

delay(100);

// get the sensor value

int val = analogRead(0);

if(val > 525) {

stepper.step(1);

}

else if(val < 475) {

stepper.step(-1);

}

int val2 = analogRead(1);

if(val2 > 525) {

stepper2.step(1);

}

else if(val2 < 475) {

stepper2.step(-1);

}

// remember the previous value of the sensor

previous = val; }

Be the First to Share

    Recommendations

    • Microcontroller Contest

      Microcontroller Contest
    • Automation Contest

      Automation Contest
    • Make it Glow Contest

      Make it Glow Contest

    3 Comments

    0
    AroAro
    AroAro

    7 months ago

    All plotters are based on the polar graph controller. But the exe files are not executable under WINDOWS10. And there are practically no other Windows versions.
    If you could at least recompile the program with Pocessing from the source code, that would also be OK. But there you get error messages for which there is no reasonable explanation on the net.
    So what is the best and simplest hardware if there is no compatible software available to control the plotter ???
    0
    Rich_Limburger
    Rich_Limburger

    Question 10 months ago on Step 4

    Cool project, I like the recycling/upcycling of parts into the plotter.
    Thanks for sharing it with the community.
    I'm curious how the wall-plots turn out and what the possibilities are in the graphical-field, could you post some pictures of them?

    0
    Swansong
    Swansong

    3 years ago

    That looks neat :)