Ein Gerät zum Bezahlen von Getränken, mit einem RFID-Token, auf meiner Arbeit. Mittlerweile die zweite Version mit schönerer GUI durch TouchGFX. Zum alten Mat-O-Mat, der schon seit etwa zwei Jahren im Einsatz ist, schreibe ich was wenn dieser erfolgreich durch die neue Version abgelöst ist.
Benötigt habe ich:
- STM32F746G-DISCO Board (50€ – meines ist noch von Amazon, leider aber nicht mehr verfügbar)
- MFRC522 Board (ca. 3€, wenn man gleich drei bestellt)
- 5V-Netzteil (9€)
- Box (7€)
Die Schwierigkeit war, TouchGFX nach mbed, meiner Lieblingsplattform, zu portieren. Original arbeitet TouchGFX mit FreeRTOS, aber dafür gibt es kaum Treiber im Netz und außerdem finde ich FreeRTOS etwas altbacken – mit mbed kann man um Einiges schneller entwickeln.
Für die Portierung habe ich etwa fünf Stunden gebraucht, hatte aber das hier als Vorlage. Leider das falsche Board und eine veraltete TouchGFX-Version – gab also noch Einiges zu tun. Der port fünktioniert sehr sauber und gefühlt mindestens genauso gut wie die FreeRTOS-Version.
Ich habe mir große Mühe gegeben, damit es einfach ist die vom TouchGFX-Designer generierten Dateien verwenden zu können. Nach dem generieren müssen diese einfach nur in das user-Verzeichnis des ports kopiert werden und in der Regel baut es dann und funktioniert.
Den TouchGFX-Designer gibt es leider nur für Windows, jedoch benutzt dieser eine MSys-Umgebung um den Code zu bauen – Daher kann man die Projekte auch einfach unter Linux bauen. Richtig schick finde ich den Simulator, der zur Darstellung einfach die SDL-Bibliothek verwendet. So kann man seine GUI schon mal am Rechner überprüfen.
Der Trick bei TouchGFX ist, dass fast alle Elemente Bilder sind, die dann einfach in Codedateien konvertiert werden. Sehr cool sind auch die animierten Bildschirmübergänge und Animationen, die man damit machen kann. Ich bin auf jeden Fall sehr begeistert und werde wahrscheinlich noch viel mit TouchGFX machen.
Der Mat-O-Mat ist im Grunde ein sehr einfaches Gerät, mit dem man Getränke bezahlen kann. Man identifiziert sich mit seinem RFID-Token und kann dann Flaschen entnehmen oder sein Guthaben wieder aufladen. Dazu wird einfach das aktuelle Guthaben in einer Textdatei auf einer SD-Karte gespeichert. Die Textdatei hat dabei einfach die Token-ID als Namen. Der alte Mat-O-Mat hat eigentlich ganz gut funktioniert – mal sehen, wie der neue sich macht:
Natürlich fehlt noch ein Gehäuse drum herum, aber das ist leider noch nicht da 🙂
Update:
Der Mat-O-Mat2 hat jetzt ein Gehäuse und ist an seinem Bestimmungsort. Danke Andreas für das Fräsen des Gehäuses.