Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
mint_wochen:raketenbau:data [2026-01-14 13:05] – [Altimeter] hofmint_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 24: Zeile 22:
   * [[https://microbit-micropython.readthedocs.io/en/v2-docs/compass.html|Magnetometer (Kompass)]]   * [[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!+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> <code python collector.py>
 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('launch_ts', 'ax', 'ay', 'az', timestamp=None)
  
-# Delete last log 
-log.delete() 
-# Define which columns we are going to log. 
-log.set_labels('ax', 'ay', 'az', 'mx', 'my', 'mz', timestamp=log.MILLISECONDS) 
 # 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(), compass.get_y(), compass.get_z()+
  
 # 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 countdown has started! +    # Timestamp in milliseconds since countdown start. 
-    accel dict(zip(('ax', 'ay', 'az')accelerometer.get_values())+    timestamp time.ticks_ms() - START_TS 
-    bearing dict(zip(('mx''my''mz')read_compass())) +    accel = accelerometer.get_values() 
-    accel.update(bearing)+    log.add(launch_ts=timestampax=accel[0]ay=accel[1]az=accel[2])
  
-    log.add(accel) 
  
 while True: while True:
-    # Needed so that the program doesn't end prematurely. +    sleep(100) # sleep forever
-    sleep(100)+
 </code> </code>
 #### Altimeter #### Altimeter
Zeile 58: Zeile 55:
 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. 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. In letzterer kann die Höhe wie folgt ausgelesen werden:+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> <code python>
Zeile 65: Zeile 68:
  
 while True: while True:
 +    sleep(500)
     print(sensor.Altitude())     print(sensor.Altitude())
 </code> </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.+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 ### 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:raketenbau:data:pasted:20250123-130949.png?nolink}}+<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:launch_04.mp4 | Launch 04}} 
  
  • mint_wochen/raketenbau/data.1768395956.txt.gz
  • Zuletzt geändert: 2026-01-14 13:05
  • von hof