Avionik – HRKULES
Eine Platine trägt Sensorik, Regelung, Bergungsauslösung, Datenaufzeichnung und Funk, und sie wird im eigenen Haus entwickelt, gebaut und getestet.
Telemetriepaket50 pro Sekunde
- Zeit
- Höhe
- Lage
- Beschleunigung
- Temperatur
- Batterie
- Flugzustand
- Fehlerwort
- Filter-Innovation
- Flags
- Sequenzzähler
- Version
Schema: was ein Paket enthält, nicht sein Aufbau.
-
01
Eine Platine
HRKULES ist der Flugrechner: eine einzige Platine für Sensorik, Regelung, Bergungsauslösung, Datenaufzeichnung und Funk. Ein RP2040 liest IMU und Barometer aus, fusioniert sie in einem Kalman-Filter zur Höhenschätzung, führt den Zustandsautomaten und beide Regelkreise aus, zeichnet jeden Flugzyklus im internen Flash auf und steuert die Gimbal-Servos sowie den Pyrokanal an. Alles läuft in einem festen 200-Hz-Takt; jeder Zyklus, der sein Zeitfenster überschreitet, wird gezählt. Dritte Platinenrevision, entworfen in KiCad.
Abb. 2.2 – HRKULES · Layout V3, Platine 2.0 auf dem Arbeitstisch, Avionikbucht -
02
Ein fester 200-Hz-Takt
Der gesamte Flugrechner läuft nach einem festen Takt: 200 Durchläufe pro Sekunde. Jeder Durchlauf liest die Sensoren, lässt den Zustandsautomaten entscheiden, aktualisiert den Schätzer, führt die Regelkreise aus und protokolliert den Zyklus; die Telemetrie geht mit niedrigerer Rate hinaus. Die Schleife wartet auf ihren Zeitschlitz und schaltet den Takt um eine feste Periode weiter, sodass die Rate nicht driften kann, und jeder Durchlauf, der seinen Zeitschlitz überschreitet, wird gezählt. Nach einer Überschreitung synchronisiert sie sich neu, statt hintereinander aufzuholen, denn ein Schub von Durchläufen würde alles verfälschen, was über die Zeit integriert.
-
03
Telemetrie
Der Funktreiber ist direkt gegen die Registerbeschreibung des RFM95W programmiert, nicht gegen eine Bibliothek. Die Telemetrie besteht aus einem kompakten Paket, 50-mal pro Sekunde: Zeitstempel, Zustand, Höhe, drei Lagewinkel, Gesamtbeschleunigung, Temperatur, Akkuspannung, ein Fehlerwort, ein Filter-Innovationswert, ein Flag-Byte, ein Sequenzzähler und ein Versionsbyte. Die Paketgröße wird beim Bau der Firmware geprüft: Ein geändertes Layout lässt den Build scheitern, statt den Downlink zu verfälschen. Den Paketverlust leitet die Bodenstation aus dem Sequenzzähler ab.
-
04
Aufzeichnung
Jeder Zyklus des Flugs wird in einen Flash-Baustein auf der Platine geschrieben. Nach der Landung wird das Protokoll auf die SD-Karte kopiert, sodass nichts verloren geht, wenn der Akku abgezogen wird, und die Daten sich direkt im Data Viewer öffnen lassen. Liegt beim nächsten Einschalten noch ein Protokoll auf dem Baustein, wird es zuerst auf die Karte kopiert.
-
05
Konfiguration am Startplatz
Parameter werden beim Start aus einer Konfigurationsdatei auf der SD-Karte gelesen und sind nicht fest einkompiliert. So lässt sich die Rakete an der Startrampe ohne Toolchain nachjustieren. Jeder Wert wird gegen einen zulässigen Flugbereich geprüft; eine fehlende Datei, ein unbekannter Schlüssel oder ein Tippfehler lassen den einkompilierten Standardwert unverändert.
-
06
Fehler und Startsperre
Fehler werden zweifach erfasst: die aktuell anstehenden und alle, die seit dem Start aufgetreten sind. Ein Fehler, der nur zeitweise auftritt, bleibt in der aktuellen Anzeige unsichtbar – dafür gibt es die Speicherung. Fällt beim Start ein flugkritisches Subsystem aus, startet die Hauptschleife gar nicht erst und die Status-LED blinkt: Die Rakete bleibt am Boden, statt mit unzuverlässigen Daten zu fliegen.
-
07
Technische Daten
- Revision
- V3 (V1 → V3)
- MCU
- RP2040 @ 133 MHz · Arduino-Nano-RP2040-Connect-Modul
- IMU
- MPU6050 – 6 Achsen
- Barometer
- BMP180
- Zustandsschätzung
- Kalman-Filter aus Barometer und Beschleunigungssensor
- Hauptschleife
- 200 Hz, fester Takt
- Funk
- RFM95W · 433-MHz-Band
- Speicher
- W25Q-Flash (Flugdaten) · SD (Konfiguration, Kopie nach dem Flug)
- Ausgänge
- 2 Servokanäle (Gimbal) · 1 Pyrokanal
- Telemetrie
- kompaktes, versioniertes Paket · 50 Hz
Höhenschätzung
Höhe und Vertikalgeschwindigkeit stammen aus einem Kalman-Filter mit zwei Zuständen. Der Beschleunigungssensor treibt die Prädiktion mit 200 Hz an; das Barometer korrigiert sie, sobald ein neuer Messwert vorliegt. Jeder Barometerwert wird gegen die Unsicherheit des Filters selbst geprüft: Ist er statistisch unplausibel, wird er verworfen, und erst eine anhaltende Folge von Verwerfungen setzt den Filter neu auf das Barometer auf. Ein einzelner Ausreißer kann die Schätzung somit nicht verschieben, ein tatsächlich abgedrifteter Filter findet jedoch von selbst zurück.