====== haduino ====== **haduino** (Hades + Arduino) bezeichnet eine Hardwarekomponente, die in der [[..:rechnerverarbeitung:loeschstation|Löschstation]] verbaut ist. Auf einem Display im Frontpanel der Löschstation werden die Prozentangaben der Löschvorgänge dargestellt. ===== Hardware ===== Der Haduino besteht aus folgenden Teilen: * 5.25 Zoll-Blende mit Aussparung für das Display * Arduino-Klon Pro Micro (ATmega32U4) * USB-Kabel * LCD Display 1602 mit I²C Adapter ===== Verkablung ===== Das Display wird vom Arduino über den I²C-Bus angesprochen. ^ Pin Arduino ^ Pin Display ^ Funktion ^ | GND | GND | Masse (Ground) | | Vcc | Vcc | 5V Spannung | | 2 | SDA | I²C Datenleitung | | 3 | SCL | I²C Takt (Clock) | Solltest du für den Aufbau einen anderen Arduino verwenden, solltest du die SDA und SCL Pins entsprechend anpassen. Der Arduino Micro ist mit dem Arduino Leonardo verwandt und benutzt daher die Digitalpins 2 und 3 für I²C. Siehe auch: [[https://www.arduino.cc/en/Reference/Wire]] ===== Protokoll ===== Die Löschstation kommuniziert mit dem Arduino über ein serielles Protokoll. Dabei werden dem Arduino die Prozentangaben der jeweiligen Festplatten mitgeteilt, die auf dem Display dargestellt werden sollen. ==== Kommandos ==== ^ Kommando ^ Code ^ Beschreibung ^ Signatur ^ | STATUS | 0x01 | return status and clear errors | int status(void) | | HDD | 0x02 | update hard drive progress | void hdd(int N, int* progress) | Das Kommando HDD bekommt eine Liste mit bytes, die jeweils die Fortschrittsangaben (in %) kodieren. Der erste Parameter des Kommandos ist die Länge der Liste. ==== Status Codes ==== ^ Name ^ Code ^ Bedeutung ^ | OK | 0x00 | alles ok | | ERROR | 0x01 | flag, das bei kritischen Fehlern gesetzt wird | | BAD CMD | 0x02 | unbekanntes Kommando | | OVERFLOW | 0x04 | Überlauf (durch Angabe von mehr als 16 HDDs) | | NOT IMPL | 0x08 | Zugriff auf nicht implementiertes Kommando | | BAD PROG | 0x0F | HDD progress außerhalb Intervall [0,100] |