Hardware, COM-Ports und Python
Aus ist es mit .NET, Windows und grafischen Oberflächen! Easysurfer is Python-Begeistert und steuert Hardware an! Weg mit dem Klickibunti-Kram, gebt mir einen Lötkolben und ein paar Drähte! Nein, ganz so schlimm hat es mich nicht erwischt. Dennoch folgt jetzt ein Beitrag, der sich dieses mal etwas hardwarenäher abspielt.
Ich gebe zu dass ich von Elektrotechnik keine Ahnung habe. Vielleicht finde ich es gerade deshalb so toll einen Geldscheinprüfer in der Hand zu haben und ein Protokoll zu implementieren. Man schickt ein Befehl und der Prüfer fängt an zu Blinken, zu surren und schließlich einen Geldschein zu verschlucken. Toll!
Genug der Euphorie, es stellt sich die Frage: Woher hat er so ein Ding? Und wozu braucht er es überhaupt? Ein Freund und ich bauen mit minimalistischer Hardware ein Art Bitcoin-Transfer-Automat. Die Idee dahinter ist simple: Der Kunde wählt einen Betrag und eine Bitcoin-Adresse aus, der Automat frisst die Scheine und transferiert den entsprechenden Betrag in Bitcoin an die eingelese Adresse. Es wird zu gegebener Zeit einen vollen Artikel zu diesem Projekt geben, aber heute ist der Geldscheinprüfer dran.
Es handelt sich um einen Apex 7000 der Firma Pyramid Technologies. Die genauen Spezifikationen interessieren uns gerade wenig, wir wollen das Ding anschließen und Programmieren. Im Lieferumfang waren 2 Kabel dabei: Ein USB zu 6-Pin-Kabel mit welchem man die Firmware flashen und einstellen kann, sowie ein USB zu 18-Pin Kabel, welches noch zusätzlich mit Strom über ein 4 Pin-Kabel vom Netzteil versorgt wird. Wer sich jetzt unter meinem untechnischen gebrabbel nichts vorstellen kann hat hier noch ein frisch fotografiertes Bild:
Nachdem der PC aufgeschraubt, ein Stromkabel geklaut und die Treiber installiert sind kann es losgehen. Angesprochen wird das Teil über einen seriellen COM-Port. Das Gerät sendet keine Daten raus, sofern wir sie nicht anfordern (pollen). Daher schauen wir erstmal ein Blick in die PDF, in welcher das Transferprotokoll beschrieben ist: RS-232 Serial Interface Specifications.