Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| mint_wochen:raketenbau:data [2026-01-14 13:08] – [Microbit] hof | mint_wochen:raketenbau:data [2026-02-01 10:27] (aktuell) – [Data Visualization] hof | ||
|---|---|---|---|
| Zeile 14: | Zeile 14: | ||
| * Arduino | * Arduino | ||
| * Höhenmesser | * Höhenmesser | ||
| - | |||
| #### Microbit | #### Microbit | ||
| Zeile 28: | Zeile 27: | ||
| from microbit import * | from microbit import * | ||
| import log | 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(' | ||
| - | # Delete last log | ||
| - | log.delete() | ||
| - | # Define which columns we are going to log. | ||
| - | log.set_labels(' | ||
| # The standard setting only allows accelerations up to 2g, we want 8g! | # The standard setting only allows accelerations up to 2g, we want 8g! | ||
| accelerometer.set_range(8) | accelerometer.set_range(8) | ||
| - | def read_compass(): | + | START_TS = time.ticks_ms() # start timestamp |
| - | return compass.get_x(), | + | |
| # Set the timer to log data every 20 milliseconds (50 measurements per second) | # Set the timer to log data every 20 milliseconds (50 measurements per second) | ||
| @run_every(ms=20) | @run_every(ms=20) | ||
| def log_single_row(): | def log_single_row(): | ||
| - | # TODO: do nothing unless | + | # Timestamp in milliseconds since countdown |
| - | | + | |
| - | | + | accel = accelerometer.get_values() |
| - | | + | |
| - | log.add(accel) | ||
| while True: | while True: | ||
| - | | + | sleep(100) |
| - | | + | </ |
| - | </code | + | |
| - | > | + | |
| #### Altimeter | #### Altimeter | ||
| Wir haben einige [[https:// | Wir haben einige [[https:// | ||
| - | Die `bmp280.py` Datei muss im Projekt im selben Ordner gespeichert werden wie die Hauptdatei. In letzterer | + | Die `bmp280.py` Datei muss im Projekt im selben Ordner gespeichert werden wie die Hauptdatei. |
| + | |||
| + | <code python> | ||
| + | BMP280_I2C_ADDR = 0x77 # statt 0x76 | ||
| + | </ | ||
| + | |||
| + | In der Hauptdatei (`main.py`) | ||
| <code python> | <code python> | ||
| Zeile 65: | Zeile 68: | ||
| while True: | while True: | ||
| + | sleep(500) | ||
| print(sensor.Altitude()) | print(sensor.Altitude()) | ||
| </ | </ | ||
| - | 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. | + | 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. |
| + | |||
| + | <figure fig_label> | ||
| + | {{.: | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | |||
| + | ### 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, | ||
| + | |||
| ### Data Processing | ### Data Processing | ||
| Zeile 104: | Zeile 121: | ||
| Für das Alignment der verschiedenen Sensor-Daten müssen die Zeitstempel synchronisiert werden und mit dem Countdown abgeglichen werden. | Für das Alignment der verschiedenen Sensor-Daten müssen die Zeitstempel synchronisiert werden und mit dem Countdown abgeglichen werden. | ||
| - | |||
| - | |||
| ### Data Visualization | ### Data Visualization | ||
| Bragging Rights gibts nur, wenn die Resultate (erreichte Flughöhe, maximale Flugzeit, Beschleunigung) auch ansprechend dargestellt und verständlich visualisiert werden. | Bragging Rights gibts nur, wenn die Resultate (erreichte Flughöhe, maximale Flugzeit, Beschleunigung) auch ansprechend dargestellt und verständlich visualisiert werden. | ||
| - | {{:mint_wochen: | + | <figure diagram> |
| + | {{.:presentations:pasted:20260121-160920.png? | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure video1> | ||
| + | {{: | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure video2> | ||
| + | {{: | ||
| + | < | ||
| + | </ | ||
| - | {{: | ||