Let's Make Robots!

van Rijn

Writes and draws stuff

I'm afraid I'm STILL on the Write LMR trip. It's not got tired yet.

I've decided to motorise a miniature Etch-A-Sketch.

I decided on steppers. Not servos. Servos hadn't enough rotation. Continuous servos had no positional feedback.

Here's my prototype circuit. Simple ULN2803 driver and a PIC 16F628. There's a max232 on there, too as the RS-232 interface to the PC.

WOW! It draws a circle. The most impressive bit of this is my implementation of Bresenham's line drawing algorithm. The circle is made up of straight lines. Straight lines are more difficult to draw than you might imagine...!

Look out for more swirly patterns coming soon. Maybe even an LMR logo!

What you see in the main photo there is a "Hilbert Curve." It's a space filling curve in that the algorithm causes the "pointer" to pass through all the cells in a given area.


Hey, how weird does the inside of an Etch-A-Sketch look? I HAD to do this. I programmed it to scan back and forth so all the grey dust got scraped off the glass. It took about an hour! Hmmm... Resolution is 750x500 = 375 KiloPixels (there's a new one) x 10ms per step = 3750 seconds = 62.5 minutes.


I presume all those little metal balley things (description specially for Frits) are where the magic grey coating comes from.

Below is my attempt at a Lissajous figure with two phases. I'm happy with that.


I got the machine to draw a picture of my eldest offspring. It's done by making "pixels" which consist of veritcal lines. The lines are closer together (more dense) for increasing levels of darkness. Later I will try to use a Hilbert curve to make up each pixel with an increasing "order" for increasing levels of darkness. The result should be much better, but it will be sloooooow.


This second photo is slightly easier to see the subject because it's so blurry!


For the sake of completeness, here's the front panel of the software I wrote on the PC to control it, including a preview of the image.


I'm off to see if I can get it to draw the contents of a DXF file. How hard could THAT be?

 Can you believe it doesn't EVEN Write LMR yet? How remiss of me...

Update (7-Mar-2009): NOW, it writes LMR. BTW, reading a DXF file is more difficult than I thought.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
So you either need to work in 10bit resolution minimum or make the stepper take at least 3 steps per bit in 8bit mode. Considering the resolution even at 8bit is 0.312mm it wouldn't be worth the bother going beyond 8bits.

I'm going to go with 16 bit, because I'm using a pocket sized Etch-A-Sketch, I might move up to the "big boy version."

The 0.1mm resolution is a theoretical thing anyway. There'sa huge backlash between the knobs and the little scraper thing moving against the glass anyway. If I were increasing in the X direction, for example, and I changed to decreasing in the X direction, it might be as much as 20 steps before the pointer would start to move.

I've found that energising the coils for 10ms per step works adequately. I had it working as low as 7ms last night, but it stalled at 6ms. Of course there's an upper limit, but logically, the longer the coils are energised, the more torque is obtained. At a guess 10ms is the way to obtain the most torque the motor can deliver.

With stepper motors, to increase speed you increase the supply voltage and use a current regulators to prevent damage. This forces the magnetic field to be established quicker. Industrial stepper motor drivers will use voltages as high as 100V or more.

Yes. We use this technique to drive stepper motors in the Fuel Pump / Metering Unit of a jet engine.

I depower the phases between steps as a matter of course and with my 12V setup capable of delivering 500mA and only demanding 200mA, it may well be time to pulse with a bit more oomph.

I would prefer to have instantaneous feeback on teh current consumed and power the coils with PID, but I think I'll have to risk letting some of the blue smoke out.

Small Springs could be used as a flexable connection between the multiturn trimpots and the shaft.

I think stepper motors will give you the best combination of control and resolution. Small steppers can usually be found in old floppy disk drives.

I recently had a project where I wanted to extend the servo range.  I used 10-turn potentiometers (full size, not trimpots).  You can see it on this instructable (http://www.instructables.com/id/Low_Cost_Hobby_Servo_XY_Table/) and the site (http://www.teletoyland.com/Projects/Sandbox/How_it_Works/index.php).  Also, timing belts may be easier to do mechanically than gears - much wider margin for error.  They make smaller timing belts than we used.


Stepper motors will goive yu the most accuarte positioning. 

Here is a version Etch CNC:  http://axis.unpy.net/etchcnc 

For a small Etch a Sketch, cheap hobby type stppers driven by a microprocessor will work just as well. 


Yep. I dug out some old Astrosyn steppers. They have very little torque, but they only draw 200mA at 12V, so I can drive them with a ULN2803. I thin kthese came out of a one-armed bandit.

Good point. I wanted to do this on the cheap, with stuff I already have, though.

Wait a minute. I think I HAVE steppers...


But not necessarily do alike. I spotted a similar toy myself this week and pondered about servos as well. Great to see you actually hacking into it, satisfying my curiosity.

As before with writers, the conondrum is about range vs precision. Or size vs resolution. (she said what!??) 

Changing te gear ratio should give you full reach across the tablet. Worry about precision later. It takes only a very few vectors to write "LMR".

Welcome back my dear toy hacker!