Einen Stiftplotter bauen: Zwei Schrittmotorachsen, die ankommen
Ein Plotter, der sich selbst referenziert, ein 100-mm-Quadrat zeichnet, das auf wenige Zehntelmillimeter schließt, und es wiederholt.
Was du baust
Einen kartesischen Stiftplotter: zwei riemengetriebene Achsen im rechten Winkel, einen Stift, der hebt, und einen Controller, der weiß, wo der Stift ist – weil er beim Start gegen einen Schalter referenzierte und seither jeden Impuls zählte.
Es lohnt Klarheit, warum das eine gute erste Präzisionsmaschine ist – denn das auffälligste Projekt dieser Seite ist es nicht. Alles andere hier – Linienfolger, Hindernisvermeider, Balancierer – hat Feedback. Ein Sensor sieht die Welt, der Code reagiert, Fehler werden fortlaufend korrigiert. Diese Maschine hat nichts davon. Nichts an ihr misst, wo der Stift ist. Der einzige Grund, warum eine auf Papier gezeichnete Linie am richtigen Ort landet, ist, dass jede eingebaute Annahme stimmte.
Das macht sie zu einer ungewöhnlich ehrlichen Lehrerin. Ein driftender Linienfolger folgt weiter der Linie. Ein driftender Plotter zeichnet ein Quadrat, das nicht schließt – und die Lücke liegt direkt dort in Tinte auf Papier, in Millimetern, und sagt exakt, wie falsch man lag.
Die Zahl, die das Projekt treibt
Ein 100-mm-Quadrat zeichnen und die Lücke messen, wo die letzte Ecke die erste treffen sollte.
Diese eine Messung ist die gesamte Anzeigetafel des Projekts – und ihr Wert liegt darin, dass die Form des Fehlers die Ursache verrät:
| Was das Quadrat tut | Ursache | Wo sie behandelt wird |
|---|---|---|
| Konsistent wenige Prozent zu groß oder klein | Falsche Schritte/mm | Kalibrierung |
| Bei jeder Größe um denselben Betrag offen | Spiel | Riemenspannung und Madenschrauben |
| Jedes Mal um anders viel offen | Schrittverlust | Strom, Drehzahl, Beschleunigung |
| Schließt, ist aber Parallelogramm | Achsen nicht rechtwinklig | Der Rahmen |
| Schließt kalt, öffnet bei Tempo | Jenseits Anlaufgrenzfrequenz oder Eckdrehzahl | Beschleunigung oder 24 V |
Vier dieser fünf sind Einstellungen. Eines ist ein Rahmenproblem. Zu wissen, welches man hat, bevor man Dinge ändert, ist der Großteil der Fähigkeit.
Stückliste
| Teil | Menge | Kosten | Hinweise |
|---|---|---|---|
| NEMA-17-Schrittmotor, 1,5–1,8 A | 2 | 18–28 £ | 40-mm-Gehäuse. Die 20-mm-Pancakes meiden. |
| A4988-Treiber | 2 (+1 Ersatz) | 6–12 £ | Oder DRV8825 – andere Vref-Formel beachten |
| Arduino Uno | 1 | 4–20 £ | Ein Nano geht und ist kleiner |
| CNC-Shield v3 | 1 | 5 £ | Optional, aber empfohlen – enthält den Stützkondensator |
| SG90-Servo | 1 | 2 £ | Die Stifthebung |
| Hebel-Mikroschalter | 2 | 1 £ | Einer pro Achse, am Minimalende |
| GT2-Riemen, 6 mm | 2 m | 5 £ | Glasfaserkern. Nur-Gummi dehnt sich. |
| GT2-20-Zahn-Scheibe, 5-mm-Bohrung | 2 | 4 £ | Hierher kommen 80 Schritte/mm |
| GT2-Umlenkscheibe | 4 | 5 £ | Glatte Bohrung, nicht verzahnt, für die Rückläufe |
| 8-mm-Präzisionswelle, 400 mm | 4 | 10 £ | Oder 2020-Profil mit Rollen |
| LM8UU-Linearkugellager | 8 | 6 £ | Zwei pro Wellenende |
| 12–24-V-Versorgung, 2 A+ | 1 | 8–15 £ | 24 V, wenn Drehzahl gewünscht ist |
| 100-µF-Elko, 35 V+ | 1 | 0,20 £ | Nicht optional; ohne Shield braucht man ihn |
| Multimeter | 1 | 10–25 £ | Pflicht für Vref. Kein Ersatz. |
| M3-Schrauben, gedruckte Halter | — | 5 £ | Oder lasergeschnittenes Sperrholz |
Grob 90–130 £. Multimeter und Versorgung sind wiederverwendbar; die Bewegungsteile liegen um 60 £.
Zwei falsche Sparsamkeiten, die man nennen sollte: Nur-Gummi-GT2-Riemen dehnt sich genug, um als Spiel aufzutauchen – und die glasfaserbewehrte Art kostet ein Pfund mehr. Und exakt zwei statt drei Treiber zu kaufen heißt: Der erste, den man per vergessenem Kondensator tötet, stoppt das Projekt für eine Woche.
Wie alles zusammenhängt
12–24 V ──┬── 100 µF ──┬── VMOT (X driver)
│ └── VMOT (Y driver)
└── GND ─────┬── Arduino GND
│
Arduino Uno │
D2 ── X STEP D5 ── Y STEP │ X driver ── coil A ── motor X
D3 ── X DIR D6 ── Y DIR │ └ coil B
D8 ── ENABLE (both, active low) │ Y driver ── coil A ── motor Y
D9 ── X endstop (INPUT_PULLUP) │ └ coil B
D10 ── Y endstop (INPUT_PULLUP) │
D11 ── pen servo signal ────────────┴── servo 5 V from the Arduino
Die eine nicht offensichtliche Regel: Die Endschalterleitungen weg von den Motorkabeln führen. Ein Schrittmotorkabel ist eine zerhackende Stromquelle und eine Endschalterleitung, die 300 mm daneben läuft, eine Antenne. Eine Maschine, die bei abgeschalteten Motoren korrekt referenziert und bei laufenden scheitert, hat dieses Problem und sonst keines.
In Meilensteinen bauen
Jeder Meilenstein endet in einem Test. Keinen überspringen – jeder fängt einen Fehler, der später weit schwerer zu finden ist, wenn drei andere Dinge auch falsch sind.
1. Ein Motor auf der Werkbank. Treiber verdrahtet, Vref gesetzt, ENABLE low, 3200 Impulse befohlen.
→ Bestanden: Die Welle dreht exakt eine Umdrehung und eine Markierung darauf kehrt zehnmal hintereinander an dieselbe Stelle zurück.
2. Vref an beiden Treibern. Aus Motornennwert und eigenen Sense-Widerständen der Platine berechnen – Markierung prüfen, R100 oder R050.
→ Bestanden: Beide Messgeräte lesen innerhalb 0,02 V des Ziels, und nach zehn Minuten Halten sind die Motoren warm, aber man kann einen Finger darauf lassen.
3. Der Rahmen, beide Achsen fahrend. Riemen montiert und gespannt – fest, nicht gitarrensaitenstraff. → Bestanden: Von Hand bei ausgeschalteten Motoren geschoben bewegt sich jede Achse weich von Ende zu Ende ohne enge Stellen. Klemmen jetzt beheben; es tarnt sich sonst ewig als Schrittverlust.
4. Schritte pro Millimeter. 100 mm an jeder Achse befehlen, mit Lineal messen, per Verhältnis korrigieren, erneut messen. → Bestanden: Befohlene 100 mm ergeben zweimal 99,5–100,5 mm an beiden Achsen.
5. Spiel. Eine Markierung von links anfahren, notieren; von rechts anfahren, notieren. → Bestanden: unter 0,2 mm. Darüber Riemen spannen und prüfen, ob die Madenschrauben der Scheiben auf der Wellenabflachung sitzen.
6. Die Grenze finden, dann zurück. Drehzahl und Beschleunigung erhöhen, bis eine Achse springt, dann beide auf 50–60 % davon setzen. → Bestanden: Zwanzig Hin-und-her-Zyklen mit den gewählten Einstellungen kehren innerhalb 0,1 mm an dieselbe Markierung zurück.
7. Referenzfahrt. Endschalter montiert, dreiphasige Suche implementiert, zehn Referenzzyklen mit je einer Markierung. → Bestanden: Alle zehn Markierungen innerhalb 0,05 mm. Und: Einen Endschalter abziehen, referenzieren, und bestätigen, dass er mit Fehler aufgibt statt mahlt.
8. Die Stifthebung. Servo montiert, Auf- und Ab-Winkel per Versuch gefunden. → Bestanden: Der Stift berührt das Papier mit leichtem, gleichmäßigem Druck über das ganze Bett. Ein starr montierter Stift gräbt sich auf einer Seite eines unebenen Betts ein – gefedert oder schwerkraftgehängt ist weit gutmütiger.
9. Das Quadrat. Referenzieren, dann 100 mm auf Papier. → Bestanden: Die letzte Ecke trifft die erste innerhalb 0,3 mm, und dreimaliges Zeichnen ergibt drei Quadrate am selben Ort.
Wie gut aussieht
| Maß | Erster funktionierender Bau | Nach Kalibrierung | Die Grenze |
|---|---|---|---|
| Quadratschluss bei 100 mm | 1–3 mm | 0,2–0,3 mm | Rahmenrechtwinkligkeit |
| Referenz-Wiederholbarkeit | 0,3 mm | 0,02–0,05 mm | Schalterwiederholbarkeit |
| Spiel | 0,5 mm | 0,05–0,15 mm | Riemen- und Scheibensitz |
| Zeichentempo | 20 mm/s | 100–200 mm/s | Anlaufgrenzfrequenz, dann Eckdrehzahl |
| Mikroschrittgröße | — | 0,0125 mm | Weit feiner als alles andere |
Die letzten zwei Zeilen zusammen sind die Lektion des ganzen Projekts. Die Motorauflösung – 0,0125 mm – ist grob zwanzigmal feiner als der Fehler, den man wirklich erreicht. Kein Teil der Endgenauigkeit begrenzt der Schrittmotor. Es sind ganz Riemen, Rahmen und Rechtwinkligkeit.
Das lohnt Verinnerlichen, bevor man einen besseren Motor kauft, um ein Plotproblem zu beheben – und darum steht der Schrittmotorsimulator auf dem Pfad: Er zeigt, dass der Rotor unter realistischer Last bereits drei, vier Mikroschritte hinter dem steht, wo der Treiber ihn wähnt – egal welcher Mikroschritt gewählt ist.
Hardwarenotizen, die zählen
24 V vor 12 V, wenn man die Wahl hat. Beide gehen. Der Unterschied liegt dort, wo Drehmoment wegzubrechen beginnt: etwa 280 U/min an 12 V gegen 600 U/min an 24 V bei gleichem Motor und gleicher Stromgrenze. Auf 20-Zahn-GT2-Scheibe sind das grob 190 mm/s gegen 400 mm/s, bevor die Maschine zu kämpfen beginnt. Kriecht der Plotter nur je, reichen 12 V.
Jumper MS1–MS3 high. Sechzehntelschritt macht die Maschine nicht genauer – stoppt aber das Klingeln der Motoren bei jedem Schritt, was an einem leichten Rahmen der Unterschied ist zwischen einer Maschine, die wie eine Maschine klingt, und einer, die wie eine wütende Wespe klingt. Der Preis sind 8 000 Impulse pro Sekunde bei 100 mm/s, was ein Uno schafft.
Die Riemen fest spannen, nicht straff. Überspannte Riemen belasten die Motorlager und fügen Reibung hinzu, die Drehmomentreserve frisst. Unterspannte Riemen fügen Spiel hinzu. Fest genug für dumpfes Anreißen ist richtig.
Beide Madenschrauben auf der Scheibenabflachung. Eine 20-Zahn-Scheibe, die auf einer Welle kriecht, erzeugt einen Fehler, der exakt wie Schrittverlust aussieht und auf keine Schrittverlustlösung anspricht. Loctite ist hier nicht übertrieben.
Wenn es schiefgeht
| Symptom | Ursache | Lösung |
|---|---|---|
| Motor summt, dreht nicht | Spulenpaare über Kreuz oder keine Beschleunigungsrampe | Mit Messgerät neu paaren; Rampe hinzufügen |
| Eine Achse driftet pro Durchgang etwas weiter | Schrittverlust auf Rampen | Beschleunigung senken, Vref erhöhen oder langsamer |
| Langsam in Ordnung, springt bei Tempo | Jenseits der Eckdrehzahl | Auf 24 V gehen – mehr Strom hilft nicht |
| Quadrat konsistent 2 % zu groß | Schritte/mm falsch | Gegen Lineal kalibrieren und Verhältnis korrigieren |
| Quadrat um konstanten Betrag offen | Spiel | Riemen spannen; Madenschrauben prüfen |
| Referenziert jedes Mal woanders | Kein langsamer zweiter Durchgang | Neusuche mit 1–3 mm/s hinzufügen |
| Referenziert allein gut, scheitert beim Zeichnen | Endschalterleitung fängt Treiberrauschen | Neu verlegen; 100 nF gegen Masse am Pin dazu |
| Treiber stirbt beim Einschalten | Kein Stützkondensator an VMOT | 100 µF, nah an der Platine |
| Treiber schalten mitten im Zeichnen ab | Thermische Abschaltung | Vref senken; Kühlkörper und Luftstrom dazu |
| Stift schleift auf einer Papierseite | Bett nicht eben oder Stift starr montiert | Ebnen; den Stift gefedert aufhängen, nicht starr |
| Linien wackeln bei einer bestimmten Drehzahl | Mittenbandresonanz | Drehzahl leicht ändern oder Masse aufs Portal legen |
| Alles korrekt, Formen trotzdem schief | Achsen nicht rechtwinklig | Rahmen rechtwinklig ausrichten – keine Einstellung behebt das |
Wohin als Nächstes
GRBL einspielen. Sobald die Maschine bewiesen ist, liefert flashen von GRBL einen echten G-Code-Interpreter mit Referenzfahrt, Softlimits, Koordinatensystemen und Beschleunigung bereits geschrieben. $100 und $101 mit kalibrierten Schritten/mm konfigurieren, und man fährt sie aus jedem CAM-Werkzeug.
CoreXY. Dieselben zwei Motoren, beide am Rahmen fest, mit Riemen so geführt, dass X und Y Kombinationen beider Motoren sind statt je einer. Weniger bewegte Masse – also schneller und genauer, zum Preis einer kinematischen Mischschicht zwischen Koordinaten und Motoren.
Ein Laser statt Stift. Mechanisch dieselbe Maschine mit anderem Werkzeug – doch ein Diodenlaser bringt echte Augensicherheitsanforderungen, ein Gehäuse und Verriegelungen. Als separates Projekt behandeln statt als Tausch.
Eine Leitspindel-Z-Achse. Wer auf etwas mit Höhe plotten oder leicht gravieren will: Eine T8-Spindel liefert 400 Schritte/mm und hält die Position stromlos.
Closed-Loop-Schrittmotoren. Das eine Upgrade, das die schärfste Fehlermode dieses Projekts vollständig beseitigt. Ein Encoder auf jeder Motorrückseite verwandelt einen lautlosen verlorenen Schritt in Korrektur oder Alarm. Drei- bis vierfache Kosten – und wirklich unnötig, wenn alle Meilensteine oben bestanden.
Projekt-Roadmap
Der Baupfad
Folge dem Technikbaum von den Bauteilen bis zum funktionierenden Roboter. Jeder Knoten wird freigeschaltet, sobald seine Voraussetzungen erledigt sind, und dein Fortschritt wird auf diesem Gerät gespeichert.
0 / 20 erledigt
Bauteile
- AktorNEMA-17-SchrittmotorUngeregelte Position ohne Encoder – solange man nie mehr Drehmoment verlangt, als er hat.
- TreiberA4988 Stepper DriverEin Stromregler mit Trimmpoti – diese eine Zahl richtig einstellen und alles andere läuft.
- ControllerArduino UnoDas gutmütige 8-Bit-Board, über das die meisten die Robotik kennenlernen.
- SensorLever MicroswitchDas eine Bit Sensorik, das einem Roboter sagt, dass er schon irgendwo angestoßen ist.
- AktorSG90-ServomotorDas Neun-Gramm-Servo hinter den meisten Roboterarmen, Greifern und Lenkungen.
- StromversorgungRobot Battery & Power PackDer Unterschied zwischen einem Roboter, der läuft, und einem, der ständig neu startet.
Tutorials in diesem Pfad
- Mittelstufe · 35 Min.Wie Schrittmotoren arbeiten: Lastwinkel und SchrittverlustDer Lastwinkel ist das gesamte Schrittmotorverhalten. Einmal gelernt, und Schrittverlust hört auf, mysteriös zu sein.
- Einsteiger · 30 Min.A4988-Verdrahtung und Vref: Stromgrenze einstellenDie eine Einstellung, die entscheidet, ob dein Schrittmotor läuft oder brennt: Vref mit dem Multimeter setzen.
- Einsteiger · 25 Min.Schritte pro Millimeter: Riemen, Leitspindeln, AuflösungEine Zahl bindet Impulse an Millimeter. Herleiten, dann per Messung beweisen.
- Mittelstufe · 30 Min.Homing mit Endschaltern: Maschinen- und WerkstückkoordinatenWarum jede CNC-Maschine beim Start in einen Schalter fährt, und was die gesetzte Zahl wirklich heißt.
- Mittelstufe · 40 Min.Bewegungsprofile: Trapez- und S-Kurven-BeschleunigungEine Bewegung rampen statt befehlen – Trapezprofile, Ruckgrenzen und was S-Kurve wirklich kostet.
- Mittelstufe · 30 Min.Getriebespiel in Robotern: Messen und behebenJedes Getriebe hat Spiel. Herausfinden, wie viel deines hat, und was es deinen Roboter leise kostet.
- Einsteiger · 30 Min. LesezeitWarum delay() Roboter lähmt: Timing mit millis()Ein Roboter in delay() ist blind. Ersetze es durch millis() und vergleiche Rollover-sicher.
- Einsteiger · 30 Min. LesezeitWarum dein Roboter neustartet, wenn Motoren anlaufenDer Reset, der wie ein Codebug aussieht, ist fast immer die Batterie. Budgetiere den Strom, dann miss den Einbruch.
Üben, bevor du verdrahtest
Im Live-Simulator abstimmen
Der Baupfad führt durch ein Browser-Labor. Bring das Verhalten hier in Ordnung und übertrage deine Einstellungen dann auf den echten Roboter.
Häufig gestellte Fragen
Wie genau kann ein Hobby-Stiftplotter sein?
Ein sorgfältig gebauter riemengetriebener Plotter wiederholt auf etwa 0,1 bis 0,2 mm und schließt ein 100-mm-Quadrat auf wenige Zehntel. Die Grenzen sind nicht der Motor: Bei 1/16-Schritt auf 20-Zahn-GT2-Scheibe ist ein Mikroschritt 0,0125 mm – weit feiner als alles andere in der Maschine. Was den Fehler wirklich setzt: Riemenspannung, Rahmensteifigkeit, Spiel an den Scheiben und wie rechtwinklig beide Achsen zueinander stehen. Wer schlechter als einen halben Millimeter liegt, misst diese vier, bevor er irgendeine Firmwareeinstellung anfasst.
Brauche ich ein CNC-Shield oder geht Steckbrett?
Beides geht. Ein CNC-Shield kostet etwa fünf Euro, liefert Sockel für die Treiber, führt Endschalter- und Spindelpins heraus und enthält den Stützkondensator – was die häufigste Art beseitigt, einen Treiber zu töten. Steckbrett ist für zwei Achsen in Ordnung, wenn man eigene 100 µF über VMOT legt und die Motorverdrahtung von den Schrittsignalen fernhält – doch das Shield kostet weniger als der zweite Treiber, den man sonst zerstören würde.
Warum ein Servo für den Stift statt eines dritten Schrittmotors?
Weil der Stift nur zwei Positionen braucht, oben und unten, und in keiner Präzision. Ein Hobbyservo tut das mit einem Signalpin und gar keinem Treiber – exakt der Job, worin es gut ist. Eine Schrittmotor-Z-Achse bräuchte einen dritten Treiber, einen dritten Pinsatz, eine Leitspindel und einen Referenzschalter – alles, um etwas nachzubauen, das ein Zwei-Euro-Servo in einer Codezeile tut.
Riemen oder Leitspindel für X- und Y-Achsen?
Riemen, ohne langes Zögern. Ein GT2-Riemen liefert 80 Schritte/mm und fährt fröhlich 200 mm/s oder mehr; eine T8-Leitspindel liefert 400 Schritte/mm, braucht aber fünfmal so viele Impulse für dieselbe Strecke – was an einem Arduino Uno bei etwa 30 mm/s deckelt. Ein Plotter trägt fast nichts und muss sich schnell über eine Seite bewegen – genau der Fall, worin Riemen gut sind. Spindeln verdienen ihren Platz an einer Z-Achse, die Gewicht oben halten muss.
Warum schließt mein Quadrat nicht?
Vier Ursachen, und sie lassen sich unterscheiden. Ist der Fehler ein fester Prozentsatz der Strecke, sind Schritte pro Millimeter falsch – gegen ein Lineal kalibrieren. Ist es ein konstanter Betrag egal welcher Größe, ist es Spiel – also Riemen spannen und Madenschrauben der Scheiben prüfen. Ist es jedes Mal anders, verlierst du Schritte – also Beschleunigung senken oder Strom erhöhen. Und ist das Quadrat ein Parallelogramm statt offen, stehen beide Achsen nicht rechtwinklig zueinander – ein Rahmenproblem, das keine Einstellung behebt.
Kann ich stattdessen GRBL fahren und Firmware schreiben lassen?
Ja – und es ist die vernünftige Route, sobald die Maschine arbeitet. GRBL verwandelt den Uno in einen G-Code-Interpreter mit Referenzfahrt, Softlimits, Beschleunigung und Koordinatensystemen bereits implementiert – Schritte pro Millimeter konfiguriert man mit $100 und $101. Die einfache Version zuerst zu schreiben lohnt, weil eine Maschine und eine Firmwarekonfiguration gleichzeitig zu debuggen viel schwerer ist als nacheinander.