Working Principle

Hardware:

list down everything used & where (with pics if possible)

  1. Nema 17 Pancake Motor — Flipper and Rotator for Changing Sides
Figure 1: Flipper Motor
Figure 1: Flipper Motor
Figure 2: Rotator Motor
Figure 2: Rotating Motor

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

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

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:
      1. Upload Image
      2. Adjust X & Y Axis Offset
    • Output Files:
      1. .gcode file from dithering (stored as gcode1.gcode, gcode2.gcode etc)
      2. .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)