Inhaltsverzeichnis

MinusEinsEnterSlashButton

Wer Arbeitete dran

Problemstellung

Lösung

Ein Digispark emuliert eine USB-HID-Tastatur und drückt alle 3 Minuten die Numpad-Multiply-Taste, welche am Terminal softwareseitig keinerlei Funktion besitzt. Dies hält den Monitor aktiv, sodass er ein hübsches vspace.one-Logo anzeigt und sofort einsatzbereit ist. Der RFID-Leser bekam zudem einen Button in sein Gehäuse eingebaut, welcher nach kurzem Druck dem Controller per GPIO0 befiehlt, nacheinander die Tasten NUMPAD_MINUS, NUMPAD_1 und NUMPAD_ENTER auf der emulierten Tastatur zu drücken, etwas zu warten und dann NUMPAD_SLASH zu drücken. Wird während der Wartezeit erneut die Taste gedrückt, startet die Sequenz von neuem und es wird ein weiteres Getränk abgebucht. 5 Sekunden nach dem letzten Loslassen der Taste erfolgt automatisch die Abmeldung. Wird die Taste für über 0,5 s gedrückt gehalten, wird die Ausführung der Sequenz abgebrochen und die Taste kann losgelassen werden, ohne dass etwas abgebucht wird. Mit einem Tastendruck von über 1,5 s wird über GPIO2 des Digisparks mittels 1 kΩ-Widerstand ein NPN-Transistor durchgesteuert, welcher per Open Collector den RUN-Pin am RaspberryPi aktiviert, was einen Reset bewirkt. Die Status-LED an GPIO1 teilt zudem mit, in welchem Modus sich der Digispark gerade befindet.

Der Code wurde auch wieder in der Arduino-IDE geschrieben und ist auf Github zu finden.