Introduce Jared Hughes, Sairam Sreekant, and Shivansh Baveja, three highschoolers 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 ScaraDraw 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, we started meeting more often, 3D printing parts, laser cutting the SCARA arms, wiring the parts, and assembling the machine.
First, 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.
To each motor shaft attach a coupler with a metal rod on top. Then 3D print the two spacers on the inner shaft, 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 a metal timing pulley, 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.
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
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 lasercut 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 a 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
Grbl Polar: https://github.com/ilaro-org/grbl-polar
Grbl SCARA: https://github.com/jared-hughes/grbl-scara
Belt Holder: https://www.thingiverse.com/thing:117987
Image to SVG: https://eprev.org/2015/05/27/converting-png-to-svg/
Scara arm inspiration: https://www.jjrobots.com/robotic-arm-scara-project-updates/
PSU tutorial: https://m.youtube.com/watch?v=x-m1jsqIOPs
Stepper Shield tut: https://blog.protoneer.co.nz/arduino-cnc-shield-v3-00-assembly-guide/
File Location (Use to obtain laser cut and stl files): https://grabcad.com/library/scara-draw-2d-1