Autor | Thema |
---|---|
Cover1987
Raketenbauer Registriert seit: Jan 2022 Wohnort: Mannheim Verein: Solaris, TRA #27401 L1 Beiträge: 178 Status: Offline |
Beitrag 7654780
, T-Beam als Flight computer
[19. Dezember 2022 um 18:08]
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 Meine Quellcodes zeige ich besser erst gar nicht - das muss für jeden etwas erfahreneren Programmierer ein Graus sein 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 Gruß Stefan |
Doublegene
SP-Schnüffler Registriert seit: Jan 2021 Wohnort: Heiligkreuzsteinach Verein: Solaris / TRA / AGM Beiträge: 533 Status: Offline |
Beitrag 7654781
[19. Dezember 2022 um 22:20]
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 Registriert seit: Jul 2014 Wohnort: Berlin Verein: AGM Beiträge: 1521 Status: Offline |
Beitrag 7654783
[19. Dezember 2022 um 22:24]
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 Registriert seit: Jan 2022 Wohnort: Mannheim Verein: Solaris, TRA #27401 L1 Beiträge: 178 Status: Offline |
Beitrag 7654784
[20. Dezember 2022 um 00:03]
@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 ). 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 Gruß Stefan |
AchimO
Poseidon Registriert seit: Jul 2014 Wohnort: Berlin Verein: AGM Beiträge: 1521 Status: Offline |
Beitrag 7654785
[20. Dezember 2022 um 00:36]
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! Gruß Achim laminare necesse est! Im übrigen bin ich der Meinung, dass die Raketenvereine einem Verband beitreten sollten! |
Cover1987
Raketenbauer Registriert seit: Jan 2022 Wohnort: Mannheim Verein: Solaris, TRA #27401 L1 Beiträge: 178 Status: Offline |
Beitrag 7654786
[20. Dezember 2022 um 00:38]
Ich übertrage einfach den Klartext (noch?)
Ich sag doch - meinen Quellcode sollte niemand sehen Gruß Stefan |
Cover1987
Raketenbauer Registriert seit: Jan 2022 Wohnort: Mannheim Verein: Solaris, TRA #27401 L1 Beiträge: 178 Status: Offline |
Beitrag 7655148
[09. Februar 2023 um 00:36]
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 Registriert seit: Jan 2022 Wohnort: Mannheim Verein: Solaris, TRA #27401 L1 Beiträge: 178 Status: Offline |
Beitrag 7655149
[09. Februar 2023 um 00:53]
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 Registriert seit: Jul 2001 Wohnort: Berlin Verein: DERA e.V. Beiträge: 408 Status: Offline |
Beitrag 7655150
[09. Februar 2023 um 08:33]
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 Registriert seit: Jul 2014 Wohnort: Berlin Verein: AGM Beiträge: 1521 Status: Offline |
Beitrag 7655151
[09. Februar 2023 um 11:21]
Zitat: 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! |