Plotter bauen: Die Elektronik

Die Elektronik des Plotters war eine recht große Herausforderung für mich. Mein Grundwissen darüber ist recht begrenzt und es wirkte wie eine besondere Hürde.

Die Anleitung von Instructables umfasst die Verkabelung des Plotters selbst, aber auch zusätzliche Features, wie etwa einen Not-Aus-Knopf und einen Low-Pass-Filter zur Vermeidung von Fehlsignalen. Außerdem wird laut dieser Anleitung alles über ein Netzteil mit Strom versorgt. Ich habe mich beim Bau gegen ein großes Netzteil entschieden – so konnte ich Netzteile, die ich schon hatte weiterverwenden. Auf einen Not-Aus-Knopf habe ich auch verzichtet, weil ich die Maschine so wie so über ein Verteilerkabel mit Schalter betrieb.

Für die Elektronik des Plotters benötigte ich:

Von einem vorherigen Plotterexperiment hatte ich noch einen Arduino-Klon samt Schrittmotor-Driver herumliegen. Das bildete die Grundlage für diesen Plotter. Zu dem Driver habe ich eine Anfängerfreundliche Anleitung erhalten (auf Englisch und Deutsch, wobei ich die Auf Englisch doch hilfreicher fand). Darin war recht einfach erklärt, wie ich den Driver auf den Arduino stecken und die Motoren damit verbinden kann. Auch Micro-Stepping (das Einstellen kleinerer Motorschritte) wird darin kurz erklärt.

Zunächst hatte ich jedoch Probleme mit einem der Driver. Im Gegensatz zu den Anderen hat er nämlich nicht reagiert. Mittels austauschen der Motoren und der Steckstelle konnte ich andere Fehlerquellen ausschließen. Allerdings wusste ich aus meinen vorigen Versuchen, dass jeder Driver mit einem kleines Potentiometer ausgestattet ist. Das muss auf die richtige Spannung gestellt werden, damit sie mit dem Motor abgestimmt ist.

Der VREF (reference voltage) bestimmt, wie viel Strom beim Motor ankommt – ist er zu hoch eingestellt, kann der Motor beschädigt werden. Um ihn korrekt einzustellen, ist ein Multimeter erforderlich. Ich hatte bisher noch gar keine Erfahrungen mit Multimetern, deshalb war ich ziemlich überfordert …

Es hat gar nicht funktioniert. Nach einigen gescheiterten Versuchen, sinnvolle Werte auszulesen, habe ich aber festgestellt, dass ein niedriger Batteriestand die Funktion des Multimeters beeinträchtigen kann. 🤡 Mit frischen Batterien haben die Werte plötzlich gepasst. Allerdings musste ich zuallererst herausfinden, dass der Driver tatsächlich kaputt war. Zum Glück hatte ich noch einen Weiteren (Das Set ist für 4 Motoren konzipiert).

Bei den anderen 3 Drivern hat das einstellen des VREF relativ gut funktioniert. Meine Motoren haben eine maximale Stromstärke von ..., deshalb habe ich die Potentiometer auf ... gestellt.

Die Motoren haben je 4 Kabel, wie herum die Kabel eingesteckt werden, beeinflusst in welche Richtung er sich dreht. Das ist wichtig, da ich ja 2 Motoren für die Y-Achse verwende. Diese sind sich genüberliegend angebracht. Damit die Achse sich also richtig bewegt, müssen sich die Motoren in entgegengesetzte Richtungen drehen. Deshalb muss einer anders herum eingesteckt werden. Man die Drehrichtung auch in den Einstellungen von GRBL festlegen, aber ich halte es für Sicherer direkt auf die Verkabelung zu achten.

Die nächste Herausforderung war das Verkabeln der Limit-Switches. Bei normalen Limit-Switches gibt es die Möglichkeit, sie für Normally Open oder auf Normally Closed zu verkabeln (Wobei normalerweise Normally Closed empfohlen wird, um Noise zu vermeiden). Ich habe die Limits von OpenBuilds gekauft, weil ich den Formfaktor mochte. Sie wirkten gut durchdacht und robust. Die Beschriftung von ihnen ist allerdings anders, was bei mir für viel Verwirrung gesorgt hat. Die meisten Switches sind mit C oder COM für Common oder auch Ground; NO für Normally Open und NC für Normally Closed beschriftet. Es werden immer 2 Kabel verwendet und mit COM und je nach Modus mit NO oder NC verbunden. Die Openbuilds-Switches jedoch, sind mit GND für Ground V+ und SIG beschriftet.

Das Modell von Openbuilds ist, wie viele ihrer Produkte, für den Gebrauch in ihrem System konzipiert. Das heißt, die Switches in Kombination mit ihrem Blackbox-Steuersystem. Mit diesen Switches werden eigentlich alle drei Kontakte gebraucht. Da die Elektronik der Blackbox allerdings proprietär ist, wird die interne funktionsweite nicht kommuniziert. Das hat es für mich sehr schwer gemacht, eine Lösung zu finden. Die Switches können zudem nur im NO-Modus genutzt werden. Dieser Modus bedeutet, dass erst beim Drücken des Switches eine Verbindung gemacht wird und Strom fließt. Das hat allerdings den Nachteil, dass es sehr anfällig für Störsignale ist. Das ist gerade für Geräte mit Motoren relevant, weil die viel elektromagnetischen Noise generieren.

Über einen Eintrag im Openbuilds-Forum habe ich herausgefunden, wie ich die Switches verbinden muss: GND mit dem Ground-Pin des Arduino und SIG mit dem Steuerungs-Pin (in meinem Fall am Stepper-Driver als solche je Achse markiert)

Da der Switch so als NO verkabelt ist ergaben sich daraus Probleme mit Störsignalen. Sobald die Motoren sich bewegen sollten, wurden die Limit-Switches ausgelöst, wodurch die Maschine sofort wieder angehalten hat. Die Anleitung auf Instructables geht sogar auf dieses Problem ein und verlinkt einen Artikel zu einer Anleitung für einen Low-Pass-Filter. Der soll genau die Frequenzen rausfiltern, die zu den Problemen führen. Eine ähnliche Anleitung habe ich auch in den Instruktionen von GRBL gefunden: Hier erklären sie die unterschiedlichen Möglichkeiten die Switches zu verkabeln und geben auch Beispiele mit Filtern. (Auch wenn die in dem Fall nicht so genannt werden.) Für Verwirrung sorgte bei mir allerdings verschiedenen Angaben für Kondensatoren: auf Instructables werden anscheinend 10uF (das sind 10000nF) verwendet, in der Dokumentation von GRBL jedoch nur 100nF. Diesen großen Unterschied konnte ich mir nicht erklären und es wird auch leider in keiner der Anleitungen darauf eingegangen, warum genau so viel … Schlussendlich habe ich mich für die 100nF entschieden. Hauptsächlich, weil ich mehr Quellen finden konnte, die diese Stärke für den Kondensator verwenden.

Um meinen kleinen Low-Pass-Filter zusammenzustecken, habe ich ein Breadboard verwendet, das ich noch zuhause hatte. Damit wurden die Fehlsignale für’s Erste erfolgreich rausgefiltert.

Als nächstes ging es um den Anschluss des Servomotors in der Stifthalterung. Für den Servo benötige ich eine Separate Stromquelle, weil das Netzteil mit den 3 Stepper-Motoren schon ausgelastet ist. Ich habe dafür ein normales 5V 1A Netzteil verwendet. Damit ich das Netzteil ins Breadboard stecken kann, habe ich das Kabel abgeschnitten, die Enden abisoliert und mit etwas Lötzinn zu stabilen Zapfen geformt. Die bisher ungenutzte Hälfte des Breadboards habe ich dann zum Verkabeln genutzt. Dabei ging ich wie beim Sweep Circuit dieser Arduino-Anleitung vor. Das Signal Kabel musste ich allerdings über das Motor-Shield verkabeln. Dafür habe ich in der Anleitung des Shields nachgeschlagen, welcher Pin mit dem jeweiligen Digital Pin am Arduino selbst verbunden ist. In meinem Fall ist das ein Pin der als Z-Limit gekennzeichnet ist. Der Pin muss dann in der Software zur Steuerung des Servos deklariert sein. Dafür habe ich eine modifizierte Variante von GRBL verwendet.

Dieser kleine Servomotor hat noch für einige Probleme gesorgt. In kürzester Zeit habe ich 2 Motoren demoliert – warum sie kaputt gegangen sind war lange unklar. Bis ich mich näher damit auseinandergesetzt habe, wie Servomotoren eigentlich funktionieren. Servomotoren sind nämlich bei 0° und 180°, also den Extrempunkten ihres Bewegungsumfanges, am schwächsten. Hier können sie deutlich weniger Kraft aufbringen. Ich habe die Motoren aber meist zwischen 0° und 20° verwendet, wobei ihnen bei 0° am meisten Widerstand entgegengebracht wurde. Dafür waren sie aber nicht stark genug. Den kleinen Motor zu ersetzen war schwieriger als erwartet: Das lokale Elektronikgeschäft hatte leider nur größere Motoren, die wiederum nicht in meine Stifthalterung passten. Schlussendlich habe ich bei einem Geschäft für RC-Cars Ersatz gefunden. Der neue Motor war zwar etwas teuerer, dafür war die Mechanik im Inneren aus hochwertigerem Metall und damit widerstandsfähiger.

Zu einem Späteren Zeitpunkt habe ich noch ein Schutzgehäuse und kleine Ventilatoren zu meiner Elektronik hinzugefügt. Das Gehäuse wurde hauptsächlich benötigt, damit in der Ausstellung kein Kabel versehentlich rausgezogen wird. Damit sich die Hitze nicht unter dem Gehäuse staut, habe ich an den Enden dann noch die Ventilatoren eingebaut. Diese werden zusammen mit dem Servo über ein separates Netzteil betrieben und sind im gleichen Breadboard verkabelt.

Mit dem Bau des Plotters habe ich einiges über Elektronik gelernt. Etwa, wie man ein Multimeter verwendet, Löten, aber auch das Lesen und recherchieren von Spezifikationen.