GRAFFOLONIA MATERIALSAMMLUNG

Eine kleine Materialsammlung rund um das Thema Graffiti, was mich zum Bau meines Sprühdosenplotters inspiriert hat, was ich von Graffitikünstlern gelernt habe, eine Beschreibung wie der Plotter funktioniert und vieles mehr, für Karolonia 🕹️🧐🛠️🎨.
Bei Underpressure bedanke ich mich sehr für die freundliche Unterstützung!

TIPPS VON NADJA

Film:     Beat Street
Film:     Style Wars
Film:     Wild Style!
Buch:     ODEM: ON THE RUN
Formular: Hamburger Grffitiformular

INSPIRATION

Parkaue Hall of Fame
  Graffitilobby Berlin / Jugendclub Linse / Theater an der Parkaue
Hektor
  Sprühdosenplotter [Jürg Lehni / Uli Franke]
Looptaggr
  DIY-Sprühdosenkonstruktion [Aram Barthol / Ariel Schlesinger]
CCTV Spray
  Bastelanleitung [Ai Weiwei]
Bond Truluv
  Capmods & DIY-Dosenkonstruktionen
Fadebomb
  Japanische Spezialcaps
Martha Cooper - Königin der Street Art
  Arte Mediathek [verfügbar bis 21.7.21]
Doug Pray - INFAMY
  Film über amerikanische Graffitikultur, Wurzeln und Codes der Szene

GRAFFOMAT TWITTER THREADS

Mit dem Plotter versuche ich ganz unterschiedliche Dinge auszuprobieren. Die ersten Experimente habe ich in Form von Twitter-Threads dokumentiert:

Hello World
CMYK Test & Spontankollaboration
#ALGO vs OSK
DM von @pixtxa
DIY needle cap

TECHNISCHE BESCHREIBUNG DES GRAFFOMAT

MECHANIK

Der Graffomat ist ein Sprühdosenplotter mit einer Druckfläche von 2,20m * 2,00m. Die Konstruktion folgt einem klassischen XY-Aufbau. Die X-Achse besteht aus 2 Alurohren, auf denen zwei kurze PVC-Elektrorohre gleiten, an denen der Sprühdosenhalter befestigt ist. Der Dosenhalter wird von einer Wäscheleine hin- und hergezogen, die über zwei Umlenkrollen läuft, von denen eine mittels Akkuschrauber angetrieben wird. Die Düse der Sprühdose wird über einen Hebel von einem Modellbau-Servomotor betätigt.

Die gesamte X-Achse mitsamt Sprühkopf ist links und rechts an zwei Schnüren aufgehängt, die am oberen Rahmen des Plotters über zwei Umlenkrollen bis zum unteren Bereich des Rahmens laufen, wo sie auf einem langen Alurohr aufgewickelt sind. Das Auf- und Abwickeln der beiden Schnüre durch einen zweiten Akkuschrauber (Y-Motor) bewegt die gesamte X-Achse hoch und runter. Nachdem sich die Schnüre auf beiden Seiten gleich schnell auf- und abwickeln, verkeilt sich die X-Achse nicht. Zur weiteren Stabilisierung gleitet die X-Achse entlang zweier vertikaler Alurohre; auch hier dienen kurze Abschnitte PVC-Rohr als Linearlager.

ELEKTRONIK

Die beiden Akkuschrauber sind Gleichstrom-Getriebemotoren mit einer Nennspannung von 18V. Diese werden über jeweils eine H-Brücke geschaltet, eine elektronische Standardschaltung, die im Schaltbild wie ein „H“ aussieht. Damit lässt sich die Polung des an den Motoren anliegenden Stroms umkehren, wodurch sich die Akkuschrauber in beide Richtungen drehen lassen. Die Regelung der Geschwindigkeit funktioniert durch das Prinzip der Pulsweitenmodulation. Dabei werden die Motoren letztendlich permanent sehr schnell an- und ausgeschaltet, wobei die Länge der „An“-Phase im Verhältnis zur „Aus“-Phase variiert.

Die Akkuschraubermotoren verfügen über kein Positions-Feedback. Um dennoch gezielt bestimmte Koordinaten anfahren zu können, ist an jeder Achse ein schwarz-weißer Encoder-Streifen angebracht, der von jeweils zwei Fotozellen ausgelesen wird. Durch diese optischen Sensoren lässt sich die relative Position des Sprühkopfs abzählen. Um den Nullpunkt des Koordinatensystems festzulegen, fährt der Sprühkopf gleich nach dem Einschalten in einer Kalibrierungsfahrt die linke obere Ecke an und betätigt dabei pro Achse einen Endschalter.

Gesteuert werden die beiden H-Brücken durch ein Arduino-NANO Microcontroller-Board. Dabei handelt es sich um einen kleinen 8-Bit Computer, in dem ein fest abgelegtes Programm abläuft (Firmware). Der Microcontroller kommuniziert mit der Außenwelt über eine Serielle Schnittstelle (über diese Schnittstelle lädt man auch neue Programme auf den Controller) und außerdem über I/O Pins, also einzelne Stromverbindungen, die entweder vom Programm ausgelesen werden können (Input) oder durch das Programm geschaltet werden können (Output). Im Fall des Graffomat-Controllers lesen die Input-Pins die Fotozellen der Encoder aus, sowie die Endschalter der beiden Achsen. Das Programm berechnet daraus fortwährend die tatsächliche Position des Sprühkopfs. Bewegt wird der Sprühkopf über Spannungspulse auf den Output-Pins, die wiederum mit den Steuereingängen der H-Brücken verbunden sind.

CODE

Das auf dem Controller laufende Programm ist in der Sprache C geschrieben. Die Logik funktioniert relativ einfach: über die Serielle Schnittstelle (die Daten werden nacheinander, in Serie, als Spannungspulse codiert, in einer Drahtverbindung übertragen) empfängt der Controller ein Datenpaket. Dies enthält z.B. Zielkoordinaten, zu denen sich der Druckkopf bewegen soll. Der Controller vergleicht daraufhin die aktuelle Position des Sprühkopfs mit dem gewünschten Ziel und solange beide Positionen voneinander abweichen, bewegen die Akkuschraubermotoren den Sprühkopf in Richtung des Ziels. Ist es erreicht, signalisiert der Controller über den Rückkanal der Seriellen Schnittstelle, dass er für neue Koordinaten empfangsbereit ist.

Zur interaktiven Echtzeitsteuerung kann das Datenpaket aber auch Zielgeschwindigkeiten für X- und Y-Motor enthalten. Diese werden direkt an die entsprechenden Ouptut Pins weitergereicht. In diesem Fall zählt der Controller aber immer noch die Position des Sprühkopfs mit und sorgt dafür, dass sich dieser nur in einem festgelegten Bereich bewegt.

DATENQUELLEN

Über die Serielle Schnittstelle des Plotters können nun unterschiedliche Datenquellen an den Plotter angeschlossen werden, wie z.B. ein kleiner SD-Kartenleser mit Display. Auf der SD-Karte sind Textdateien mit Koordinaten, die dann zeilenweise über die Serielle Schnittstelle übertragen werden. Natürlich lässt sich auch direkt ein Laptop anschließen, über diesen kann der Plotter auch mit dem Internet verbunden werden, z.B. um ihn weltweit in Echtzeit fernsteuern zu können.

ECHTZEITSTEUERUNG VIA INTERNET

Die Echtzeitansteuerung des Plotters über das Internet funktioniert über das WebSocket-Protokoll. Mit diesem Protokoll können Daten vom Webbrowser an einen Webserver übertragen werden, ohne dass die Webseite dabei neu geladen werden muß. Genauso kann der Server Daten zurück übertragen, die dann von einem, in das HTML-Dokument eingebundenen, JavaScript-Programm verarbeitet werden. Für die Plottersteuerung übertragen also alle Teilnehmenden Personen ca. 50 mal pro Sekunde Richtungsanweisungen für den Sprühkopf und der Server antwortet allen Teilnehmenden mit einer Liste aller eingegangenen Richtungsanweisungen. Dieses simple Echo-Programm ist in der Programmiersprache Node.JS geschrieben, einer Variante von Javascript, die auch auf Webservern läuft.

Die Datenübertragung zwischen dem Webbrowser und dem Plotter findet dann mit der Web Serial API statt. Diese Programmierschnittstelle ermöglicht dem Webbrowser Zugriff auf eine Serielle Schnittstelle des Computers. Dieses Interface ist zwar nicht Teil des W3C Standards, aber dennoch in einigen Browsern implementiert, z.B. in Google Chrome. Der so mit dem Plotter verbundene Webbrowser überträgt dann einfach einen Mittelwert aller über WebSocket empfangenen Richtungsanweisungen, somit haben alle Teilnehmenden einen demokratisch-gleichberechtigten Zugriff auf den Plotter, ähnlich wie beim Glässerrücken.

WEITERE LINKS & DOWNLOADS

Graffolonia Workshop Handout [JPG]
BTS7960B H-Brücken Modul
Arduino Webseite
Plotter [ZIP: Arduino Code]
SD-Kartenleser [ZIP: Arduino Code]
Processing Webseite
Graffodraw - simples Plotter-Zeichenprogramm [ZIP: Processing Code]
Graffodraw.exe [ZIP: Windows Executable des Zeichenprogramms]
Echo-Server [ZIP: Node.JS Code]
WebSocket User Interface [ZIP: HTML, CSS, JS Codes]
WebSocket ↔ Web Serial Interface [ZIP: HTML, CSS, JS Codes]

WORKSHOP PICS / ANALOG VS. DIGITAL