Dateien
Video
Video zur Beschreibung des Projekts
Weitere Dateien
Programmcodes für Arduino & Processing
Flowchart für den Software- und Kommunikations-Ablauf
*) Rechtsklick zum Downloaden der Datei.
Ein Plotter bzw. Drucker aus einer alten elektrischen Schreibmaschine, der mit einem Computer-Programm Bilder in Schwarz-Weiss umrechnet und sie dann auf ein Papier "zeichnet".
Team:
Dario Breitenstein (PL), 4665 Oftringen (AG)
Typ:
Freizeitprojekt
Kategorie:
Installation/Robotic
Alterskategorie:
Juniors (12- bis 16-Jährige)
Awards:
Gold Award
Community Award
Ausführliche Projektbeschreibung
Es fing an, als ich, auf der Suche nach einem Ferienprojekt, im Keller eine alte elektrische Schreibmaschine (Brother AX-110) fand. Ich steckte sie ein und sie schien einwandfrei zu funktionieren, jedoch war die Farbkartusche leer und das Typenrad kaputt.
Ich entschied mich, das Gerät aufzuschrauben, um zu sehen, was darin alles passiert.
Zu meinem Erstaunen fand ich nicht sonderlich viel: eine Stromversorgung (9V gemessen), eine Tastatur, eine Hauptplatine und die Mechanik.
Nach einem kurzen Brainstorming war mir klar, das es einen Plotter geben musste - die Mechanik war einfach perfekt dazu.
Hardware
Zuerst überlegte Ich mir, welche Teile der Maschine ich sicher nicht weiter gebrauchen kann: das Gehäuse, die Hauptplatine und die Tastatur. Nach einer kurzen Untersuchung der Mechanik stellte sich heraus, dass sowohl die X-Achse als auch die Y-Achse von einem Schrittmotor bewegt werden. Bei näherer Betrachtung des Druckkopfes sah ich, dass ich nahezu die komplette Mechanik des Hammers übernehmen kann, indem ich direkt einen Stift darauf montiere und ihn dann mit dem Motor anhebe/absenke.
Ich entschied mich, die beiden Schrittmotoren mit einem Arduino-Board zu steuern.
Die dazu nötigen Treiberchips (Ein 8-fach Darlington-Array) schnitt ich kurzerhand mitsamt der Steckverbinder aus der Hauptplatine heraus. Schlussendlich blieb das Arduino-Board bis auf ein paar Kabel auch das einzige Teil, das ich zur Schreibmaschine dazukaufen musste.
Die Mechanik, das Netzteil und das Arduino mit den Steuerchips montierte ich auf eine Holzplatte und verpasste dieser vier Gummifüsse und einen Schriftzug. Damit war der Hardwareteil abgeschlossen.
Später habe ich das Gerät mit einem selbst gebautem Lichtsensor (Gleiche Bauart wie er z.B im Lego NXT zu finden ist) ausgestattet. Dieser erlaubt dem Gerät
1. Den Rand des Blattes zu finden
2. Ich habe ein kleines Unterprogramm des Druckprogrammes geschrieben, mit dem ich Bilder mithilfe des Sensors (in erstaunlich guter Qualität )einscannen und dann wieder ausdrucken kann.
Während der Arbeit an der Hardware bin ich auf zahlreiche Probleme gestossen, wie zum Beispiel, dass der Motor, der den Hammer steuert, zum Laufen mindestens 350 mA Strom erfordert, aber 1 Pin des Arduinos nur 200 mA liefern kann. Ich habe das Problem geöst, indem ich pro Anschluss des Motors zwei der Arduino-Pins parallel geschaltet verwende (400 mA ).
Software
Um Enttäuschungen vorzubeugen, machte ich mich Schritt für Schritt an die Software. Somit hatte ich immer etwas, das funktionierte und von dem ich ausgehen konnte. Zuerst programmierte ich einfache Funktionen wie das Anheben und Absenken des Stiftes. Dann kam der erste Test mit einem 8x8 Bitmap-Bild, das ich einfach in ein Array und somit in den Arbeitsspeicher des Arduino speicherte. Als das funktionierte, begann ich, langsam die Grösse des Arrays zu vergrössern - bis ich bei 32x32 Pixel angelangt war. Zu diesem Zeitpunkt war der RAM des Arduinos komplett gefüllt. Ich benutzte ein schnell geschriebenes Flash-Programm, um die Bitmap-Bilder auf dem Computer so umzuwandeln, das ich sie in den Code für das Arduino kopieren konnte.
Ich wollte noch grössere Bilder drucken und suchte eine Möglichkeit, die Bilder in den ROM des Arduinos zu kopieren. Ich wurde mit PROGMEM fündig und konnte so Bilder bis 128x128 Pixel drucken, bis der Speicher des Arduinos voll war. Das war mir immer noch zu wenig. Ich wollte mindestens eine VGA-Auflösung erreichen (640x480 Pixel).
Darum musste ich einen Weg finden, die Bilder auf dem seriellen Weg zu Übertragen. Da kam Processing - das Gegenstück zum Arduino - ins Spiel. Ich konnte den Programmcode, den ich vorher im Flash umgesetzt hatte, dort auch umsetzen und erst noch die serielle Kommunikation benutzen. So konnte ich alle Funktionen, die ich wollte, in ein Programm zusammenfassen, das erst noch einigermassen benutzerfreundlich war! Denn wieso etwas bauen, wenn nur Du es benutzen kannst?
Später habe ich die im Druckprogramm benutzte "Schwellenwert-Methode" zur Bildbearbeitung durch das so genannte "Dithering" ersetzt. So können mithilfe einer optischen Täuschung Graustufen "gefälscht"
werden, indem nicht die ganze Fläche schwarz gezeichnet werden (z.B 50% Grau -> Jedes zweite Pixel wird gezeichnet).
Informationen zu den verwendeten Technologien:
Auf der Hardware-Seite verwendete ich fast ausschliesslich die Teile der Schreibmaschine. Zusätzlich verwendete ich ein Arduino (Microcontroller-Board, http://arduino.cc) und eine Holzplatte, die im Keller herumstand.
Auf der Software-Seite verwendete ich zuerst Flash und ActionScript 3, dann Processing (http://processing.org)
Für das Video verwendete ich meine Nikon D5200 und Final Cut Pro X.
Informationen zur Organisation der Teamarbeit
Ich habe alleine gearbeitet.
Informationen zu den verwendeten Grafiken, Fotos, Sounds, Videos etc.
die im Video vorkommmenden Sequenzen habe ich alle selber erstellt.
die verwendete Musik stammt von Kevin MacLeod (http://www.incompetech.com) und ist unter einer Creative Commons Attribution License (CC BY), ist also unter Namensnennung frei verwendbar.
die Bilder habe ich entweder selber Fotografiert, gezeichnet oder mit dem Schaltplan-Programm Fritzing (http://fritzing.org) erstellt.
Tagebuch der Projektarbeit
1. Projektphase - Weihnachtsferien 2013, 1. Woche
Auseinandernehmen der Schreibmaschine, Projektidee erarbeiten, Aufbau des Gerätes
2. Projektphase - Weihnachtsferien 2013, 2.Woche bis ca. mitte Januar
Software-Programmierung, dann ständiger Verfeinerungsprozess (mit Hardware-Modifikationen) bis eine Genauigkeit von ca 120 dpi erreicht wurde.
3. Projektphase - Februar bis Mitte März
Verfeinerungen der Software-Programmierung, Lichtsensor, neuer Bildberechnungs-Algorithmus