Tag Archives: stepper motors

Keeping time with a modded Etch-a-Sketch

Dodgey99 had never used stepper motors or real-time clocks before, but that didn’t stop this Maker from creating a really cool Etch-A-Sketch clock.

According to HackADay’s Kristina Panos, Dodgey99 originally employed two 5V stepper motors with ULN2003 drivers, but ultimately decided to upgrade to faster Nema17 motors driven by an ATmega328 powered kit.

“These [original] motors are mounted on the back and rotate the knobs via pulleys,” Panos explained.

“They are kind of slow; it takes about 2 1/2 minutes to draw the time, but the point of the hack is to watch the Etch-A-Sketch.”

Dodgey99 has already written three sketches for the clock: one to configure the RTC, a test hardware run to sample the look of the digits and the main code to replace the very first test sketch.

“The icing on this timekeeping cake is the acrylic base and mounting he’s fashioned,” said Panos.

“During his mounting trials, he learned a valuable lesson about drilling holes into an Etch-A-Sketch. You can’t shake an Etch-A-Sketch programmatically, so he rotates it with a Nema 17.”

Interested in learning more? You can check out the project’s official Instructables page here.

EASiLOGO controls your Etch-a-Sketch

Graham Toal has debuted a CNC Etch-a-Sketch robotic platform powered by an Atmel-based Arduino board.

Aside from the board, key project hardware components include:

  • Two stepper motors
Two bracket sets
  • Two couplers and a 2mm Allen Key
  • 12V power supply
  • One Adafruit Stepper motor shield

On the software side?

“I considered using remote procedure calls, I thought about implementing Hewlett Packard Graphics Language (HPGL) as used in pen plotters, but in the end for fun I decided to use GCODE as my drawing protocol – GCODE is how laser cutters and 3D printers and many other CNC machines are driven, so it seemed like good experience to learn a bit about how it worked,” Toal explained in a recent Instructables post.

“I found an Arduino GCODE interpreter and modified it to suit my project. Mostly the mods were just to remove the Z-axis code that wasn’t needed (you can’t lift or lower the pen in an etch-a-sketch – when you move, it always draws a line) but the main modification was to remove some machine-dependent stepper-motor-driving code and replace it with portable calls to the Adafruit libraries.”

To create a functional LOGO interpreter, Toal turned to Marcio Passos from Brazil who quickly coded an interface (EASiLOGO) based on the “Papert” LOGO interpreter written in Javascript by Thomas Figg along with an Etch-a-Sketch demo from the Mozilla Developer network.

“Marcio and I modified Papert to use the ‘Node.js’ system which gave the code the ability to drive the serial port so that we could send GCODE commands to the Arduino and make the Etch-a-Sketch draw,” he said.

“In a mammoth 30-hr session over the weekend, we got the LOGO interpreter working and sending drawings to the Etch-a-Sketch.”

So, what’s next for Toal? Well, the Maker says he hopes to polish the software so that anyone can use it without needing to build a physical Etch-a-Sketch robot.

“The emulation of the computer-controlled Etch-a-Sketch on our web page is very accurate and we’ll continue to work on it to make it look and perform even better. Programs that run on the web page will run just as nicely on the real hardware,” he added.

“If you can’t build the hardware, you can do the human simulation we described in the introduction, by writing down the instructions on a piece of paper, and giving them to your kids to execute on a real Etch-a-Sketch toy by hand. It’s a great way to learn to program, even without a computer.”

Interested in learning more? You can check out the project’s official Instructables page here.

Arduino and RAMPS drive this quilting machine

A Maker by the name of Yu-Ning Lin has designed an Arduino-powered quilting platform that combines the mechanics of a sewing machine with CNC technology.

“The [machine] translates a vector file into G-code and subsequently into Arduino language which then moves the machine,” Yu-Ning explained in a recent Instructables post.

“[It] uses four stepper motors to control the x-axis, y-axis, the bobbin case and the threading. The bed moves in x and y direction, while the threading moves up and down.”

Key project components include:

  • An Atmel-based Arduino Mega 2560 (ATmega2560 MCU)
Ultimaker RAMPS 1.4 (shield)
  • Pololu stepper motor (4)
  • Heat sink (4)
  • SparkFun theragrip thermal tape
Linear motion shaft (2)
  • Linear bearing for 3D printer (4)

According to Yu-Ning, most of the parts were laser-cut, with various pieces first modeled in Rhino.

“Instead of fabricating all mechanical parts of the sewing machine, I took the existing parts of a mini sewing machine and reassembled them for my Arduino Quilting Machine,” Yu-Ning added.

“The only custom parts are the shuttle hook cover, shuttle race, bobbin case and the entire needle bar.”

Interested in learning more? You can check out the project’s official Instructables page here.

Designing an open source 3-DOF robot

Dan Royer of Marginally Clever has designed an open source 3-DOF palletizing robot based on the commercial ABB 460.

“For the last two years I’ve been teaching myself what I need to know to build a robot arm. I started the Makelangelo to learn how to use stepper motors. I built my first Delta robot to learn how to calculate Inverse Kinematics,” Royer explained in a recent blog post.

“I built the first Stewart Platform because I thought I could use it as a wrist for the robot arm and because I want to drive at least 6 stepper motors in the final arm. It’s like I’ve got the Minecraft blocks and now I can craft them together.”

According to Royer, the ‘bot is powered by two Adafruit motor shields, an Atmel-based Arduino Uno (ATmega328) and gcodecncdemo (software) for AMS2 with 4 axis. The command “G00 Z10” instructs the robot to turn left, while “G00 X10” moves the shoulder and “G00 Y10” for the elbow.

“The finger is the triangle bit at the end where a tool would go. Connected to that is the forearm, which is a parallelogram shape. Connected to the forearm is the bicep, which also has a parallelogram,” he explained.

“The two parallelograms are connected by the triangle piece at the top, which forces the finger tip to always be level with the table. The bicep is connected to the shoulder where all the motors and electronics are mounted. The shoulder is connected to the base, which is suction cupped or screwed to a table.”

Between the shoulder and the elbow there’s an extra “tendon” bar that pulls on the back of the elbow, with one gear attached to the tendon, allowing Royer to put all the motors on the base and make the arm lighter. Meanwhile, the second gear is tasked with turning the shoulder.

Royer says he’s also taught the ‘bot to understand the cartesian coordinate system. Meaning, when the arm turns on it homes – backing up until it touches some switches.

“The robot knows where the finger tip is located when it is at home position. After that I can tell it ‘move the finger to XYZ’ and it calculates how many steps it has to move each motor to get the finger tip to that spot. As long as the motors never miss a step it will move in straight lines to any spot I ask for,” he added.

So, what’s next for the open source 3-DOF robot? Well, Royer has already started coding for a future RUMBA controller.

“I’m going to add 9 or 10 flanged 3mm ID bearings to make the movement extra smooth.

“I’m very keen to learn how to run OpenGL in Java so I can show a 3d model on your screen that copies the real robot. Over the next few weeks I’ll be making steady improvements so stay tuned,” he concluded.

Interested in learning more? You can check out HackADay’s write up here and the project’s official page here.