Introduction: Scara Draw 2D
Ever accidentally typed a homework assignment or just really bad at drawing? Check out the Scara Draw 2D, a versatile pen plotter that operates on any size paper and takes input as an SVG of any kind!
Introduce Jared Hughes, Sairam Sreekant, and Shivansh Baveja, three high schoolers with an aversion for taking notes, a love of technology, and bad handwriting. This, culminating with a year filled with endless notes and posters convinced us that it was time to usher in a new era of school work, an era of the ScaraDraw. We envisioned a machine that could write computer text or draw images with a pen or pencil on real paper. This would compromise the tedious task of handwriting notes, make our drawings identifiable, and allow our teachers to finally read our work. Furthermore, a backspace key is more convenient than whiteout and files are much easier to keep together than loose papers. Thus, the Scara Draw 2D was born. Initially, we met and brainstormed design ideas, parts, and software, coming to the consensus of having a compact scara arm design. We met twice a week over the summer, configuring software and developing a complete CAD model of the machine. Once school began, using resources from Ms. Berbawy's classroom, we started meeting more often, 3D printing parts, laser cutting the scara arms, wiring the parts, and assembling the machine.
Laser Cutter, 3D Printer (Ultimaker 2+), Drill 0.02’’ bit, Hex Socket and Phillips screw head, Allen Key, Needle Nose Pliers, Wire Cutter, Wire Stripper, Screwdriver, 1/4" Tap and Die, Sandpaper (150, 220 grit), Caliper, Ruler Adobe Illustrator, Autodesk Fusion 360, ¼’’ x 12’’ x 12’’ birch plywood 1 sheet, PLA filament ~100g, M4 Screws x10, M3 Screws x8, ¼ Inch Screws x2, Superglue (cyanoacrylate) 1 bottle, Spring from a pen, NEMA 17 Stepper Motors x2, 12V Regulated Power Supply, Arduino Uno, Arduino CNC Shield, A4988 Motor Drivers x2, 9g Servo, Servo Horn, 5mm to 5mm Rigid Couplers x2, Belt ~250mm, 5mm bore diameter timing pulleys x2, 5mm bore shaft collars (can use timing pulleys instead) x3, 5mm x 100 mm metal shafts x3, M4 Hex Nuts x6, 3 Prong Computer Power Cable, Male-Female Jumper Wires x3, 12’’ x 12’’ x ¼’’ Acrylic or Polycarbonate Sheet
Step 1: Assembly (Electronics)
After obtaining all parts necessary, find a wall outlet plug and, leaving 4-5 inches of room, strip the wires. Then, use a multimeter to test which wire connects to which hole (using the resistance setting) and connect the respective ground, positive, and control wires to the power supply’s terminal. Then attach the Arduino motor shield to the Arduino, and attach the stepper motor cables to the shield. Then connect the motor driver shield to the power supply using the 5V input and ground pins from the power supply terminal. To enable micro-stepping, attach the middle jumper for ¼ stepping’s additional accuracy. Then place all of these components in the bottom casing of the laser cut housing (which can simply be assembled with wood glue on the joints). The only exception is the power supply unit, which is mounted on the backside of the casing with four M4 screws.
Step 2: Assembly (Mechanism)
To each motor shaft, attach a coupler with a metal rod on top. Then 3D print the two spacers on the inner shaft (all stls provided in last step), and order a G2 twenty-toothed timing pulley. Mount these three pieces onto the inner shaft. For the other shaft, laser-cut two arms each in ¼ inch medium density plywood, 3D print a timing pulley, order metal timing pulleys and then mount these onto this shaft. On the top, connect these two inner shafts on the top with a 3D printed static arm that prevents warping between the shafts. The two wooden arms from the outer shaft connect at a shaft, with another 3D printed timing pulley, arm, and a spacer between them.
Step 3: Pen Mechanism
Lastly, this outer arm has a pen lifting and pressing mechanism attached to the end of it. To create this mechanism, 3D print the servo clip and bolt it into the outer arm. Then, 3D print all of the other parts that are in the mechanism. Glue the rectangular sliding bracket perpendicular to and at the end of the outer arm. Use a tap-and-die to add M4 threads onto the pen clamp, and then slide it into the bracket. On top of this clamp, clip in the vertical extension and pin, onto which you mount a pen spring. Over this pen and spring setup, mount the “U” shaped piece by gluing it onto the arm. Slide the horn underneath the mechanism’s overhang, and the part is complete.
Step 4: Software
The software that controls this hardware is GRBL, a high-performance g-code parser that converts cartesian coordinates into polar motion that can be given as input to the stepper motors. To control the motors, flash grbl-scara. GRBL is an industry-standard high-performance g-code parser that controls the motors based on gcode. We modded it based on grbl-polar to perform a transformation into scara coordinates and use a servo as the spindle to lift and lower the pen.
Universal Gcode Sender provides a good way to control GRBL. It has an intuitive interface and shows a preview before sending the gcode. We had problems with the 1.0.9 release, so we use the 2.0 Platform (beta), which has worked well.
You can generate g-code in any available laser-cut or CNC milling software, such as JSCut or MakerCam. However, nothing beats a good, simple command-line interface like juicy-gcode. For convenience, we provide this and several utilities bundled on Github into drawbot (tested on Ubuntu Linux only). The overall process for running the robot is as follows: Create an SVG file such as 'spiral.svg' through vector graphics programs such as Inkscape or Illustrator. Be careful—some programs reflect the y-axis in drawings. Use the `trace` code from drawbot with e.g. `trace spiral.svg` to output a gcode file. Open UGS and load the output gcode file. A preview should appear Connect to the Arduino inside UGS (with 115200 baud). It is a good idea to test the boundaries of the drawing by right-clicking on the preview, then selecting [Coordinate] > Jog to Here. Check that the pen is in the right spot. There are macros inside drawbot to let you move the holder up or down for proper positioning. Press the play button to start the drawing.
Step 5: Resources
Grbl Polar: https://github.com/ilaro-org/grbl-polar
Grbl SCARA: https://github.com/jared-hughes/grbl-scara
Belt Holder: https://github.com/jared-hughes/grbl-scara
Image to SVG: https://github.com/jared-hughes/grbl-scara
Scara arm inspiration: https://github.com/jared-hughes/grbl-scara
PSU tutorial: https://github.com/jared-hughes/grbl-scara
Stepper Shield tut: https://github.com/jared-hughes/grbl-scara