A precise and elegant system for automated drawing using Arduino control.
- 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.
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 |
- Assemble the 3D-printed frame.
- Mount the motors and attach the pen mechanism.
- Wire components as per the circuit diagram.
# Clone the repository
git clone https://github.com/NacreousDawn596/Penplotter.git
nix-shell
python3 -m venv venv
source venv/bin/activate # On Windows, use 'venv\Scripts\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.
python3 manual.py /path/to/image
Controls:
- Middle Click: Show/hide the image.
- Right Click: Draw connected polygons.
- Left Click: Draw a separate point and start a new polygon.
- Close Window: Saves the drawing.
python3 main.py -h # Show help command, adjust the parameters as needed. almost every image needs its own parameters.
Example:
python3 main.py criam.jpg criam # Convert 'criam.jpg' to a sketch and save the code to ./criam/criam.ino
Alternatively, use an online AI tool to convert complex images to sketches before processing with main.py
.
Simply navigate to the folder where you saved your file.ino then:
arduino-cli board list
to show the available boards and finally upload using:
alias ards="sudo arduino-cli compile --fqbn <board, like arduino:avr:mega> ./
sudo arduino-cli upload -p <Port, like /dev/ttyACM0> --fqbn <board, like arduino:avr:mega> ./"
Alternatively you can use the ArduinoIDE
Examples of drawings: faces, cars, landscapes, etc....
- ✅ Add SVG file support for more complex designs.
- ✅ Implement wireless control (Bluetooth/Wi-Fi).
- ✅ Enhance precision for intricate patterns.
- ✅ Integrate with Raspberry Pi or ESP32 for advanced functionality.
Crafted with ❤️ by the PenPlotter Team
💡 CRIAM · LinkedIn Page