Ruum42
Hackerspace in St.Gallen
Sie sind hier
Paper Tape Puncher
Aktives Projekt
Diese Dokumentation befindet sich noch in der Entwufrsphase. Da diese länger dauern könnte habe ich ihn trotzdem bereits veröffentlicht. Bei Interesse bitte einfach öfter mal hier vorbeischauen ob es eine Änderung gibt.
Seit einer ganzen Weile habe ich nun einen Lochstreifenleser auf USB umgerüstet. Damit besteht also die Möglichkeit, alte Datenträger in Form von Lochstreifen zu lesen. Das nützt aber leider nicht viel da diese heutzutage nicht mehr eingesetzt werden.
Seit Anfang 2016 verfüge ich nun auch endlich über einen Lochstreifenstanzer. Natürlich verfügt auch dieser nicht über eine heute gängige Schnittstelle über welche er einfach am Computer angeschlossen werden könnte. Es war also von Anfang an klar, dass auch hier ein Arduino- Klon als Interface zum Einsatz kommen würde.
Auf der Platine finden sich hauptsächlich 2 Spannungen. Die Logikbausteine werden mit 5 V betrieben, die Mechanik wird mit 24 V angesteuert. Ideale Voraussetzungen also, die Logik mittels Arduino zu bespielen. Es ging also hauptsächlich darum, herauszufinden an welchen Pins die Signale eingespielt werden können. Der Stanzer verfügt über Tasten über welche wahlweise keine, alle oder nur die Transortlöcher gestanzt werden können. Mit einem Oszilloskop konnte ich so herausfinden dass die Maschine mit 50 Hz arbeitet. Ebenfalls konnte ich durch verfolgen der Leiterbahnen die Logik- Elemente und schliesslich die Pins für die Signale identifizieren.
Scheinbar wurden die Bits einzeln über einer Art paralleler Schnittstelle übertragen. Es gibt Pins für jeden einzelnen Stanzer inkl. der Transportlochung. Ausserdem gibt es einen Pin über den der Schrittmotor mit einem Impuls einen Schritt weiter bewegt werden kann. Es stellte sich heraus dass die Daten für die Stanzer anliegen müssen wenn der Motor betätigt wird. Intern wird das Signal dann so umgesetzt dass zuerst gestanzt, danach das Papier weiter transportiert wird.
Ich hatte erst den Fehler begangen, erst die Bits stanzen und danach das Papier weiter transportieren zu wollen. Das resultierte darin dass entweder nichts passierte oder nur das Papier transpotiert wurde ohne etwas zu stanzen.
Die Software auf dem Arduino ist, wie auch beim Leser, so geschrieben dass sie ein primitives Kommandozeilen- Interface auf der seriellen Schnittstelle anbietet. Darüber können die verschiedenen Stanz- Modi ausgewählt werden. Ausserdem kann der Simulationsmodus ein- resp. ausgeschaltet werden. Der Simulationsmodus dient dazu, den Stanzer resp. die Software auszuprobieren ohne unmengen von Papier verschwenden zu müssen. Die folgenden Stanz- Modi stehen zur Verfügung:
- Human readable: Lesbare darstellung von Zeichen für die Beschriftung längerer Lochstreifen
- Hex: Durch die Eingabe von Hexadezimalen Zahlen können alle möglichen 256 Kombinationen gestanzt werden ohne Binärdaten an die serielle Schnittstelle übermiteln zu müssen.
- Dezimal: Gleich wie Hex, allerdings mit der eingabe von Dezimalzahlen
- ASCII mit Paritätsbit: 7-Bit ASCII wobei das 8. Bit als Paritätsbit verwendet wird. Die Anzahl der gestanzten Löcher ist immer gerade. Somit ist eine einfache manuelle und automatische Prüfung möglich.
- Binary: Binärdaten direkt so stanzen wie sie an die serielle Schnittstelle übermittelt werden.
- 5-Bit Baudot: Schmalere Streifen mit 5 Bit für Fernschreiber in der entsprechenden Codierung stanzen
Jeder Modus wird automatisch beendet sobald ein ungültiges Zeichen für den jeweiligen Modus übermittelt wird. Da dies für Binär nicht möglich ist, gibt es hier einen Timeout von 5 Sekunden nach dem der Modus automatisch beendet wird.
Baudot sieht keine Unterscheidung zwischen Gross- und Kleinbuchstaben vor. Es können beide Varianten für die Eingabe verwendet werden. Die Konvertierung passiert automatisch in der Software auf dem Arduino. Ansonsten ungültige Zeichen wie z.B. das Ausrufezeichen führen aber auch hier zum Abbruch des Vorgangs.
Der Sourcecode wird immer mal wieder weiterentwickelt. Die aktuelle Version befindet sich auf GitHub.
Der Stanzer verfügt von der Hardware her über 2 Teller die übereinander liegen, aber unabhngig voneinander gedreht werden können. Auf dem unteren Teller kommt die leere (unbeschriebene) Rolle zu liegen. 3 kleine Umlenkrollen dienen zum Ausgleich der Schwankungen wenn am Streifen gezogen wird. Nach diesen 3 Rollen läuft der Streifen einmal aussen fast um das ganze Gerät herum in den Stanzkopf. Der Stanzkopf klemmt das Papier und sorgt über den Antrieb der Klemmrolle dafür dass die Löcher im korrekten Abstand gestanzt werden. Nach dem Stanzkopf kann der Streifen über einen Umlenkmechanismus auf die obere Rolle geleitet und dort fortlaufend automatisch aufgerollt werden. Die Andere Möglichkeit, vor allem für kurze Streifen, besteht darin den Streifen jeweils direkt nach dem Stanzkopf über ein dort fest montiertes Messer abzuschneiden.
Kommentare
Jos Dreesen (nicht überprüft)
29. Juli 2016 - 9:21
Permanenter Link
Stanzer