Skip to content

benb116/Etch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

forthebadge

Etch

Etch is an auto-drawing digital Etch a Sketch built on top of a Raspberry Pi. Stepper motors mounted under a television turn 3D printed knobs to match the drawing motion on the screen. The knobs can also be turned by hand to manually draw on the display.

This repository contains the following:

  • 3D models of the shell, knobs, and other support pieces
  • Altium PCB design files and Gerber files for the custom circuit boards
  • RPi files for the server and motor/sensor integration
  • Python scripts for generating art files from images

About

Hardware

Etch is built around a Raspberry Pi connected to a TV and two stepper motors. The Pi is connected to a custom breakout board that links with two other custom boards mounted to the back of the motors.

The motor boards serve two functions:

  1. AUTO Mode - Take in step and direction signals from the breakout board and route them to the onboard stepper driver.
  2. MANUAL Mode - Sense the orientation of a diametrically polarized magnet on the back of the motor axis. The motor position is then sent to the Pi to monitor the user's input.

The motors, shaft couplers, and knobs are mounted to two brackets that are adhered to the TV. 3D printed shell pieces are connected to an aluminum extrusion frame and wrapped in red vinyl.

Read more about ME work and EE work.

Software

The Pi runs a Python webserver that integrates with the motors and sensors. The server communicates with a webpage running in a browser that is displayed on the screen. A websocket connection passes information back and forth about art data, timing, and user input. In AUTO Mode, the server also runs through a script of artwork to display.

Art files contain the lists of points in order of travel. They also include information about drawing speed and knob rotation rates. These files can be generated with different methods:

  • ImageGen.py - Take a full image and generate a path that traces contours and fills in darker regions.
  • PathFinder.py - Identifies the path in a single line drawing
  • DIY - You can use any method that outputs a series of line segments

Read more about the Pi code and Art code.

Further work

Hardware

  • Upgrade and fix the custom PCBs
  • Add user input to toggle between AUTO and MANUAL

Software

  • Improve artwork generation algorithms
  • Develop a show script
  • Add support for arcs and splines
  • Improve webpage performance
  • Create standalone site with artwork

Artwork

  • Integrate Open Street Map
  • Math and geometry
  • Add support for different hatching schemes

Acknowledgements

A big thanks to many people and organizations for their help and advice on this project.

About

An auto-drawing digital Etch a Skech

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published