Du bist aktuell im Gastmodus. Logge dich ein oder registriere dich, um die HOOU-Plattform komplett zu nutzen.
Deine Vorteile bei einer Anmeldung:
- Schreibe Beiträge, chatte mit anderen und nutze unsere Foren, um dich auszutauschen.
- In einigen Lernangeboten bestätigen wir dir die Teilnahme.
Pimp my 3D-Printer
Kursthemen
-
-
Intro zu Pd
Pure Data, oder einfach Pd, ist eine visuelle Open-Source-Programmierumgebung, die auf allen Arten von Computern und Geräten (wie zum Beispiel Smartphones oder Raspberry Pi) ganz easy läuft. Zudem kann Pd durch jegliche Eingabegeräte, wie beispielsweise durch Nintendo Wii-Fernbedienungen, Keyboards und andere Musikgeräte, Sensoren oder Ähnlichem gesteuert werden.
Früher war es üblich, dass Computerprogrammiererinnen und Computerprogrammierer textbasierte Programmiersprachen verwendeten, um Anwendungen zu entwickeln. Computerprogrammierer:innen schrieben Codezeilen in eine Datei und führten sie anschließend aus, um Ergebnisse zu erhalten. Für Nicht-Computerprogrammierer:innen war das kein intuitives Vorgehen, sich kreativ mit Coden zu beschäftigen.
Mittels einer sogenannten visuellen Programmiersprache (engl. Visual Programming Language) wie Pd kann eine Benutzerin und ein Benutzer hochkomplexe Interaktionen durch Bearbeitung von grafischen Elementen erstellen, anstatt diese durch textliche Befehle anzugeben. Die Textzeilen, die die Funktionen eines Programms beschreiben, werden sozusagen durch visuelle „Bausteine“ ersetzt, die vielfach und beliebig kopiert, ausgetauscht, oder bearbeitet werden können.
Ganz ähnlich wie beim An-, Aus- oder Umstecken von echten Drähten an ein Steckbrett, können wir dann mühelos neue Programme, auch Patches genannt, erstellen. Dabei ändern wir das Verhalten unseres Programms, indem wir die visuellen Komponenten miteinander verbinden und das Kommunizieren zwischen denen erlauben oder verhindern.
In diesem Sinne bietet Pd eine einzigartige Form der Programmierung, die unserem intuitiven und gewohnten Umgang mit physikalischen Dingen, etwa wie Gitarreneffekte miteinander zu verketten oder einen Legosatz zu bauen, viel näher kommt.
📣 Pd stammt aus derselben Familie von Programmiersprachen, die ursprünglich von Miller Puckette am Forschungsinstitut für Akustik/Musik (IRCAM) in Frankreich entwickelt wurden, zu der auch Max/MSP (ein gewerbliches Programm) gehört. Häufig werden Programme in dieser Klasse für Live-Aufführungen elektronischer Musik, interaktive Kunstinstallationen, zur Audio-Programmierung in Videospielen und Steuerung von Robotern, als Erweiterungen akustischer Instrumente oder allen Arten weiterer kreativer Interaktionen eingesetzt.Beispielsweise kann durch ein einfaches Mikrofon die Farblichkeit eines Videos je nach gesungener Tonhöhe verändert werden. Entsprechend kann man auch das Schattenbild eines Tänzers, die Wiedergabegeschwindigkeit oder Lautstärke einer Tonaufnahme anhand einer Webcam verändern.
In Pd werden die dargestellten Operationsschritte tatsächlich direkt ausgeführt. Das bedeutet, dass jede Aktion schon während des Programmierens wirksam ist, also genau in dem Moment, in dem sie abgeschlossen wurde – was sich unmittelbar auf die Ausgabe auswirkt.
Ein solcher Vorteil von Pd bedeutet, dass sowohl Benutzerinnen und Benutzer als auch Publikum die Ergebnisse beliebiger Aktionen sofort wahrnehmen können, was Pd zu einem leistungsstarken Werkzeug für Künstler aller Art macht, die Daten aus unterschiedlichsten Quellen mit ungewöhnlichen Geräten - beispielsweise als Musikinstrumente - verwenden möchten.
In unserem Fall können überholte 3D-Drucker auf eigenartige Weise Musik erzeugen. Die Möglichkeiten sind also endlos!
-
Checkliste vor dem Gebrauch auf Windows-Maschinen
✅ Arduino 1.8.13 herunterladen und installieren. Bei der Installation, musst Du auch die Arduino Treiber installieren.
✅ Eigenen 3D-Drucker per USB an den Rechner anschließen und je nach Modell einstellen. Notiere die benutzte COM-Port Nummer.
✅ Pure Data 0.51 herunterladen und installieren. Nach erfolgreicher Installation von Pd ist das Programm betriebsbereit. Bevor wir mit unserem Pimp my 3D-Printer Patch spielen dürfen, müssen wir zunächst die Verbindung zwischen Computer und Drucker herstellen und kalibrieren. Los geht‘s!✅ Pimp my 3D-Printer ZIP-Datei herunterladen und extrahieren.
edu sharing object -
Aber wie geht das? Das Nötigste zu Pd
Die Pd-Konsole
Bei erstmaligem Öffnen von Pd wird dir ein leeres Fenster auffallen. Das ist die Konsole, die man jederzeit durch die entsprechende Option im Menü “Fenster” abrufen kann. Dieses Fenster darfst du allerdings als Anfängerin oder Anfänger getrost ignorieren, ist aber sicherlich von Interesse für Menschen, die einen Blick ins innere Arbeiten von Pd werfen möchten. Hier kann man alle für den Durchlauf vom Programm wichtigen Meldungen sehen.
Editier- und Laufmodus
Sobald ein Patch geöffnet worden ist, bietet Pd zwei Betriebsarten an: den Editier- und den Laufmodus. Um zu erkennen, in welchem Modus wir uns befinden, müssen wir nur auf den Mauszeiger achten: Bewegt man die Maus über eine Schaltfläche im Laufmodus, erkennt man an dem Zeiger einen Pfeil. Befindet man sich hingegen im Editiermodus, wird der Mauszeiger zu einer zeigenden Hand.
Wenn man einen Pd Patch öffnet, startet dieser automatisch im Laufmodus. In diesem Modus kann man nur die Schaltflächen und Knöpfe bedienen, die für die vorgesehenen Anwendungen notwendig sind, ohne dabei Veränderungen im Grundbetrieb vornehmen zu können.
Allerdings ist es sehr praktisch in den Editiermodus wechseln zu können, wo man „hinter die Kulisse“ schauen und die Patchstruktur manipulieren darf. Solange ein Pd Patch sich offen und im Editiermodus befindet, können wir seine Grundelemente freilich durch Linien („Kabeln“) miteinander zu Graphen verbinden, die den Datenfluss binnen des Programms darstellen. Wie vorgenannt, dies hat eine sofortige Auswirkung!
Grundelemente
Zu den Bausteinen von Pd gehören vor allem Objekte, Messages, Numbers und Symbole, plus die erwähnten Verbindungen zwischen diesen. Verbindet man mehrere von diesen zu einer sinnvollen, wiederverwendbaren Funktion, redet man von Abstractions. Für weitere Infos, siehe das help-intro.pd Patch.
📣 Das Hilfe-Patch mit der Übersicht (fast) aller Objekte kann man ganz einfach abrufen, indem man auf eine leere Stelle in irgendeinem Patch mit der rechten Maustaste klickt und „Hilfe“ auswählt. Alternativ kann man durch die Option „Pd Help“ im Hauptmenü „Hilfe“ die ausführliche Dokumentation lesen.Jede abstraction ist im Grund selber ein Pd Programm, die dank ihrer Ein- und Ausgänge nicht nur zu komplexen Strukturen verkettet, sondern auch mehrmals beliebig verwendet werden kann.
Erweiterung durch Externals
Dafür sind jedoch weitere Erweiterungen in Pd nötig. Es handelt sich um zusätzliche Funktionen, die die Nutzergemeinschaft von Pd im Laufe der Jahre entwickelt und eingeführt hat, um die Basisumgebung des Programms durch so genannte Externals aufzurüsten. Diese können wir für eine Vielzahl von Zwecken einsetzen. Beispielsweise: die Modellierung virtueller physischer Objekte, die Videoverarbeitung oder das Streaming und Manipulieren von MP3-Audiodateien sind alle spannende Nutzzwecke, die von Werk aus in Pd nicht unterstützt sind. Genau dafür gibt es Externals, die sich leicht aus dem Grundprogramm heraus installieren lassen. Normalerweise findet man Externals in kompakten Sammlungen zu verwandten Verwendungszwecken, die man auch als Bibliotheken bezeichnet.
Wenn Du Externals in Pd installieren willst, kannst Du folgendes Video ansehen:edu sharing objectZum Glück ist unser Patch schon fertig und mit allen nötigen Externals und Bibliotheken in einem Ordner einsatzbereit. Es heißt, du brauchst keine zusätzliche Externals zu installieren.
Nachfolgend erklären wir alle drei vorgefertigten Instrumenten-Patches für unseren 3D-Drucker.
-
Pimp my 3D-Printer erklärt
Einleitung
Sobald du den {Pimp my 3D-Printer WIN} Ordner öffnest, wird dir folgendes Verzeichnis angezeigt:
edu sharing objectDort sind unsere Instrumente Zither, Ukulele und Güiro jeweils in der Form eines Pd Patches zu finden. Anhand des Komplexesten dieser drei, Zither.pd, erklären wir zunächst wie das Programm gesteuert bzw. bearbeitet werden kann. An relevanten Stellen findest du auch Hinweise für die Verwendung der Patches Güiro.pd und Ukulele.pd.
Zusätzlich zu den einzelnen Pd Patches, findet man hier zwei wichtige Ordner:
- Der abstractions Ordner beinhaltet ein paar nötige Pd-Schnipsel, die von der Pd-Community zur Verfügung gestellt worden sind und die wir glücklicherweise in unserem Patch benutzen dürfen. Solltest du also dein eigenes pimp my 3d-printer Patch mit externen abstractions erweitern, kannst du sie hier hinzufügen.
- Ebenso enthält der externals Ordner zusätzliches Material, das unser Programm in der Form von Bibliotheken verwendet. Diese Dateien sind sehr wichtig, denn ihre Funktionen wirken sich umfassend auf unseren Patch aus.
Also lass uns mit dem zither.pd loslegen!
Übersicht der Benutzeroberfläche
edu sharing objectBeim Öffnen des Patches, erkennt man mehrere Schalttasten zur Auswahl der Spielmodi. Darüber befindet sich grau hinterlegt eine Statusleiste, die anzeigt, ob eine Verbindung mit dem 3D-Drucker besteht (online) oder nicht (offline).
Um den 3D-Drucker überhaupt als Zither (bzw. Güiro oder Ukulele) nutzen zu können, muss eine einmalige, kleinteilige Kalibrierung durchgeführt werden. Hierfür findest du unter der ?-Schaltfläche eine Anleitung, die du zunächst befolgen musst. Die entsprechenden Einstellungsoptionen findet man unter der gelben SETUP Schaltfläche. Nach dem Setup kann man den Drucker auf seine Null-Position zurücksetzen (HOME) oder auf die beliebige kalibrierte Spielposition bringen (START).
Mit der Schaltfläche PANIC! wird gewährleistet, dass bei einer mechanischen Übersteuerung oder einem Fehler, der aktuelle Vorgang abgebrochen werden kann, um Schäden an Hardware und Motor des Druckers zu vermeiden.
Kommunikation und Datenübertragung
Wichtigste Voraussetzung für die Kommunikation des Programms mit dem 3D-Drucker ist der serielle Anschluss, der sogenannte COM-Port. Nachdem der Drucker über ein USB-Kabel mit dem Rechner verbunden ist, musst du hier einmalig die entsprechende Portnummer eingeben. Hierfür klicken wir auf den SETUP-Knopf, worauf sich das Calibration Panel öffnet. Die gelbe Hauptanzeige zeigt uns jetzt an, dass wir uns im Kalibrierungsmodus befinden.
In diesem Fenster findest du auf der obersten Reihe ein zweiteiliges Modul, COM-Port und PrinterComm. Hier musst du zunächst den von deinem Drucker benutzten seriellen Port (COM-Port) eingeben. Zur Sicherheit klicke mal auf Show available ports, um die richtige Portnummer in der Pd-Konsole zu sehen.
Da die meisten 3D-Drucker ähnlich funktionieren, kannst du die Port-Geschwindigkeit (Serial_Port_Speed) sowie das PrinterComm-Modul vorerst getrost ignorieren und nur bei fehlerhafter Ausführung umstellen bzw. feinjustieren. Nach Eingabe der Portnummer speichere diese Einstellung mit SET!.
Nun kannst du zurück im Hauptfenster und auf den Knopf INITIALIZE klicken, um die Verbindung mit dem Drucker herzustellen.
📣 Bei Unklarheiten an der Stelle, folge den Links zu G-Code weiter unten und schaue dir die Dokumentation deines 3D-Druckers für Hinweise zu deinem spezifischen Modell an.Nachdem du den Drucker initialisiert hast, wird auf dem Display die Meldung “Waiting for Start Position” angezeigt. Da warten wir den Vorgang ab, bis sowohl der Druckkopfblock als auch der Drucktisch sich auf der Spielposition befinden:
Der Druckkopfblock bewegt sich auf die Null-Position des Druckers, in unserem Patch HOME genannt.
- Der Drucktisch bewegt sich entsprechend auf HOME.
- Der Druckkopfblock bewegt sich auf die voreingestellte Spielposition, also auf die Stelle, wo das Plektrum am nächsten von der ersten Saite liegt. In unserem Patch heißt diese Position START. Später übernimmt das Programm die von Dir bei der Kalibrierung festgelegten Werte für START.
- Der Drucktisch bewegt sich entsprechend auf START.
Der ganze Vorgang dauert ungefähr eine Minute. Sobald dieser erfolgreich durchgeführt wurde, steht auf dem Display “Online”. Der Drucker ist somit bereit!
Die G-Code Sprache
Die meisten 3D-Drucker laufen auf Basis des speziellen G-Code Standards. Hierzu muss Pd mit dem Drucker in ascii Kodiersprache mittels einer Pd-abstraction kommunizieren, die unsere Befehle zur linearen Bewegung des Druckkopfes richtig umwandelt.
Zum Beispiel: G-Code Message „G1 X30 F5000“ befiehlt dem Drucker mit einer Geschwindigkeit von 5000 Millimeter pro Sekunde zur „Position 30“ auf der X-Achse zu gehen.
Erfahre unter dem Link mehr zu G-Code.
📣 Jede Maschine verwendet fertige Unterprogramme (Zyklen), die mit Parametern oder Variablen angepasst werden. Am besten schaust du dir die Dokumentation zum Modell deines 3D-Druckers an, um Fehler oder Probleme zu vermeiden. Eine ausführlichere Einstellung zu 3D-Druckern kannst du hier lesen.Kalibrierung des Druckers je nach Instrument
📣 Bevor du dich mit dem digitalen Teil der Kalibrierung auseinandersetzt, vergewissere dich, dass alle Teile des Druckers beweglich sind und dass der Druckertisch ganz unten liegt, um das Instrument einbauen zu können.Achtung: Dieses Setup muss zwingend zum ersten Mal oder beim Instrumentenwechsel durchgeführt werden!
Wird der Drucker als Online angezeigt, können wir das Kalibrierungsfenster öffnen indem wir auf SETUP im Hauptfenster des entsprechenden Instrumenten-Patches klicken.
edu sharing objectIm Calibration Panel müssen wir genau hinsehen und je nach Instrument oder Modell des 3D-Druckers die richtigen Werte für alle Variablen eingeben:
0. Datenübertragung überprüfen
In erster Linie können wir rechts auf der grünen Initialized? Fläche überprüfen, ob alles richtig läuft. Diese zeigt uns den Status der Verbindung mit dem Drucker sowie die eingehenden Achsen-Werte, also die Werte, die vom Gerät durch den COM-Port ins Pd-Patch übermittelt werden.
edu sharing object1. Calibrate COM-Port
Im ersten Modul links kann man den COM-Port, wie oben unter Kommunikation und Datenübertragung beschrieben, ein- oder umstellen. Dieser Schritt ist nicht nur für die nachfolgende Kalibrierung erforderlich, sondern auch für das richtige Funktionieren der Instrumenten-Patches.
2. Calibrate Start Position
Zur Einstellung der Spielposition benutzen wir das Modul auf der zweiten Reihe. Zunächst legst du die gewünschten Werte fest, indem du auf die Knöpfe in 1- oder 10-Millimeter Schritten drückst, und der Drucker wird unmittelbar darauf reagieren. Passt das nicht zu deinem Instrument, justierst du die Werte weiterhin fein.
Die lilafarbenen Werte für die Z-Variable bezeichnen die Höhe des Druckertisches. Du kannst aus drei verschiedenen Geschwindigkeitsstufen (Z-Rate) auswählen. Z-Play sagt uns beispielsweise auf welcher Höhe die Saiten gepflückt werden. Und Z-Skip bestimmt die minimal nötige Höhe, um Saiten zu überspringen und somit effizient durch die Spielfläche das Plektrum fahren zu können. Also achte auf beide Werte und ihren Zusammenhang! Anschließend klicke auf SET!, um deine Werte für die Startposition festzulegen und zu speichern.
Nun kannst du am Hauptfenster überprüfen, indem du auf START klickst, ob alles richtig funktioniert. Sowohl der Druckerkopfblock, als auch der Drucktisch, sollten sich jetzt auf die gewünschte Anfangsstelle bewegen und deine eigenen Werte für jeweils X, Y und Z auf dem grünen Initialized? Modul anzeigen.
Beim nachfolgenden Öffnen des Patches, sollte diese Fahrt immer bei Schritten 3) und 4) der Drucker-Initialisierung automatisch erfolgen.
Standard Plektrum-Positionen bzw. Achse-Werte:
Home:
- X = 0 = Links
- Y = 0 = Unten
- Z = 100 = Unten
Maximale Tragweite:
- X = 150 = Rechts
- Y = 130 = Oben
- Z = 0 = Oben
3. Calibrate Strings
Jede Saite kann vom Plektrum beliebig von “vorne” oder “hinten” gezupft werden. Nun müssen wir für das richtige Anspielen unseres Instrumentes die genauen Höhen der beiden Spielpositionen (vor- und rückwärts) für jede Saite einzeln anpassen. Mühsam, aber es lohnt sich! Zu diesem Zweck wählt man eine Saite zur manuellen Anpassung in Millimeter-Schritten aus, genauso wie im vorherigen Schritt. Klicke am Ende auf SET!, um die letzte Werten zu speichern.
Bonus! Fortgeschrittene Personen können in die Midi_Setup oder Joystick_Setup Subpatches reinschauen, um andere Eingabegeräte zu konfigurieren und erweiterte Spielmodi auszuprobieren.Lass krachen! Die Spielmodi im Überblick
Sobald Du Deinen 3D-Drucker kalibriert hast, musst Du den Spielmodus auswählen und jetzt kann Dein 3D-Drucker endlich musizieren!
Zither
- Standard: spielt einzelne Saiten ohne Saitensprung. Kann bis zu 10 Saiten spielen entweder mit einer Tastatur (Tasten 1 bis 0, wobei die Taste “1” die erste Saite und die Taste “0” die zehnte Saite bedeutet) oder dem MIDI-Gerät. Im Kapitel Neubau der Zither, findest Du die Tonhöhe der Saiten.
- Jump: spielt einzelne Saiten mit Saitensprung. Funktioniert mit einer Tastatur oder dem MIDI-Gerät.
- Joystick: Bewegt das Stäbchen mit Hilfe des Joysticks ohne Saitensprung. Für Fortgeschrittene empfohlen.
- Custom: bietet die Möglichkeit, ein eigenes Subpatch zu codieren. Für Fortgeschrittene empfohlen.
- Demo: spielt "Alle meine Entchen" automatisch ab.
Ukulele
- Standard: spielt einzelne Saiten ohne Saitensprung.
- Joystick: Bewegt das Plektrum mit Hilfe des Joysticks ohne Saitensprung. Für Fortgeschrittene empfohlen.
- Custom: bietet die Möglichkeit, ein eigenes Subpatch zu codieren. Für Fortgeschrittene empfohlen. Hier könntest du deinen eigenen Rhythmus programmieren.
- Rhythmus: spielt automatisch einen vorprogrammierten Rhythmus. Hier kannst Du das Tempo des Rhythmus ändern.
Güiro
- Standard: Bewegt das Stäbchen mit Hilfe der Tastatur oder des MIDI-Geräts.
- Joystick: Bewegt das Stäbchen mit Hilfe des Joysticks. Für Fortgeschrittene empfohlen.
- Custom: bietet die Möglichkeit, ein eigenes Subpatch zu codieren. Für Fortgeschrittene empfohlen. Hier könntest du deinen eigenen Rhythmus programmieren.
- Rhythmus: spielt automatisch einen vorprogrammierten Rhythmus. Hier kannst Du das Tempo des Rhythmus ändern.
edu sharing object - Der abstractions Ordner beinhaltet ein paar nötige Pd-Schnipsel, die von der Pd-Community zur Verfügung gestellt worden sind und die wir glücklicherweise in unserem Patch benutzen dürfen. Solltest du also dein eigenes pimp my 3d-printer Patch mit externen abstractions erweitern, kannst du sie hier hinzufügen.
-
RPi
Zum Schluss haben wir für Fortgeschrittene einen Patch für das RaspberryPi gebastelt. Das bedeutet, dass Du auch den 3D-Drucker ohne Laptop oder Computer steuern kannst! Du könntest sogar auf dem RaspberryPi ein Touch-Display installieren und es auf dem Drucker befestigen.
Wir haben das Patch mit einem RaspberryPi 4 (RaspberryPi OS) getestet. Die Möglichkeiten, die das RaspberryPi 4 bietet, sind sehr groß und könnten aus deinem 3D-Drucker noch mehr herausholen.
Falls Du mehr über das RasperryPi wissen willst, kannst Du hier mehr erfahren.
edu sharing object
-