Hardware:
list down everything used & where (with pics if possible)
- Nema 17 Pancake Motor — Flipper and Rotator for Changing Sides
Firmware:
Klipper
Software:
Arduino
Raspberry Pi
JSCut
VMware
Visual Studio Code (Python Programming Language and Flask)
How everything works:
1. Changing Sides
-incorporate any firmware/software used in explanation(shawn)
-engineering design (i.e. all the physical stuff like the flipper) (kanghao)
2. Drawing (Xinhui)
- Converting to line art
- Open-sourced deep learning algorithm to convert pictures to line art
- https://github.com/vijishmadhavan/ArtLine
- Generating Gcode (Python-based)
- Algorithm 1 (Dithering):
- Pen Data.txt: Store all available Pen Colours & Position
- Key Libraries used: numpy, cv2
- Input: Path to .jpg/.png file | Output: .gcode file
- Algorithm 1 (Dithering):
Process: Specify output file name -> Specify path to image file -> Read image file using .imread() -> Resize the image with custom function -> Limit the colours in the image with custom function -> Pixels are recorded down to generate .gcode file
-
- Algorithm 2 (Converting to Line Art)
- Key Libraries used: numpy, selenium, cv2, os, matplotlib
- Input: Path to .jpg/.png file | Output: .gcode file
- Algorithm 2 (Converting to Line Art)
Process: Convert image to line art using GaussianBlur(), findContour() and drawCountour() from cv2 -> Convert line art to bitmap (.bmp) using Potrace -> Convert .bmp to .gcode using selenium to access JSCut -> Reroute to store .gcode file under a specified folder
- User Interface
- Built with Flask: Python-based Framework for Web Development
- Input Fields:
- Upload Image
- Adjust X & Y Axis Offset
- Output Files:
- .gcode file from dithering (stored as gcode1.gcode, gcode2.gcode etc)
- .gcode file from line art (stored as gcode.gcode, gcode(1).gcode etc)
3. Changing Pen (hung)
-incorporate any firmware/software used in explanation
-engineering design (i.e. all the physical stuff)