Seite anzeigenÄltere VersionenLinks hierherCopy this pageFold/unfold allNach oben Diese Seite ist nicht editierbar. Du kannst den Quelltext sehen, jedoch nicht verändern. Kontaktiere den Administrator, wenn du glaubst, dass hier ein Fehler vorliegt. ## Data Processing ### Data Collection Wir wollen die Raketenstarts möglichst detailliert vermessen und dokumentieren. Dazu können externe Sensoren (z.B. statische Kameras) verwendet werden, aber auch Nutzlast-Sensoren mit der Rakete mitfliegen. Werden die Daten nicht erst nach dem Flug ausgewertet, sondern während des Flugs an die Bodenstation übertragen, sprechen wir von _Telemetrie_. Damit die Sensorik-Einheit die Landung übersteht und wie die SpaceX-Raketen wiederverwendet werden können, muss eine entsprechende [[wasserrakete#nutzlastverkleidung|Nutzlastverkleidung]], eine Aufpralldämpfung oder ein Fallschirmsystem gebaut werden. #### Sensoren * Bodenkamera * Stativ, Zeitlupenaufnahme... * Microbit: * Beschleunigungsmesser * Magnetometer (Kompass) * Interner Speicher zur Aufzeichnung. * Arduino * Höhenmesser #### Microbit * [[https://microbit-micropython.readthedocs.io/en/v2-docs/log.html|Data Logging API]] * [[https://microbit-micropython.readthedocs.io/en/v2-docs/tutorials/radio.html|Bluetooth Funk-Verbindung]] * [[https://microbit-micropython.readthedocs.io/en/v2-docs/accelerometer.html|Beschleunigungssensor]] * [[https://microbit-micropython.readthedocs.io/en/v2-docs/compass.html|Magnetometer (Kompass)]] Einfache Datensammlung könnte wie folgt stattfinden. Achtung, der Microbit sammelt Daten, sobald er eingestellt wird, was blitzschnell den Speicher füllt. Für den Raketenbetrieb sollte die Datensammlung erst loslegen, wenn der Countdown beginnt! Es wäre also gut, den Countdown für Kameras und die Onboard-Sensorik per Bluetooth zu synchronisieren. <code python collector.py> from microbit import * import log import time # Logging will be mirrored on console. log.set_mirroring(True) # Define which columns we are going to log, and disable timestamps log.set_labels('launch_ts', 'ax', 'ay', 'az', timestamp=None) # The standard setting only allows accelerations up to 2g, we want 8g! accelerometer.set_range(8) START_TS = time.ticks_ms() # start timestamp # Set the timer to log data every 20 milliseconds (50 measurements per second) @run_every(ms=20) def log_single_row(): # Timestamp in milliseconds since countdown start. timestamp = time.ticks_ms() - START_TS accel = accelerometer.get_values() log.add(launch_ts=timestamp, ax=accel[0], ay=accel[1], az=accel[2]) while True: sleep(100) # sleep forever </code> #### Altimeter Wir haben einige [[https://learn.adafruit.com/adafruit-bmp280-barometric-pressure-plus-temperature-sensor-breakout/overview|BMP280 Höhenmesser]] von Adafruit. Diese lassen sich mit [[https://github.com/shaoziyang/microbit-lib/blob/master/sensor/bmp280/README.md|dieser Bibliothek]] einlesen. Die `bmp280.py` Datei muss im Projekt im selben Ordner gespeichert werden wie die Hauptdatei. Dabei muss die I2C-Adresse in der Datei noch angepasst werden: <code python> BMP280_I2C_ADDR = 0x77 # statt 0x76 </code> In der Hauptdatei (`main.py`) kann die Höhe wie folgt ausgelesen werden: <code python> import bmp280 sensor = bmp280.BMP280() while True: sleep(500) print(sensor.Altitude()) </code> Auf der Hardware-Seite müssen die vier Kontakte des Sensors mit 3V, GND sowie Pins 19 (SCL) und 20 (SDA) am Microbit verbunden werden. Ideal ist die Verbindung des BMP via Dragontail: <figure fig_label> {{.:data:pasted:20260201-101356.png?nolink&400}} <caption>Payload mit Altimeter und LiPo-Stromversorgung</caption> </figure> ### Synchronisation Ein Problem ist, dass mit dem obigen Code der Log-Speicher schnell voll ist. Weil aber die Befüllung und der Druckaufbau mehrere Minuten Zeit benötigen, kann es sein, dass der Speicher nicht für die eigentlichen Flugdaten reicht. Es wäre gut, die Datenaufzeichnung erst mit dem Launch-Countdown zu starten. Abhilfe bietet ein zweiter Microbit in der Bodenstation, die bei Launch - 10s via Bluetooth den Countdown-Befehl an die Payload sendet. Bei Countdown -10s werden alle Sensoren (Payload, Kameras) gestartet und können später zusammengestellt werden. ### Data Processing Mit der Data-Collection ist es aber noch nicht getan. Rohdaten müssen aggregiert (zusammengefasst), verknüpft und aufbereitet werden. Einschlägige Tools sind Excel, Google Sheets und Pandas. #### Tabellenkalkulationen Tabellenkalulationen wie Excel und Google Sheets sind gute Tools, um moderate Datenmengen zusammenzufassen oder zu visualisieren. **Beispiel**: Eine Videoaufzeichnung des Wasserausstosses in Zeitlupe wird in [[https://www.shotcut.org/|Shotcut]] mit einer [[https://www.youtube.com/watch?v=293ynIvdiFQ|Stoppuhr überlagert]]. Anschliessend erfolgt das Auslesen des Wasserstands zu den verschiedenen Zeiten. <figure fig_label> {{:mint_wochen:raketenbau:rocket_01.mp4|1l Wasser, 2bar, 1.67s}} <caption>1l Wasser, 2bar, 1.67s</caption> </figure> ^ Elapsed [s] ^ Remaining Water [liters] ^ | 0 | 1 | | 0.3 | 0.5 | | 0.74 | 0.3 | | 0.87 | 0.2 | | 1.24 | 0.1 | | 1.76 | 0 | In [[https://docs.google.com/spreadsheets/d/1zIpPYcUDGvgF9AEMHYsLw-L0JJpJ3P1N8cMeBtRDN80/edit?gid=0#gid=0|Google Sheets]] erfolgt die Visualisierung und die Auswertung mit Log-Trendlinie: <figure expulsion> {{:mint_wochen:raketenbau:data:pasted:20250210-133855.png?nolink&480}} <caption>Wasseraustoss</caption> </figure> #### Pandas Pandas eignet sich für grosse Datenmengen und professionelle, automatisierte Verarbeitung von vielen Datensätzen. [[https://github.com/tkilla77/ksr_mint_rocketscience/blob/main/analysis.ipynb|Beispiel]], [[https://pandas.pydata.org/docs/user_guide/index.html#user-guide|Dokumentation]]. {{:mint_wochen:raketenbau:data:pasted:20250121-143221.png?300&nolink}} Für das Alignment der verschiedenen Sensor-Daten müssen die Zeitstempel synchronisiert werden und mit dem Countdown abgeglichen werden. ### Data Visualization Bragging Rights gibts nur, wenn die Resultate (erreichte Flughöhe, maximale Flugzeit, Beschleunigung) auch ansprechend dargestellt und verständlich visualisiert werden. <figure diagram> {{.:presentations:pasted:20260121-160920.png?nolink}} <caption>Beschleunigung, Geschwindigkeit & Höhe (aus [[https://github.com/tkilla77/ksr_mint_rocketscience/blob/main/explore.ipynb|diesem Notebook]])</caption> </figure> <figure video1> {{:mint_wochen:raketenbau:launch_04.mp4?nolink |Launch 04}} <caption>Launch 04/2025</caption> </figure> <figure video2> {{:mint_wochen:raketenbau:launch_2026.mp4 | Launch 01/2026}} <caption>Launch 01/2026</caption> </figure> mint_wochen/raketenbau/data.txt Zuletzt geändert: 2026-02-01 10:27von hof