Skip to content

deannagelosi/SquiggleDraw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SquiggleDraw

Contributor: Deanna Gelosi

Overview

Generate a scribble drawing on your phone and see a robot draw it live! Each drawing produces a receipt documenting how it was created. SquiggleDraw uses an AxiDraw and thermal receipt printer controlled from your phone with a web app. Click the web app to get started (invite key required).

Languages: Python3, HTML/CSS, Javascript, QML

Libraries: Adafruit Thermal Printer library, p5.js, AxiDraw Python API library, PyQt

Development Environments: VS Code, Figma, TablePlus

Reference: Squiggle Generator Processing (Java) project

Fig.1 - A workflow of SquiggleDraw, starting with 1) the mobile UI, 2) the AxiDraw CNC plotter, 3) the final drawing, and 4) the receipt documenting squiggle parameters.

Features

SquiggleDraw is an AWS Amplify app that creates generative scribble drawings based on three parameters:

  1. Line length
  2. Turn radius: ranges between 1/4 $\pi$ and $\pi$
  3. Compression: the space between points that make up a line

The app connects to a AWS Dynamo DB which stores the parameters and other user defined values (title and author) and sends it to a queue. The queue reads from a Postgres database hosted on a Raspberry Pi which also controls the AxiDraw, thermal printer, and LCD control interface.

Once a job is chosen, the AxiDraw recreates the scribble on paper and a thermal printer creates a receipt documenting the user selected parameters.

How to Run

Mobile UI

Visit the mobile web app to load SquiggleDraw (invite key required).

Raspberry Pi and LCD screen

On the Raspberry Pi, initiate the AWS connection.

python3 rasp_pi/connect_AWS.py

Then, run the following command to start the touchscreen UI on the Raspberry Pi.

python3 rasp_pi/lcd_controller.py

SSH over VPN

If needed, use Tailscale to SSH over a VPN.

# Check tailscale is running
sudo tailscale up

# Find te tailscale ip address:
tailscale ip -4

AxiDraw and Thermal Printer

Connect the AxiDraw to the Raspberry Pi using USB.

Connect the thermal printer to the Raspberry Pi using a serial connection.

System Diagram

Fig.2 - The system diagram for SquiggleDraw containing both the AWS and Raspberry Pi setup.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published