Cool project! Some notes from a robotics engineer: 1. You might be able to improve it if you add in some backlash compensation. When you change direction while turning a knob, the first couple degrees of motion in the new direction don't actually move the cursor. You could measure this by seeing how many steps you could rotate a knob back and forth without the cursor moving. The backlash amount in the two directions might be different. So whenever you change directions, you first need to rotate the knob by the backlash amount before continuing the path. 2. It seems like you could maybe double the resolution. it looks like the rows are a little too spaced apart to make a fully filled-in image. 3. The pathfinding for traveling back through an already drawn area is a cool idea (very computer scientist-y) but the image might be better if you only do travel along the border pixels. or, as another commenter suggested, with the "grain" if you're going through a filled region. less technical suggestions: as other people said, moving to the start position then shaking the etch a sketch to get rid of the initial line maybe another pattern to fill the regions? like crosshatching would be cool Lookin forward to see what you do next :^)
Also, see that little phillips head screw thing on the stepper motor controller? you can use that to turn down the voltage which might help with the heat buildup. too low and they will stop working though. worth a try at least
You basically summed up the problems that I ran into. I didn't think talk much about them (I probably should have). I took backlash into consideration, ive never heard of that term before but I thought of it as a deadzone and I just stepped an extra 10 steps if the stepper changed direction. I could probably double the resolution but it would take 4x as long and may not produce a 4x better image but definitely a good idea to try. I agree, the path finding could be a lot smarter but it may take a lot longer to process a more efficient or "better looking" path. Thank you for the info and the support, I appreciate it!
@@micah_tiltonGiven how quickly this makes the images, having it take 4 times as long is absolutely nothing compared to how long your 3d printer took to make the parts, even if you discount the failures. By the way, documenting the failures shows you're just the same as us viewers :)
This is great! Also, those "backtrack" lines can probably be removed if you reverse the drawing routine so that it draws the "backtracking" *first*. (If you still want to start in the top-left corner after that, either pathfind to the new starting point (traversing over black sections) first, or reverse recursions individually, or shake the device after initial traversal.) Doing this would result in the image portion essentially re-drawing over the backtrack lines, instead of backtracking lines drawing over the image portion.
Very cool! If you add a pause and shake the Etch a Sketch between after it gets from the start position to the first black pixels block you could get rid of that initial line, but at the same time it tells a bit how the thing works.
two things you could do to improve this: 1: make the program minimize the number of "against the grain" moves while making moves. For example, this would be diagonal lines for the dog. to do this, you would need to first choose a grain that best suits the image (up, down, diagonal left to right, diagonal right to left) then have it minimize all travel movements that are not this grain. 2: start the etch A sketch in it's starting position to eliminate the line from the edge. You would probably need a clear function for the robot, but a tilting plate should do the trick...
I was thinking you could just program the backtrack to go around the edge of the black area, so the line produced adds to the definition of the shape rather than cutting awkwardly across the middle.
I was thinking program the backtrack step to follow the edge of the shaded area, so it forms a nice edge rather than cutting across and making a weird diagonal.
There's a few tricks you can do to get cleaner results (not that this is in any way bad!) such as choosing paths to move from one area of the image to another, such that those transversal paths aren't noticeable (even when taken repeatedly). Eg. rather than starting in the top left corner, you start there, relocate to a spot inside the draw area, clear the screen, and then draw; or coming up/down from the center. Or you can repeatedly pass over a region, adjusting the pointer by only a fraction of its draw width, in order to produce a full-black area, as you push the metallic dust in one direction (rather than smearing some to both sides); look up a tutorial on how to completely clear the screen. I once did a picture of a cityscape along a sloped street, so one of my transversal lines was the edge of the street. Even though it was sloped, I just had to be consistent about how I twisted the knobs. Then all the buildings were rectangular, which made those easy. From there it was just a matter of choosing how to texture each building (vertical stripes, horizontal, windows, etc)
Wow, that’s pretty cool, I love seeing the picture come to life slowly as the algorithm figures out how to draw it, it isn’t in order but that’s what makes it fun to watch
I always feel so shitty when I cut corners but then I realize we all do it, and to be honest, you don't need it to be perfect always. Although it hurts to settle for a sub optimal solution
This is awesome, such a simple concept but I'm sure that software was a pain to write. Now you just gotta make it do greyscale with varying densities of cross-hatching :D
It was difficult. I had many ideas of how to write the software. I see that you do 3d printing stuff and one of my ideas was, if I could make an stl file of the image, I could slice it in CURA and modify the X and Y gcode to work with the etch a sketch. I don't know how this would work tho
Great video! I would love to see a tutorial or project breakdown on the software here. It could also be cool to have pullys instead of direct drive so you can mount the steppers away from the etch a sketch
It looks like you're using reprap Drv8825 style drivers. If you turn down the current (via the voltage pot on the driver) the motors will get less hot, and if you turn up the micro steps (via the config pins), the noise of the motors will go down. Alternately, you could switch to a silent step driver like the TMC2130 or TMC2209.
Wow! That's great! Maybe modify the code a bit to allow it to draw from an SVG? That would allow more control of the texture created by the little needle thing.
Use the full 850x600 resolution of the stepper motors! The Etch-A-Sketch itself does not have a resolution limit, only the dark areas bleed a little outward because of the stylus width. You can still see white between your lines so there is not just resolution but also contrast to be gained from more pixels. Next, the line does not have to start from the top left. The stylus should first go there for position calibration, then go to the first dark pixel on the path, then pause to allow you to clear the image. Maybe there is an electrostatic or electromagnetic way to clear the image without shaking, or you can shake the entire thing with one or two off-center motors - provided the assembly will survive. Then just add a tripod-mounted phone as a camera, control it via ADB, selfie stick button or special timelapse app and play a few seconds of Bad Apple!
Awesome idea! ... now the only thing missing is some way to automatically clear/purge it and then you can build an awesome auto-updating artpiece (or the worlds worst computer display) (and regarding stepper motor noise, get some Trinamic drivers for your next project with steppers! Expensive parts, but very capable and well worth the money)
Heh I'm imagining an alternate reality where all printers are just this. "Whoa dont shake my printout bro I need that." Handouts at a meeing require a wheely bin full of etch-a-sketches
Now you just need to pass the image through an art-filter to create art-style hatchings and shadings the way a human would. Also remember that you can create darker areas by zigzagging lines closer to eachother than 0.5mm too.
Awesome work, thanks yt for showing me another small awesome channel. I'd love to see some sort of dithering algorithm implemented to go from black and white to somewhat of a greyscale image.
Thank you for the support! I thought of dithering the image however it introduces a lot of noise into the image which reduces the overall clarity of the image. Thank you again! I’m glad you enjoyed
@@micah_tilton perhaps you could abuse the fact that the stylus seems to leave a white outline around any black line? putting black lines very close together may possibly result in a lighter gray.
@@stratos2 Yes, I think some etch a sketch artist do things like that. it would be really cool to learn some of those tricks and make the image a lot nicer
since in a core XY motion system a combination of both motors is needed to preform a single axis movement an etch-a-sketch would be more akin to a cross-gantry setup.
Right now when the stepper changes direction, it is going at full speed and when it changes direction, it is like driving a car at highway speeds and doing a hard corner. If it slows down at the end of each straight path, it should vibrate and heat up less
I wondered if there was a bit of binding with them that made it worse though? Like when one motor rotates, the motor on the other side is getting the reaction force to keep the whole bar they are attached to from rotating. When that stepper has to rotate against that, it would take extra force, using more power, and generating more heat. Just my theory
@@WesYarber the bar is quite long and the torque needed to turn the knob is fairly low so I don’t think it caused many problems. With a weaker stepper motor I think it would cause bigger problems
Since you have a pixel-stepper mapping, you could consider doing slightly more complex paths. Part of why your results feel so greyed out is that many etch-a-sketch artists will make multiple passes from different directions to get more of the silver off the panel, letting the dark background show through. For this you could add an algorithm that looks for a minimal cover with rectangles, then have a diagonalization algorithm that uses different slopes to fill each rectangle. GREAT project, I love it!
This is really cool! If you somehow made it quieter (maybe by slowing it down?) and put the motors on the back of the etch a sketch, it could be a cool thing to hang on your wall and have constantly drawing new pictures!
automate it to take requests from a vertex image library via twitch chat and then let your robot go stream on Twitch...seriously tho, as someone who owned a etch a sketch as a kid in the 70's/80's this is amazing! cheers
Almost double the subs in less than a day once you hit 1K 🎉. This was the perfect video to launch. Good thing that etch-a-sketch can self draw your 1000 subscriber plaque 😂
I think you might be losing some e-steps there, which is the noises you hear when your adapters are skipping over the ridges of the knobs. Great job, subbed.
Thank you, glad you enjoyed! That could be the case, however, the knobs hold on very well. the noise could be from the steppers accelerating quickly back and forth. I did not implement acceleration smoothing
I’d adjust the stepper current down a bit to see if that helps with the overheating and vibration. They definitely sound overdriven. Otherwise, fantastic robot!
Coming from 3D printing, if your steppers are hot then you should be able to go to a higher voltage and reduce the amps via the little trim pots on your drivers. With 24 volts and less than 1amp to a motor I can run my printer for hours at high speeds with plenty of torque and they'll still be barely warmer than ambient air. Like 2 degrees F warmer. You can safely run stepper motors at voltages higher than is on their label as long as you keep the wattage under their limit. Cool project!
Most NEMA motors can cope with up to 60C, but in many applications they use the metal frame of the machine they're attached to as heat sinks. It might be a good idea to either drill and tap a metal bar in place of the plastic one, or stick some heat sinks with fins on the backs of these. Or lower the voltage and run them a bit slower, but where's the fun in that?
3:26 If steppers were too hot too quickly it means you have not adjusted the current draw on stepper drivers. Literally you are driving them "too hot" :)
Hey. Start a live stream, take donations at say, 20 bucks for people to upload an audience maturity level image. Video SketchBot doing the work. Profit.
Cool stuff! I wonder if you could prevent some of the heating issues and noise from the steppers by switching pathfinding method to something that prefers long, uninterupted lines, or by drawing curves. Would also be interesting to see this working using vector graphics, since they're more akin to what an Etch-A-Sketch actually does.
Amazing stuff man, I would love to see the code that went into this as I am learning a lot of the concepts you used. Its amazing seeing it go from theory into practice