Pen Plotter Project

Pen Plotter in Action

A precise and elegant system for automated drawing using Arduino control.

Features

High-Precision Movement

DC motors with encoders ensure accurate X/Y/Z-axis positioning.

Interactive GUI

Built with Python and Tkinter for shape design and command execution.

3D-Printed Frame

Customizable modular structure for easy assembly.

Automated Workflow

Converts digital designs into physical drawings via Arduino.

Circuit Diagram

PDF cannot be displayed. Download it instead.

Component Quantity Description
416 DC Motor + Encoder 3 Controls X/Y/Z-axis movement
Arduino Uno R3 1 Main microcontroller
9V Battery 1 Power supply
  1. Assemble the 3D-printed frame
  2. Mount the motors and attach the pen mechanism
  3. Wire components as per the circuit diagram
git clone https://github.com/NacreousDawn596/Penplotter.git
For NixOS Users:
nix-shell
For Non-NixOS Users:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# install the `imagemagick` package as well if you wanna use the manual method, it's available in most package managers... or compile it from here.

Usage

Manual Drawing via GUI
python3 manual.py /path/to/image
Controls:
  • Middle Click: Show/hide image
  • Right Click: Draw connected polygons
  • Left Click: Start new polygon
  • Close Window: Saves drawing
Automatic Conversion
python3 main.py criam.jpg criam

Converts 'criam.jpg' to sketch code in ./criam/criam.ino

For complex images, use online AI tools first!
Upload to Arduino
arduino-cli board list
alias ards="sudo arduino-cli compile --fqbn arduino:avr:mega ./
sudo arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:mega ./"

Or use Arduino IDE for uploading

Drawing Results
Triangle
Circle

Examples include faces, cars, landscapes, and geometric shapes

Future Improvements
SVG file support
Wireless control (Bluetooth/Wi-Fi)
Enhanced precision
Raspberry Pi/ESP32 integration

Project Supervision

Nour el Bachari

Lead Project Mentor

Providing technical oversight and research guidance

Project Team

Kamal Aferiad

Team Lead

Hardware & Software Integration

Abd elhakim Salmane

Mech Lead

Mechanical Design & 3D Modeling

Moncef Farah

Mech Engineering

Mechanical Parts Assembling

Kamal Aferiad

Mech Engineering

Mechanical Parts Assembling

Hiba Ouzit

Mech Engineering

Mechanical Parts Assembling

Doha Saaad

Mech Engineering

Mechanical Parts Assembling

Kamal Aferiad

Code Lead

GUI Development & Algorithms

Hafsa El Ghazouani

Development

Contribution to Debugging

Salima Lamoudden

Development

Algorithm optimizations

Aya Elghaidouni

Collaboration Catalyst

Enhancing team cohesion and creative problem-solving through interpersonal facilitation

Maha Mekouar

Collaboration Catalyst

Enhancing team cohesion and creative problem-solving through interpersonal facilitation

Wiam Naciri

Team Vitality Coordinator

Enhancing team cohesion and maintaining optimal creative flow through positive engagement