Eigenen 15$ Wandplotter bauen: Günstiges DIY mit Arduino
Komponenten und Zubehör
![]() |
|
× | 1 | |||
|
× | 2 | ||||
|
× | 1 | ||||
|
× | 1 | ||||
![]() |
|
× | 1 |
Notwendige Werkzeuge und Maschinen
![]() |
|
|||
![]() |
|
Apps und Online-Dienste
![]() |
|
Über dieses Projekt
Hintergrund
Ich erinnere mich nicht genau, wann es anfing, aber ich glaube so um 1999. Ich und ein Freund, der in Robotik und Elektronik begeistert war, diskutierten den Bau eines Roboters zum Zeichnen auf Whiteboards. Natürlich hatten wir nie Zeit für etwas Ernsthaftes, das Ökosystem für Hobby-Mikrocontroller war nicht das, was es heute ist.
2002 zeigte mir mein Freund die großartige Arbeit von Jürg Lehni und Uli Franke – Hektor. Ich war sehr erfreut, etwas Ähnliches zu sehen, wovon wir geträumt hatten, tatsächlich gebaut und mit der Welt geteilt! Ich war beruhigt.
Später zeigte ich jemandem die Hektor-Projekt-Website und schwärmte, wie fantastisch ich es fand. Diesmal schaute ich aber mehr auf die Details und erkannte, dass es eine Eigenschaft fehlte, die ich mir ursprünglich für einen Wandplotter vorgestellt hatte. Ich wollte, dass er autark ist, alles in einer Einheit mit nur Drähten, die ihn mit der Wand verbinden. Wenn ich mich recht erinnere, schaute ich damals auf Schrittmotor-Gewichte und realisierte, dass meine Idee nicht fliegen würde.
Die Zeit verging und in der Hobby-Robotik passierte einiges. 2014 hatte ich Arduinos und RC-Servos für verschiedene Kamerasteuerungsprojekte genutzt, hatte Zugang zu 3D-Druck und tatsächlich etwas Freizeit (!?!). Nachdem ich über den extrem günstigen 28BYJ-48 Schrittmotor stolperte, wusste ich genau, was ich bauen würde:
Den günstigsten minimalistischen Wandplotter.
Erster Versuch
Nach ewiger Wartezeit – fünf Wochen oder so – für Teile aus China begann ich mit dem Bau des Plotters. Ich versuchte, ein so kompaktes Skelett wie möglich zu bauen, um Arduino Uno, Schrittmotoren, Servo und Batterie unterzubringen. Ich kann mich nicht erinnern, wie viele „dumme“, ich meine weniger clevere, Designs ich in OpenSCAD machte, bis der Groschen fiel. Man muss die Fäden kreuzen!

Die Kreuzungsgeometrie bringt einen riesigen Vorteil bei der Aufrechterhaltung der korrekten Position an der Wand. Der Nachteil ist weniger Stabilität gegen Rotation um die vertikale Achse. Dies wurde durch das Hinzufügen von Kabelbindern an den Ecken des Plotters behoben, so justiert, dass sie die Rotation verhindern.
Der erste Plotter in Hardware sah aus wie das Bild unten. In meinem Streben nach günstigsten Teilen wählte ich Nähgarn für Navigation und Schwerkraftausgleich. Die Fäden kreuzten sich oben am 3D-gedruckten Chassis durch kleine Löcher im Druck. Wie man (fast) sehen kann, ist es eine herausfordernde Geometrie, die Fäden sauber vom Stift und den Kabeln laufen zu lassen (die Verkabelung vom Arduino zum rechten Schrittmotortreiber fehlt im Bild, daher sieht es weniger schlimm aus als es war). Der Stift wird von einem RC-Servo, der den gesamten Plotter von der Wand wegdrückt, von der Zeichenoberfläche abgehoben.

Dieser erste Plotter hatte ein hardcodiertes Design in seinem Programm auf dem Arduino. Das Setup erfolgte, indem man einen Meter Faden auf jeder Seite abrollte und sie einen Meter voneinander entfernt befestigte. Damit kannte der Plotter das Koordinatensystem beim Einschalten und konnte die Pfade in seinem Speicher zeichnen. Es funktionierte, war aber ein Chaos in der Anwendung. Den Arduino neu flashen zu müssen, wenn man das Design ändert, war nicht angenehm. Auch die Beschränkung auf das Ein-Meter-Setup war frustrierend.
Es war eine gute Plattform, um den Problemraum besser zu verstehen. Ein paar schnelle Erkenntnisse:
- Die Schrittmotoren sind nicht so stark – Die Spulen waren zu groß.
- Stiftspitze versetzt zur Fadenkreuzung – Übles Wackeln
Das Gute an diesen Problemen war, dass sie mich zwangen, etwas Aufwand in eine vernünftige Beschleunigungs- und Bremsimplementierung zu stecken...
Evolution
Plotter Nummer zwei (der weiße auf dem Titelbild) bekam ein paar Verbesserungen:
- Kleinere Spulen.
- Spulen über dem Stift für bessere Fadenführung und weniger Pendelbewegung.
- Elektronik zugänglicher.
- SD-Karte zum Speichern der Plots.
- Neuer Setup-Prozess für variable Distanz zwischen Ankern.
- IR-Empfänger für Fernsteuerung.
SD-Kartenleser und IR-Empfänger hinzuzufügen war viel einfacher als ich zunächst dachte. Ein „Warum habe ich das nicht von Anfang an gemacht“-Moment. Der neue Setup-Prozess funktionierte ganz gut und gab viel mehr Flexibilität für große und kleine Zeichnungen. Größter Plot bisher war ca. 2,5 Meter breit.

Das Setup erfolgt durch Navigieren des Plotters mit der Fernbedienung. Zuerst Position A markieren, dann zu Position B fahren und diese markieren. Ich markierte 20 cm Markierungen auf dem linken und rechten Nähgarn, um manuelle Messungen zu vermeiden. Die Distanz m ergibt sich einfach durch Zählen der Schritte des linken Schrittmotors beim Bewegen von A nach B. Sobald der Plotter d kennt und seine aktuelle Position bei B ist, kann man sich bewegen und überall im Raum zwischen und unter den Ankerpunkten plotten.
Plotter Nummer drei (der orangene im Video unten) ist seinem Vorgänger sehr ähnlich, nur ein paar Änderungen:
- Gesamte Elektronik als Shield für den Arduino aufgebaut.
- Batterie-Level-Watchdog, der „Pause – Batterie wechseln – Fortsetzen“ erlaubt.
Das waren alles gute Absichten, aber: Die Schrittmotortreiber-ICs direkt auf dem Shield unterzubringen, statt der mitgelieferten Treiber, bedeutete keine blinkenden LEDs mehr. Traurig anzusehen. Super langweilig. Auch die Onboard-LED des Arduino wird vom Shield verdeckt, was die praktischen Blinksignale beim Empfang des IR-Signals verbirgt – man wird unsicher, ob man den Kalibrierknopf gedrückt hat. Die Batterieüberwachung schien eine gute Idee, aber in der Praxis griff ich bei langen Plots immer auf Kabelstrom zurück.
Plotter Nummer vier (Der fabulöse!) wurde als Geburtstagsgeschenk für meinen Bruder gebaut. Er ist bei Weitem der am besten aussehende mit Shield-Elektronik, aber den blinkenden Treibern in all ihrer Pracht sichtbar. Beachten Sie, dass Kabel unnötig lang gelassen wurden, nur für die Optik!

Plotter Nummer fünf (MacGyver-Edition) wurde tatsächlich als Proof-of-Concept für diese Projektbeschreibung gebaut. Ich wollte zeigen, dass man so einen Plotter ohne fancy Werkzeuge bauen kann. Ich setzte mich in meine Garage und schaute, woraus ich ihn bauen konnte. Bindedraht (weicher Metalldraht für Bewehrungsverbindungen) war meine erste offensichtliche Wahl. Beim Suchen fand ich eine Rolle Klebeband und dachte, das spart Zeit und gibt mehr Stabilität. Kabelbinder und Gaffer-Tape standen auch auf der Liste, wurden aber nicht gebraucht. Das Einzige, was ich nicht wirklich hinbekam, waren gute Spulen ohne viel Arbeit. Ich ging zurück ins Haus für Kaffee und da war er: der Deckel eines Milchbehälters! Ehrlich gesagt dauerte der Bau des Rahmens für Plotter fünf weniger lang als der 3D-Druck des Originaldesigns. Und er funktioniert fast genauso gut wie die anderen, die ich gebaut habe.

Plotter Nummer sechs
Warte, was? Irgendwie habe ich noch einen gebaut. Konnte nicht anders. Ein paar Dinge, die mich störten, mussten angegangen werden. Auch Verbesserungen dank einiger Kommentare hier.
- Die 3D-Druckgröße des Plotters war einfach zu groß und langsam.
- Den Stift statt des gesamten Plotters zu bewegen, schien zumindest einen Versuch wert.
- Servo und IR-Empfänger auf die „analogen“ Pins zu verschieben, würde serielles Debugging erlauben! (Danke jrcTexas für den Hinweis, dass ich das konnte!)
Hier ist das Ergebnis:

Wie gut funktioniert dieses neue Ding? Gut und schlecht. Die Änderungen fühlen sich insgesamt gut an, aber es gibt ein Problem. Da der Stift nicht am Rahmen fixiert ist, wackelt er beim Plotten leicht. Das macht die Genauigkeit schlechter als bei der vorherigen Generation. Der riesige Vorteil ist, dass die digitalen I/O-Pins 0-1 frei werden und für Debugging genutzt werden können. Das macht das Leben so viel einfacher!
Ich begann auch Stresstests an den Schrittmotoren, um herauszufinden, wie man Schrittverluste vermeidet:
Aus den Stresstests ergab sich, dass ich etwas langsamer fahren musste, um genug Drehmoment zu haben. Ich berechnete auch den tatsächlichen Zug an den Fäden, abhängig davon, wo der Plotter an der Wand ist:

Ich könnte die Stresstests fortsetzen, um herauszufinden, wie verschiedene Schrittsequenzen und Spannungen dabei eine Rolle spielen. Irgendwann.
Plotter nutzen
Ich mache ein Video, das zeigt, wie Setup und Plotten in Echtzeit und Realität funktionieren.
Wie im Video zu sehen ist, ist das Setup ziemlich geradlinig und nimmt wenig Zeit in Anspruch. Die typische Herausforderung beim Setup ist, gute Ankerpunkte zu finden. Für Whiteboards habe ich meist kleine Saugnäpfe genutzt, an die ich eine Schlaufe aus Nähgarn oder Ähnlichem klebte, um den Plotter mit einer Büroklammer aufzuhängen. Ein wichtiger Aspekt des Ankerpunkts ist, den Faden so nah wie möglich an der Wand zu führen, um besseren Druck vom Stift auf die Wand zu bekommen.
Ein weiterer Stolperstein: Hoch an breiten Plots plotten. Wenn zu viel Drehmoment nötig ist, um den Faden zu ziehen, fangen die Schrittmotoren an, Schritte zu verlieren, wodurch der Plotter seine exakte Position verliert, da keine Encoder helfen. Genereller Rat: Hoch aufhängen, tief plotten.

Plotter-Hardware
Den Plotter zu bauen ist ziemlich geradlinig und sieht aus wie die meisten anderen Arduino-Projekte. Man hat einen Arduino Uno, einige Komponenten, die man nutzen will, und ein Bündel Kabel, um alles zu verbinden.
Wie in den Schematics zu sehen, werden so gut wie alle digitalen Pins genutzt und dann eventuell noch einige analoge, falls man z. B. Batteriestände überwachen will. Ein Haken: Man landet bei Pin 0-1, die als TX/RX doppelt belegt sind. Um Dinge nicht zu braten, muss man alles, was dort angeschlossen ist, beim Programmieren des Arduino trennen! Deshalb baute ich meine neueren Plotters mit der gesamten Elektronik auf einem Shield, das man zum Programmieren einfach abnehmen kann.
Der RC-Servo kann pretty much jeder Servo jeder Dimension sein. Man muss nur kreativ sein und ihn so montieren, dass er den Plotter von der Wand wegdrücken kann (oder nicht).
Die Schrittmotoren und Treiber könnten potenziell auf andere Arten getauscht werden, aber die kleinen 28BYJ-48 sind so praktisch. Sie sind nicht sehr stark, und ich würde gerne irgendwann einen viel schnelleren Plotter bauen. Die Motoren sind für 5 V ausgelegt, aber ich habe sie glücklich mit 5–9 V betrieben ohne Probleme. Sie werden heiß, aber ich habe noch keinen gebraten.
Das Micro-SD-Kartenmodul lässt sich unkompliziert an den Arduino anschließen, entweder über die SPI-Interface-Pins oder digitale Pins 10–13.
Der IR-Empfänger TSOP 4838 funktioniert auch direkt am Arduino.
Mein dritter und vierter Plotter hatten einen Batterie-Level-Watchdog über einen Widerstandsspannungsteiler an einem analogen Eingang. Ich dachte auch an Temperaturüberwachung der Schrittmotoren auf ähnliche Weise. Mein Rat: Einfach weglassen.

Ich empfehle dringend, Schritt für Schritt zu bauen und zu testen. Nicht alles zusammenbauen, Grafiken auf die SD-Karte packen und hoffen, sofort zu plotten. Ich empfehle folgende Reihenfolge:
- IR-Empfänger testen. Nutzen Sie das IRRecvDump-Beispiel der IRRemote-Bibliothek. Sie brauchen das sowieso, um die Codes Ihrer Fernbedienungstasten aufzuzeichnen.
- Servo testen. Z. B. das Sweep-Beispiel der Servo-Bibliothek.
- SD-Karte testen. Mit den Beispielen der SD-Bibliothek spielen.
- Schrittmotoren steuern testen. Mit den Beispielen der Stepper-Bibliothek spielen.
- Wenn Sie sich mit den obigen Teilen wohlfühlen, den Plotter-Code auf den Arduino flashen und dann alle Komponenten anschließen (noch nicht zusammenbauen und hübsch machen).
- Arduino einschauen und schauen, was passiert. Wenn alles klappt, sollte der Servo direkt nach dem Einschalten einen kleinen Sweep machen.
- Versuchen Sie, die Schrittmotoren von der Fernbedienung zu steuern. Herausfinden, welcher Schrittmotor links und welcher rechts ist. Sicherstellen, dass sie so verdrahtet sind, dass der „REEL_IN“-Knopf tatsächlich Faden einzieht und nicht das Gegenteil. Ich gebe Ihnen 50 % Chance, dass Sie die Pin-Reihenfolge entweder in Software oder Hardware umdrehen müssen. (Nicht der Mühe wert, es ist so einfach, die Stecker einfach umzudrehen. Vertrauen, aber prüfen!)
- Wenn Sie sicher sind, dass alles oben funktioniert, sind Sie bereit, alles in Plotter-Form zusammenzubauen und es an der Wand zu testen!
Ich gebe hier keine super-detaillierten Montageanweisungen. Es ist besser, Sie erkunden Ihre Hardware und finden Lösungen, die für Sie funktionieren. Lassen Sie sich vom „MacGyver“-Plotter oben inspirieren, halten Sie es einfach. Sie können später immer noch fancy und perfekt machen. Unten ist ein sehr nicht-kohärentes Video von mir, in dem ich über Hardware-Dinge rede. Sie müssen sich auch mit der Software und dem Erstellen einer Plot-Datei vertraut machen, siehe weiter unten.
Plotter-Software
Die gesamte Software ist hier auf GitHub verfügbar. Ich entschuldige mich für den Zustand des Codes, er ist wirklich ein Hack. Vielleicht nehme ich mir die Zeit und bereinige ihn, aber es ist sehr wahrscheinlich, dass Sie ihn vorher ansehen. Sorry.
Die Software auf dem Plotter macht im Wesentlichen zwei Dinge:
- Navigation und Setup von der Fernbedienung erlauben
- Den Inhalt einer .svg-Datei zeichnen, die auf der SD-Karte gespeichert ist.
Da der Programmspeicher des Arduino Uno recht begrenzt ist, wurden viele hässliche Abkürzungen genommen, um den Code in den Speicher zu pressen. Das war besonders beim ersten Plotter ohne SD-Karte der Fall, wo die Grafiken auch direkt in den Arduino programmiert werden mussten. Das Parsen von .svg ist extrem begrenzt und kann nur Pfade mit Linien (keine Kurven) verarbeiten und erfordert einen spezifischen .svg-Dialekt, den ich mit INKSCAPE ausgebe.
Die .svg-Dateien werden im obersten Ordner der SD-Karte als 1.svg, 2.svg usw. gespeichert. Die zu zeichnende Datei wird durch Drücken der entsprechenden Taste auf der Fernbedienung ausgewählt. So kann ich den Plotter mit ein paar Favoriten vorbereiten, die ich schnell auf Whiteboards verewigen kann.
Die Arduino IDE wurde zum Bauen und Programmieren des Controllers genutzt. Die einzige zusätzliche Bibliothek ist IRRemote (von shirriff).
Eine plottbare Datei erstellen
Es gibt wahrscheinlich hunderte Wege, eine .svg-Datei zu erstellen, die plottet, aber ich beschreibe hier nur einen:
- INKSCAPE nutzen
- Was auch immer Sie wollen zeichnen und in Pfade umwandeln: „Pfad → Objekt in Pfad“
- „Pfade nach Knoten bearbeiten (F2)“ wählen
- Alle einzelnen Pfade und Knoten markieren. Strg+A zweimal
- In Linien umwandeln: „Erweiterungen → Pfad modifizieren → Beziers glätten“
- Als „Inkscape SVG“ speichern
- Im Simulator testen, siehe unten
Der Simulator
Noch was! Es gibt einen Simulator. Es ist mehr oder weniger Pflicht, jeden Plot, den man machen will, vorher durch den Simulator zu jagen, bevor man ihn druckt. Das ist vor allem nötig, weil das .svg-Parsing so schlecht ist, dass die Chancen hoch sind, dass etwas nicht richtig vom Plotter interpretiert wird.
Der Simulator funktioniert, indem er den Plotter-Code für macOS oder Linux kompiliert und die „digitalWrite“-Aufrufe durch Ausgaben auf stdout ersetzt (Timestamp, Pin, Status), was dann in eine Visualisierungs-UI gepiped wird.
Der Simulator wurde geschrieben, nachdem ich einen Bug hatte, der einen 2-Stunden-Druck nach 95 % miserabel verhunzte. Ich war ratlos, was passiert war, und realisierte, ich brauchte eine Möglichkeit zum Debuggen. Es stellte sich als Float-Parsing-Bug heraus, verursacht durch eine Zahl in der .svg mit absurden Dezimalstellen. (Ich parste selbst, da Bibliotheksfunktionen nicht in den Speicher passten). Ein toller Bug, weil er mich zwang, den Simulator zu bauen.
Den Simulator während der Entwicklung zu nutzen, hilft enorm. Er kann viel, viel schneller als Echtzeit laufen, was sehr praktisch ist. Er gibt auch aus, wie lange der Plot in Echtzeit tatsächlich dauern wird. In der Nähe des Simulator-Codes gibt es ein Readme zur Nutzung.
Zukünftige Verbesserungen
Hier eine Liste aus dem Stegreif, was verbessert werden könnte:
- Kein .svg-Parsing auf dem Plotter, sondern einen echten Parser am Computer und ein gutes Format für den Plotter erzeugen.
- Besseres Bremsen, aktuelle Software liest nur ein Liniensegment voraus, was manchmal zu wenig ist, wenn eine leichte Kurve in eine scharfe übergeht.
- Encoder oder Feedback, um sich nicht zu verirren, wenn Schritte verloren gehen.
- Richtigen, sauberen Code schreiben.
- WiFi-fähigen Controller nutzen und Handy statt Fernbedienung.
Ein paar abschließende Worte
Wie Sie mittlerweile verstehen, habe ich काफी Zeit mit diesem Projekt verbracht,mostly vor langer Zeit. Ich finde es immer noch spaßig, damit zu spielen, und habe Tonnen von Ideen für Verbesserungen, neue Variationen und neue Wände zu dekorieren. Aber ich habe einfach keine Zeit, es gibt so viele andere Projekte und Dinge wie Familie und Arbeit.
Was ich wirklich toll fände: Wenn einige von euch feinen Leuten im Internet etwas aus der Lektüre herausziehen und Inspiration für eigene Projekte bekommen. Ich würde mich auch freuen, wenn einige von euch ihre eigenen Plotter bauen und zum Laufen bringen!
Obwohl ich glaube, ich habe einen minimalistischen Plotter gebaut, schaffte ich es nicht, die Kosten unter 10 $ zu drücken, wie ich es mir zum Ziel gesetzt hatte. Aber da Teile immer günstiger werden, ist das wahrscheinlich in einem Jahr so weit...
Oh, noch was. Bitte bringt mich nicht um wegen des Spaghetti-Codes. Er war nie zum Teilen geschrieben, ich war beschäftigt, an der Wand zu zeichnen, und kümmerte mich nicht um Code. Ich entschied mich trotzdem, ihn zu teilen, also freut euch darüber.
Bon Voyage,
Fredrik
Code
Stringent
Code, Dokumentation und CAD-Zeichnungen für den Wandplotter Stringent.
https://github.com/snebragd/stringent
Benutzerdefinierte Teile und Gehäuse
Neues STL für die Basis hochgeladen, das alte war irgendwie kaputt.
Neue Basis für den Plotter. Kleinerer Footprint → weniger Druckzeit. Servo-Aktion bewegt nun den Stift statt den Plotter von der Wand wegzudrücken.
Schaltpläne
Einfaches Elektronik-Schema
Herstellungsprozess
- Instandhaltungsproduktivität maximieren durch Multi-Skill-Training
- Qualitätskontrolle: Der Eckpfeiler der Motorzuverlässigkeit
- Wie Trending die Zuverlässigkeit von Elektromotoren verbessert
- Proaktive Zustandsüberwachung für Maschinen: Ausfallzeiten verhindern & Zuverlässigkeit steigern
- Verständnis von Motorwicklungen: Wichtige Unterschiede und industrielle Anwendungen
- Explosionsgeschützten Motor richtig wählen: Umfassender Leitfaden
- Elektromotor-Lagerung: Best Practices für maximale Lebensdauer & Leistung
- DC- vs. AC-Motoren: Wesentliche Unterschiede und die richtige Wahl für Ihre Anwendung
- Den richtigen Motor wählen: Wichtige Unterschiede zwischen AC- und DC-Motoren
- Den richtigen Getriebetyp wählen: Expertentipps für optimales Drehmoment und Effizienz




