Raketenmodellbau.org Portal > Forum > Raketen Technik > Nutzlasten & Bergungssysteme > T-Beam als Flight computer
Du kannst keine neue Antwort schreiben
Seiten (2): [1] 2 »

Autor Thema 
Cover1987

Raketenbauer

Cover1987

Registriert seit: Jan 2022

Wohnort: Mannheim

Verein: Solaris, TRA #27401 L1

Beiträge: 156

Status: Offline

Beitrag 7654780 , T-Beam als Flight computer [Alter Beitrag19. Dezember 2022 um 18:08]

[Melden] Profil von Cover1987 anzeigen    Cover1987 eine private Nachricht schicken   Cover1987 besitzt keine Homepage    Mehr Beiträge von Cover1987 finden

Hallo Kollegen,

aus einem nicht umgesetzten Projekt ist bei mir ein sogenannter T-Beam übrig geblieben:
Ein ESP32 mit LoRa32 Chip (in meinem Fall 868Mhz), NEO-6M GPS Modul und 18650 Halter inkl. Ladeelektronik.

Da ich schon mal mit einem ESP8266 ein bisschen während Corona geübt habe
(Wemos D1 mini, BME280/388/390, MPU6050, SD-Karten Leser, SPIFFS und dem bekannten RFM95) konnte ich das Wissen in den T-Beam einfließen lassen. Das sah damals unter anderem so aus:


Eins noch vorweg: Ich habe mir das ganze Wissen irgendwie über Videos und online-tutorials angeeignet und davor keine Ausbildung oder Studium in E-Tech gehabt (okay, 2 Semester Grundlagen während dem Maschinenbau-Studiums, aber das hat mir für DAS keine wesentlichen Vorteile gebracht). Also geht nicht zu hart mit mir ins Gericht wink Meine Quellcodes zeige ich besser erst gar nicht - das muss für jeden etwas erfahreneren Programmierer ein Graus sein big grin

Zum T-Beam: Zusammen mit einem BME280 der den Luftdruck misst, daraus die Höhe berechnen kann und einer LED lässt sich doch schon einmal ein einfachster Flight computer basteln der über ein Blinkmuster die maximal erreichte Höhe ausgeben kann:


Der Flight computer erkennt verschiedene Zustände und wechselt von einem in den nächsten (der erfahrende Programmierer nennt das wohl "state machine"):

Mein state machine kennt folgende Zustände:
//0 -> idle on launchpad
//1 -> Rocket ascending
//2 -> Rocket descending
//3 -> Altitude readout requested

von 0->1 wird gewechselt wenn sich die gemessene Höhe um 1m ins positive ändert. Durch einen Button Druck zuvor wird die Höhe "genullt".
von 1->2 wenn der aktuell gemessene Wert 1m kleiner ist als der davor.
von 2->3 durch einen erneuten Buttondruck wird die Höhe durch blinken ausgegeben. Nach 3 Durchgaben wird alles zurück gesetzt und in state 0 gewechselt.


Um im ersten Schritt noch LoRa mit zu nutzen habe ich einen kleineres Board als "Groundstation" umfunktioniert: Ein ESP32 mit LoRa sender/empfänger und einem 0,96" OLED. Er Empfängt "einfach nur" in welchem Status der Flight computer gerade ist und gibt nach Apo die maximal erreichte höhe durch (damit wäre theoretisch das blinken überflüssig).


Folgende Funktionen wären für mich noch interessant die evtl Stück für Stück ergänzt werden (Wenn ich es schaffe):
- Übergabe der GPS-Koordinaten vom Landepunkt (Dank blox Neo6 keine zusätzliche Hardware nötig)
- MPU zur Messung von Beschleunigungen und Lage
- Logging per SPIFFS und/oder SD-Karte
- Pyrochannel


Gebt doch mal euren Senf dazu ab smile

Gruß Stefan
Doublegene

SP-Schnüffler

Doublegene

Registriert seit: Jan 2021

Wohnort: Heiligkreuzsteinach

Verein: Solaris / TRA / AGM

Beiträge: 531

Status: Offline

Beitrag 7654781 [Alter Beitrag19. Dezember 2022 um 22:20]

[Melden] Profil von Doublegene anzeigen    Doublegene eine private Nachricht schicken   Doublegene besitzt keine Homepage    Mehr Beiträge von Doublegene finden

Hallo Stefan

Ich finde es super das einiges in der Richtung unternommen wird und das du dich jetzt auch rein hängst ! Super Projekt ! Und toll das du es mit uns so detailliert teilst ! Ich freue mich sehr das ganze mal live in Augenschein nehmen zu können und stehe natürlich auch gerne für Testflüge zur Verfügung wenn da Bedarf wäre …
Bitte weiter verfolgen das Thema ! Bleibe gespannt auf die nächsten Posts … viele Grüße Marco

PS: 18650er … gibt es da einen Grund ? Kannst du die Entladeschlussspannung definieren ? Mit einem Lipo könnte man evt noch Volumen und Gewicht sparen …

Geändert von Doublegene am 19. Dezember 2022 um 22:23

AchimO

Poseidon

AchimO

Registriert seit: Jul 2014

Wohnort: Berlin

Verein: AGM

Beiträge: 1445

Status: Offline

Beitrag 7654783 [Alter Beitrag19. Dezember 2022 um 22:24]

[Melden] Profil von AchimO anzeigen    AchimO eine private Nachricht schicken   AchimO besitzt keine Homepage    Mehr Beiträge von AchimO finden

Hallo,

bevor ich näher darauf eingehe; Kennst du meinen LoRa-Thread ?

Da steht jedenfalls eine ganze Menge dazu, was ich hier nicht wiederholen will. Insbesondere solltest du über den einzuhaltenden Duty Cycle, die in der EU erlaubte Leistung und die Frequenzen genau Bescheid wissen, wenn du dich nicht strafbar machen willst.

Der Ansatz, die gemessenen Werte zu loggen, ist auf jeden Fall gut, denn durch den einzuhaltenden Duty Cycle kannst du nur die wichtigsten Informationen senden.

Was die State Machine angeht: Eine Änderung der Höhe um einen Meter für eine Starterkennung ist auf jeden Fall zu heikel, oder habe ich da etwas missverstanden? Da gibt es Rauschen, Temperaturänderungen, Wind und andere Einflüsse, die zu einer gewissen Drift führen.

Für eine Erkennung des Apogee ist eine Glättung der Höhenwerte der Flugkurve sinnvoll, z. B. über
- gleitende Mittelwerte
- Filterung wie z. B. Kalmàn-Filter

Ich habe auch schon mal eine doppelte Exponentialfilterung eingesetzt.

Filterung legt nahe, die Höhenwerte in möglichst gleichen zeitlichen Abständen abfragen zu können. Da kann die Ermittlung von GPS-Koordinaten oder das Schreiben auf eine SD-Karte womöglich zu Verzögerungen führen.

Bin gespannt darauf, wie es weitergeht.

Gruß Achim

laminare necesse est!

Im übrigen bin ich der Meinung, dass die Raketenvereine einem Verband beitreten sollten!
Cover1987

Raketenbauer

Cover1987

Registriert seit: Jan 2022

Wohnort: Mannheim

Verein: Solaris, TRA #27401 L1

Beiträge: 156

Status: Offline

Beitrag 7654784 [Alter Beitrag20. Dezember 2022 um 00:03]

[Melden] Profil von Cover1987 anzeigen    Cover1987 eine private Nachricht schicken   Cover1987 besitzt keine Homepage    Mehr Beiträge von Cover1987 finden

@Macro: 18650 hat den Grund, dass auf der Rückseite des Boards schon ein Zellenhalter dafür ist.
Den könnte man ohne Probleme durch einen kleineren Anschluss ersetzen und LiPos nutzen. Beide haben die selben Ladeschlussspannungen (4,2V) und Entladeschlussspannung (Je nach Hersteller 2,7-3V). Über den verbauten axp192 könnte man das bestimmt anpassen aber da bin ich beim besten Willen noch nicht durchgestiegen.

@Achim: Ja, deinen LoRa Thread kenne ich und bin da schon auf interessante Fakten gestoßen.
Auch auf das Thema Duty Cycle und ich habe es auch mal durchgerechnet. Mein größtes Paket hat derzeit eine Größe von 61byte - was bei einem Spreading von SF7 mit 128kH eine Airtime von 112,9ms ergeben würde. Auf den 1% Duty Cycle betrachtet könnte ich 11,3sek senden was 318 Pakete pro Stunde bedeuten würde. Oder auf Raketenstarts: Pro Start 5 Pakete mit max. 61byte = 63 Starts/Stunde.

Klar wird dass weniger wenn ich noch die GPS Koordinaten bei der Landung übermittle.
Außer ich habe jetzt einen kompletten Denkfehler in meinem Ansatz.

Für eine zuverlässige Starterkennung werde ich wohl mit den Werten experimentieren müssen (am besten erstmal ohne Pyro-Channel wink ). Gleitender Mittelwert und Kálmán hatte ich auch schon auf dem Schirm - wenn die Grundfunktion gegeben ist werde ich darüber nachdenken.

Derzeit freu ich mich erstmal, dass es einigermaßen so funktioniert, wie ich es mir vorgestellt habe smile

Gruß Stefan
AchimO

Poseidon

AchimO

Registriert seit: Jul 2014

Wohnort: Berlin

Verein: AGM

Beiträge: 1445

Status: Offline

Beitrag 7654785 [Alter Beitrag20. Dezember 2022 um 00:36]

[Melden] Profil von AchimO anzeigen    AchimO eine private Nachricht schicken   AchimO besitzt keine Homepage    Mehr Beiträge von AchimO finden

Was willst du denn in 61 Bytes alles unterbringen? : confused :
Wie heißt es doch noch? In der Beschränkung zeigt sich erst der Meister!wink

Gruß Achim

laminare necesse est!

Im übrigen bin ich der Meinung, dass die Raketenvereine einem Verband beitreten sollten!
Cover1987

Raketenbauer

Cover1987

Registriert seit: Jan 2022

Wohnort: Mannheim

Verein: Solaris, TRA #27401 L1

Beiträge: 156

Status: Offline

Beitrag 7654786 [Alter Beitrag20. Dezember 2022 um 00:38]

[Melden] Profil von Cover1987 anzeigen    Cover1987 eine private Nachricht schicken   Cover1987 besitzt keine Homepage    Mehr Beiträge von Cover1987 finden

Ich übertrage einfach den Klartext (noch?) ruhe
Ich sag doch - meinen Quellcode sollte niemand sehen fg

Gruß Stefan
Cover1987

Raketenbauer

Cover1987

Registriert seit: Jan 2022

Wohnort: Mannheim

Verein: Solaris, TRA #27401 L1

Beiträge: 156

Status: Offline

Beitrag 7655148 [Alter Beitrag09. Februar 2023 um 00:36]

[Melden] Profil von Cover1987 anzeigen    Cover1987 eine private Nachricht schicken   Cover1987 besitzt keine Homepage    Mehr Beiträge von Cover1987 finden

Inzwischen habe ich einen neuen "Meilenstein" erreicht, dass ich hier wieder etwas neues zeigen kann:

Da das mit den GPS-Koordinaten recht gut funktioniert hat (außer dass ich maximal mit 1Hz GPS-Koordinaten auslesen kann -dazu aber später mehr) habe ich das Board weiter analysiert und festgestellt, dass es mit der SD-Karte schwierig wird, weil nicht alle benötigten GPIOs bzw. Pins nach außen geführt werden. Also musste ich den Punkt von der Liste streichen und werde es wohl in ein anderes Projekt "outsourcen" - genau so wie der Punkt MPU, weil damit aus meiner Sicht der Datenaustausch schwieriger wird (außer über WLan und SPIIFS bzw. littlefs... Abwarten was sich noch ergibt.

Somit bleibt aus der "Features-Liste" noch das Thema Pyro-Channels:
Da ich noch nicht so viel mit MOSFETs zum schalten gearbeitet habe hieß es erstmal hier etwas erfahrung sammeln:
Die eine oder andere Testschlatung auf dem Breadboard aufgebaut und damit rumgespielt - LEDs schalten, größere Spannungen und Ströme und zum Schluss Brückenzünder:



Danach ging es zur Auswahl eines geeigneten MOSFETs, grobes Schaltbild per Hand



Design einer Platine die auf die Rückseite des T-Beams passt, Ansteuerung des MOSFETs, Durchgangstest, Spannungsüberwachung... Sah zum Schluss dann in KiCad so aus:


Gruß Stefan
Cover1987

Raketenbauer

Cover1987

Registriert seit: Jan 2022

Wohnort: Mannheim

Verein: Solaris, TRA #27401 L1

Beiträge: 156

Status: Offline

Beitrag 7655149 [Alter Beitrag09. Februar 2023 um 00:53]

[Melden] Profil von Cover1987 anzeigen    Cover1987 eine private Nachricht schicken   Cover1987 besitzt keine Homepage    Mehr Beiträge von Cover1987 finden

Heute (oder inzwischen Gestern) kam dann das PCB an.
Also erstmal mit SMD-Bauteilen bestücken, dann die THT Bauteile aufgelötet und Stromversorgung über LiPo (davor den 18650 Halter vom Borad runter gelötet) bereitgestellt. Ergeben hat sich dann folgendes "Konstrukt":





Ich habe im ersten Schritt erstmal alles noch steckbar gemacht über Pinleisten um anfangs noch flexibel zu sein. Später kommen sowohl beim BME280 als auch beim ganzen zwischenstecker weg und es wird noch etwas flacher.

Die nächsten Tage werde ich mich mit der Software beschäftigen. Dann wird sich auch zeigen ob ich im PCB nicht doch irgendwo einen Fehler drin habe. Sobald es was neues "vorzeigbares" gibt, werde ich es hier dokumentieren.

Hardwaretechnisch ist dem einen oder anderen vielleicht aufgefallen, dass das T-Beam Board keinen festen SMA-Anschluss mehr hat. Lilygo hat eine neue Version mit IPEX Stecker rausgebacht was ganz gut ist, die Antenne dahin legen zu können, wo es im eigenen Gehäuse Sinn macht. Zusätzlich gab es ein update fürs GPS. Statt dem Neo-6M Block ist ein 8M verbaut, der mit 10Hz ausgelesen werden kann und zusätzlich zu GPS auch noch BeiDou, Galileo und GLONASS unterstützt.

Gruß Stefan
morob

Epoxy-Meister

morob

Registriert seit: Jul 2001

Wohnort: Berlin

Verein: DERA e.V.

Beiträge: 400

Status: Offline

Beitrag 7655150 [Alter Beitrag09. Februar 2023 um 08:33]

[Melden] Profil von morob anzeigen    morob eine private Nachricht schicken   Besuche morob's Homepage    Mehr Beiträge von morob finden

Morgen,

warum misst Du die Spannung am Zünder, reicht da nicht ein Zustand, Zünder da oder Zünder nicht da?

Gruß
Stephan
AchimO

Poseidon

AchimO

Registriert seit: Jul 2014

Wohnort: Berlin

Verein: AGM

Beiträge: 1445

Status: Offline

Beitrag 7655151 [Alter Beitrag09. Februar 2023 um 11:21]

[Melden] Profil von AchimO anzeigen    AchimO eine private Nachricht schicken   AchimO besitzt keine Homepage    Mehr Beiträge von AchimO finden

Zitat:
warum misst Du die Spannung am Zünder, reicht da nicht ein Zustand, Zünder da oder Zünder nicht da?


Hängt womöglich davon ab, wie der Zünder geschaltet wird:
a. Spannung auf Zünder schalten -> HighSide-Schalter
b. Masse auf Zünder schalten -> LowSide-Schalter; so ist es einfacher und so machen es die meisten

Gruß Achim

laminare necesse est!

Im übrigen bin ich der Meinung, dass die Raketenvereine einem Verband beitreten sollten!
Seiten (2): [1] 2 »
[Zurück zum Anfang]
Du kannst keine neue Antwort schreiben