Nachgebaut - Raspberry Plotter

Vor einiger Zeit bin ich auf einen Artikel auf heise.de aufmerksam geworden: https://www.heise.de/ratgeber/Bauanleitung-fuer-den-einfachsten-Plotter-der-Welt-4684153.html

Ich fand die Idee eines preiswerten und einfachen Plotters recht witzig und hatte beschlossen, das Projekt nachzubauen. Hier eine kleine Zusammenfassung und Hinweise dazu.

Hardware - Voraussetzungen:

  • Raspberry Pi 3 oder 4
  • dünne Holzplättchen oder Eisstiele
  • 3 Servos
  • Verbindungskabel
  • evtl. Steckplatine
  • Heißkleber
  • stabile Unterlage

Software - Vorausetzungen:

  • Python 3.6+
Es bietet sich an, auf dem Rasberry Pi ein aktuelles Raspbian (Buster) am Laufen zu haben. Ansonsten muss man anders sicherstellen, dass ein aktuelles Python installiert ist.

Sofern man der Anleitung folgt, kann eigentlich nichts schief gehen. Der Plotter ist schnell gebaut. Allerdings muss man aufpassen, dass der Plotterarm wagerecht ausgerichtet ist. Ansonsten verändert sich der Abstand des Stiftes zum Untergrund je nach Position des Arms. Das kann aber gut durch den Heißkleber kontrolliert werden.

Am Ende erfolgte der Plot des Beispielbildes - und wie ich finde gar nicht mal so viel schlechter als aus der Anleitung.

Result

Mit dem folgendem Dockerfile kann man sich ein passendes Docker-Image auf Basis des Heise-Artikels [1] mit allen notwendigen Softwarekomponenten erstellen:

FROM arm32v7/debian:bullseye-slim

MAINTAINER Ronny Friedland

RUN apt-get update
RUN apt-get install -y git wget unzip python3-pip build-essential libjpeg-dev zlib1g-dev

WORKDIR /tmp

RUN wget https://github.com/joan2937/pigpio/archive/master.zip
RUN unzip master.zip

WORKDIR /tmp/pigpio-master

RUN make
RUN make install

WORKDIR /plotter

RUN git clone https://github.com/MakeMagazinDE/BrachioGraph /plotter

RUN pip3 install --upgrade -r requirements.txt

ENV sourcefile tesla.json

CMD pigpiod && python3 -c "from brachiograph import BrachioGraph;BrachioGraph(inner_arm=8, outer_arm=8, bounds=(-8, 4, 4, 13), servo_1_degree_ms=-10, servo_2_degree_ms=10, servo_1_centre=1500, servo_2_centre=1500, pw_down=1850, pw_up=1500).plot_file('${sourcefile}')"
  • Docker-Image bauen: docker build -f Dockerfile -t plotter .
  • Docker-Container starten: docker run -it --rm --privileged --device /dev/gpiomem -e sourcefile=<plot-datei> plotter
[1]https://www.heise.de/ratgeber/Bauanleitung-fuer-den-einfachsten-Plotter-der-Welt-4684153.html