Deutsch
Login

GPIO Modul

Relevant für

MK4
MK3.9
MK3.5
MK4S
MK3.9S
+
Artikel ist auch in folgenden Sprachen verfügbar
English
Čeština
Polski
Deutsch
Français
Español
Italiano
日本語

Das GPIO-Modul (General Purpose Input Output) ist eine zusätzliche, optionale Platine, die an den Original Prusa MK4/S, MK3.9/S, oder MK3.5/S angeschlossen werden kann.

WICHTIG: Um das volle Potenzial des GPIO-Boards zu nutzen, benötigen Sie Firmware 6.2.0-alpha1 oder neuer. Besuchen Sie GitHub, um die neueste Firmware herunterzuladen.

Das Modul bietet eine erweiterte Funktionalität, indem es die Steuerung externer Geräte über Verbindungen zu den GPIO-Board-Pins ermöglicht, die entweder im INPUT- oder OUTPUT-Modus arbeiten können. Diese Vielseitigkeit eröffnet ein breites Spektrum an möglichen Anwendungsfällen.

Teilen Sie Ihre Projekte mit den anderen Mitgliedern der Prusa Community in unserem offiziellen Forum und diskutieren Sie darüber. Wir haben einen eigenen GPIO-Bereich eingerichtet.

Ideen für Anwendungsfälle

Das Modul kann einen Kameraverschluss zu einem bestimmten Zeitpunkt steuern und ist damit ideal für die Erstellung visuell perfekter Zeitraffer, bei denen jedes Bild zum exakt gleichen Zeitpunkt aufgenommen wird.

Neben der Steuerung eines Kameraverschlusses kann das Modul auch für verschiedene andere Anwendungen eingesetzt werden. So kann es beispielsweise eine externe Beleuchtung auslösen, um den Druckbereich in bestimmten Phasen des Druckvorgangs zu beleuchten und so optimale Lichtbedingungen für Qualitätskontrollen oder Fotos zu gewährleisten. Darüber hinaus kann es so konfiguriert werden, dass es während des Druckens auf der Grundlage eines benutzerdefinierten G-Codes Lüfter oder andere Peripheriegeräte wie Absauganlagen oder Alarme aktiviert, was zur Aufrechterhaltung optimaler Betriebsbedingungen beiträgt und die Sicherheit und Effizienz der 3D-Druckumgebung verbessert.

Ein weiterer leistungsstarker Anwendungsfall ist die Integration einer Makrotastatur, bei der jeder Tastendruck die Ausführung bestimmter G-Code-Befehle auslösen kann. Diese Einrichtung ermöglicht eine schnelle manuelle Steuerung der Druckerfunktionen, wie z.B. das Starten oder Anhalten eines Drucks, das Anpassen von Temperaturen oder das Bewegen des Druckkopfs an eine exakte Position. Die Möglichkeit, benutzerdefinierte Aktionen mit einem einfachen Tastendruck auszulösen, kann Arbeitsabläufe erheblich rationalisieren und macht das GPIO-Erweiterungsmodul zu einem vielseitigen und unverzichtbaren Werkzeug für diejenigen, die ihre 3D-Druckeinrichtung vollständig anpassen und optimieren möchten.

Sicherheit geht vor!

Die Möglichkeit, G-Code über GPIO-Eingänge auszulösen, bietet zwar große Flexibilität, birgt aber auch Einschränkungen und potenzielle Risiken. Eine unsachgemäße Verwendung oder schlecht terminierte G-Code-Befehle können den Druckprozess stören und zu Druckfehlern oder sogar zu Schäden am Drucker führen. Es ist wichtig, dass Sie alle benutzerdefinierten G-Code-Setups in einer kontrollierten Umgebung gründlich testen, bevor Sie sie in tatsächlichen Druckaufträgen einsetzen, um unbeabsichtigte Folgen zu vermeiden.

Außerdem empfehlen wir, dass nur erfahrene Benutzer mit einem soliden Verständnis von Elektronik und G-Code-Manipulation dieses GPIO-Modul verwenden, da unsachgemäße Anschlüsse oder Konfigurationen zu Hardwareschäden oder Sicherheitsrisiken führen können.
Schaltpläne

Die Schaltpläne sind Open Source und auf unserer Seite Open Source bei Prusa Research verfügbar.

So installieren Sie die GPIO-Platine
  1. Stellen Sie sicher, dass der Drucker auf Raumtemperatur abgekühlt ist, und schalten Sie ihn aus.
  2. Öffnen Sie die Abdeckung des xBuddy-Gehäuses, indem Sie vier M3x6-Schrauben entfernen.
  3. Verbinden Sie das GPIO-Kabel mit dem I2C Port.
  4. Schließen Sie den Deckel der xBuddy-Box.
  5. Versichern Sie sich, dass der GPIO keine Metallteile der xBuddy Box oder deren Abdeckung berührt.
  6. Genießen Sie Ihr Projekt!
Pins

Das Board verfügt über 8 Pins, nummeriert von 0-7. Pins 0-3 können als Ausgang und Pins 4-7 können entweder als Eingang oder als Ausgang fungieren. Jeder Pin ist vom Typ Open-Drain, wenn er als Ausgang verwendet wird, d.h. er wird von einem Transistor gesteuert, der den Pin mit der Masse (0 V) verbindet, wenn er aktiv ist. Wenn der Pin inaktiv ist, bleibt er „schwebend“, d.h. er ist nicht mit einer bestimmten Spannung verbunden, aber aufgrund interner Pull-up-Widerstände kann die Spannung am Pin um die 3,3 V schwanken.

Es ist möglich, externe Pull-up-Widerstände an die JP-Pins zu löten. Dadurch ändert sich das oben beschriebene Verhalten. Weitere Einzelheiten dazu finden Sie im Abschnitt Pull-up-Widerstände weiter unten.

Das Verhalten der Pins im Open-Drain-Zustand bei Verwendung als Ausgänge lässt sich wie folgt erklären:

  • Pin auf 0 (LOW): Der Pin ist ausgeschaltet und befindet sich in einem „schwebenden“ Zustand, d.h. er ist nicht mit einer bestimmten Spannung verbunden. In diesem Zustand kann die Spannung am Pin schwanken und ist nicht genau definiert, es sei denn, sie wird durch einen Pull-Up-Widerstand stabilisiert.

Dieser „schwebende“ Zustand kann dazu führen, dass der Pin zufälliges elektrisches Rauschen oder Interferenzen aufnimmt, was zu unbeabsichtigtem Verhalten führt, wenn er nicht richtig verwaltet wird.

  • Pin auf 1 (HIGH): Der Pin ist eingeschaltet und mit der Masse (0 V) verbunden, wodurch die Spannung am Pin auf 0 V abfällt. Dieser Zustand ist eindeutig und führt zu keiner Mehrdeutigkeit bei der Signalerkennung.

Wenn die Pins als Eingänge verwendet werden, können sie den an sie angelegten Spannungspegel erkennen. Der Eingangszustand wird durch das Vorhandensein von Pull-up-Widerständen beeinflusst, die dazu beitragen können, eine gleichbleibend hohe Spannung (3,3 V) zu gewährleisten, wenn keine andere Spannungsquelle angelegt wird.

Pull-up-Widerstände

Das Board ermöglicht den Anschluss externer Pull-up-Widerstände über Lötbrücken mit der Bezeichnung JP4 bis JP7. Diese Lötbrücken befinden sich in der Mitte der Platine und sind mit den entsprechenden Pins verbunden:

  • JP4 ist mit Pin 4 verbunden.
  • JP5 ist mit Pin 5 verbunden.
  • JP6 ist mit Pin 6 verbunden.
  • JP7 ist mit Pin 7 verbunden.

Mit den Jumpern JP4 bis JP7 können Sie integrierte Pull-up-Widerstände anschließen, die dafür sorgen, dass die Pins auf einer hohen Spannung (3,3 V) bleiben, wenn sie nicht aktiv von einer externen Quelle oder durch den Ausgangszustand des Pins nach unten gezogen werden. Diese Pull-Up-Widerstände haben einen Wert von 10K Ohm, was ein Standardwert ist, um eine stabile Spannung ohne übermäßige Stromaufnahme zu gewährleisten. Wenn kein Widerstand an die Lötbrücke angeschlossen ist, kann der Pin in einem schwebenden Zustand bleiben, was zu instabilem Verhalten führen kann. JP steht für „Jumper“, und wenn kein Widerstand angeschlossen ist, erzeugt er keinen Widerstand.

Für weniger erfahrene Benutzer ist es wichtig zu verstehen, dass Open-Drain-Ausgänge nicht von Natur aus eine hohe Spannung (3,3 V) erzeugen, sondern eine Verbindung zur Masse (0 V) ermöglichen. Pull-up-Widerstände sind notwendig, um sicherzustellen, dass der Pin auf einer hohen Spannung bleibt, wenn er ausgeschaltet ist oder als Eingang verwendet wird. Wenn die Spannung nicht richtig gehandhabt wird, kann eine „schwebende“ Spannung dazu führen, dass der Pin elektrisches Rauschen aufnimmt, was zu unerwünschten Schaltvorgängen oder Systeminstabilität führt.

GPIO über benutzerdefinierten G-Code einstellen

Allgemeine Informationen

Nachfolgend finden Sie eine Reihe von angepassten G-Code-Befehlen, die zur Steuerung der GPIO-Karte verwendet werden. Damit können Sie Ausgangszustände konfigurieren, Eingangszustände auslesen und andere erweiterte Einstellungen auf der Karte über G-Code-Befehle verwalten, die sich nahtlos in den Arbeitsablauf Ihres 3D-Druckers integrieren lassen.

Pin-Steuerung über G-Code

Um die Ausgangspins auf dem GPIO-Board zu steuern, können Sie die folgenden G-Code-Befehle verwenden:

  1. Pin-Modus einstellen (Ausgang oder Eingang)
    M262 P B
    • P<0-7>: Wählen Sie die zu konfigurierende Pin-Nummer (von 0 bis 7).
    • B<0 oder 1>: Legen Sie den Pin-Modus fest.
      • 0 - konfiguriert den Pin als Ausgang
      • 1 - konfiguriert ihn als Eingang.
    • Beispiel: M262 P0 B0 - Konfiguriert den Pin 0 als Ausgangspin.
  2. Zustand auf einen Ausgangspin schreiben
    M264 P B<0 oder 1>
    • P<0-7>: Wählen Sie die Pin-Nummer, auf die geschrieben werden soll (von 0 bis 7).
    • B<0 oder 1>: 0 Schreiben, um den Pin auf LOW zu setzen oder 1, um den Pin auf HIGH zu setzen.
    • Beispiel: M264 P0 B1 - Setzt den Ausgangspin 0 auf HIGH (1).
  3. Zustand des Ausgangspins umschalten
    M265 P
    • P<0-7>: Wählen Sie die Pin-Nummer, die umgeschaltet werden soll (von 0 bis 7).
    • Dieser Befehl kehrt den aktuellen Zustand des ausgewählten Pins um.
    • Beispiel: M265 P0 - Schaltet Pin 0 um.
  4. Erweiterte Registereinstellungen (für erfahrene Benutzer)
    M267 R<1-3> B<0-255>
    • R<1-3>: Wählen Sie das zu konfigurierende Register:
      • 1: Ausgangsregister.
      • 2: Polaritätsregister.
      • 3: Konfigurationsregister.
    • B<0-255>: Legen Sie den Wert fest, der in das ausgewählte Register geschrieben werden soll.
    • Beispiel: M267 R3 B255 - Konfiguriert das Konfigurationsregister mit dem Wert 255 (alle Pins auf Eingänge gesetzt).

Um den Status von Pins zu lesen oder Konfigurationen einzurichten, verwenden Sie die folgenden G-Code-Befehle:

  1. Zustand des Pins lesen
    M263 P
    • P<0-7>: Wählen Sie die Pin-Nummer aus, von der gelesen werden soll (von 0 bis 7).
    • Der zurückgegebene Wert zeigt an, ob der Pin HIGH (1) oder LOW (0) ist.
    • Beispiel: M263 P6 - Liest den Zustand von Pin 6 (gibt 32 für HIGH oder 0 für LOW zurück).
  2. Gesamtes Eingangsregister lesen
    M261 A B S