Inhaltsverzeichnis:

Raketentelemetrie / Positionstracker - Gunook
Raketentelemetrie / Positionstracker - Gunook

Video: Raketentelemetrie / Positionstracker - Gunook

Video: Raketentelemetrie / Positionstracker - Gunook
Video: Ultimate Saturn V Launch with Enhanced Sound 2024, Juli
Anonim
Raketentelemetrie/Positionstracker
Raketentelemetrie/Positionstracker

Dieses Projekt soll Flugdaten von einem 9 DOF-Sensormodul auf eine SD-Karte protokollieren und gleichzeitig seinen GPS-Standort über Mobilfunknetze an einen Server übertragen. Dieses System ermöglicht das Auffinden der Rakete, wenn der Landebereich des Systems außerhalb der Sichtlinie liegt.

Schritt 1: Teileliste

Liste der Einzelteile
Liste der Einzelteile
Liste der Einzelteile
Liste der Einzelteile

Telemetriesystem:

1x ATmega328 Mikrocontroller (Arduino UNO, Nano)

1x Micro SD Breakout -

1x Micro SD Karte - (Größe spielt keine Rolle FAT 16/32 formatiert) - Amazon Link

1x Gy-86 IMU - Amazon Link

Positionsverfolgung:

1x ATmega328 Mikrocontroller (Arduino UNO, Nano) (jedes System benötigt ein eigenes Mikro)

1x Sim800L GSM GPRS Modul - Amazon Link

1x SIM-Karte (muss einen Datentarif haben) - https://ting.com/ (ting berechnet nur für das, was Sie verwenden)

1x NEO 6M GPS-Modul - Amazon Link

Allgemeine Teile:

1x 3,7 V Lipo-Akku

1x 3,7-5v Aufwärtswandler (wenn Sie die Platine nicht bauen)

1x Raspberry Pi oder jeder Computer, der einen PHP-Server hosten kann

-Zugang zum 3D-Drucker

-BOM für PCB ist in der Tabelle aufgeführt

-Gerber sind im Github-Repo -

Schritt 2: Subsystem 1: Positionsverfolgung

Testen:

Sobald Sie die Teile für das System (NEO-6M GPS, Sim800L) zur Hand haben, müssen Sie die Funktionalität der Systeme unabhängig testen, damit Sie keine Kopfschmerzen haben, herauszufinden, was bei der Integration der Systeme nicht funktioniert.

GPS-Tests:

Um den GPS-Empfänger zu testen, können Sie entweder die von Ublox bereitgestellte Software (U-Center Software)

oder die im Github Repo verlinkte Testskizze (GPS Test)

1. Um mit der U-Center-Software zu testen, schließen Sie einfach den GPS-Empfänger über USB an und wählen Sie den COM-Port in U-Center aus. Danach sollte das System automatisch mit der Verfolgung Ihres Standorts beginnen.

2. Um mit einem Mikrocontroller zu testen, laden Sie die GPS-Testskizze über die IDE auf ein Arduino hoch. Verbinden Sie dann 5V und GND mit den beschrifteten Pins des Empfängers mit dem Arduino und den GPS-RX-Pin mit Digital 3 und den TX-Pin mit Digital 4 des Arduino. Öffnen Sie schließlich den seriellen Monitor auf der Arduino-IDE und stellen Sie die Baudrate auf 9600 ein und überprüfen Sie, ob die empfangenen Koordinaten korrekt sind.

Hinweis: Eine visuelle Kennzeichnung der Satellitensperre auf dem NEO-6M-Modul besteht darin, dass die rote LED-Anzeige alle paar Sekunden blinkt, um eine Verbindung anzuzeigen.

SIM800L-Test:

Um das Mobilfunkmodul zu testen, müssen Sie eine SIM-Karte mit einem aktiven Datentarif registrieren lassen. Ich empfehle Ting, da hier nur das berechnet wird, was Sie nutzen, anstatt eines monatlichen Datentarifs.

Das Ziel des Sim-Moduls besteht darin, eine HTTP-GET-Anfrage mit dem vom GPS-Empfänger empfangenen Standort an den Server zu senden.

1. Um das Zellmodul zu testen, legen Sie die SIM-Karte mit der abgeschrägten Seite nach außen in das Modul ein

2. Verbinden Sie das Sim-Modul mit GND und einer 3,7-4,2V-Quelle, verwenden Sie keine 5V!!!! Das Modul kann nicht mit 5 V betrieben werden. Verbinden Sie das Sim-Modul RX mit Analog 2 und TX mit Analog 3 auf dem Arduino

3. Laden Sie die serielle Pass-Through-Skizze vom Github hoch, um Befehle an das Zellenmodul senden zu können.

4. Folgen Sie diesem Tutorial oder laden Sie die Testversion von AT Command Tester herunter, um die HTTP GET-Funktionalität zu testen

Implementierung:

Sobald Sie überprüft haben, dass beide Systeme unabhängig voneinander funktionieren, können Sie mit dem Hochladen der vollständigen Skizze auf den Mikrocontroller-Github fortfahren. Sie können den seriellen Monitor mit 9600 Baud öffnen, um zu überprüfen, ob das System Daten an den Webserver sendet.

* Vergessen Sie nicht, die Server-IP und den Port auf Ihre eigene zu ändern und stellen Sie sicher, dass Sie den APN für den von Ihnen verwendeten Mobilfunkanbieter finden.

Gehen Sie zum nächsten Schritt, in dem wir den Server einrichten

Schritt 3: Server-Setup

Server-Setup
Server-Setup

Um einen Server einzurichten, um den Standort der Rakete anzuzeigen, habe ich einen Himbeer-Pi als Host verwendet, aber Sie können jeden Computer verwenden.

Folgen Sie diesem Tutorial zum Einrichten von lightphp auf einem RPI und kopieren Sie dann die PHP-Dateien vom Github in den Ordner /var/www/html Ihres RPI. Nachdem Sie einfach den Befehl verwendet haben

sudo service lighttpd force-reload

um den Server neu zu laden.

Stellen Sie sicher, dass Sie die mit dem Server verbundenen Ports auf Ihrem Router weiterleiten, damit Sie aus der Ferne auf die Daten zugreifen können. Auf dem rpi sollte es Port 80 sein, und der externe Port kann eine beliebige Nummer sein.

Es ist eine gute Idee, eine statische IP für das RPI festzulegen, damit die Ports, die Sie weiterleiten, immer auf die Adresse des RPI zeigen.

Schritt 4: Subsystem 2: Telemetrieprotokollierung

Das Telemetrieprogramm läuft auf einem separaten Mikrocontroller vom Positionsverfolgungssystem. Diese Entscheidung wurde aufgrund von Speicherbeschränkungen auf dem ATmega328 getroffen, die verhindern, dass beide Programme auf einem System ausgeführt werden können. Eine andere Auswahl an Mikrocontrollern mit erweiterten Spezifikationen könnte dieses Problem lösen und die Verwendung eines zentralen Prozessors ermöglichen, aber ich wollte die Teile verwenden, die ich zur Verfügung hatte, um die Bedienung zu vereinfachen.

Features: Dieses Programm basiert auf einem anderen Beispiel, das ich hier online gefunden habe.

  • Das Programm liest nativ die relative Höhe (Höhenmessung wird beim Start auf Null gesetzt), Temperatur, Druck, Beschleunigung in X-Richtung (Sie müssen die Richtung der Beschleunigung basierend auf der physischen Ausrichtung des Sensors ändern) und einen Zeitstempel (in Millise).).
  • Um zu verhindern, dass Daten während des Sitzens auf der Startrampe protokolliert werden und Speicherplatz verschwendet wird, beginnt das System erst mit dem Schreiben von Daten, wenn es eine Höhenänderung erkennt (im Programm konfigurierbar) und stoppt das Schreiben von Daten, sobald es erkennt, dass die Rakete in ihren ursprünglichen Zustand zurückgekehrt ist Flughöhe oder nach Ablauf einer Flugzeit von 5 min.
  • Das System zeigt über eine einzelne Anzeige-LED an, dass es eingeschaltet ist und Daten schreibt.

Testen:

Um das System zu testen, schließen Sie zuerst den SD-Karten-Breakout an

Arduino SD-Karte

Pin 4 ---------------- CS

Pin 11 -------------- DI

Pin 13 -------------- SCK

Pin 12 -------------- DO

Verbinden Sie nun den GY-86 über I^2C. mit dem System

Arduino GY-86

Stift A4 -------------- SDA

Stift A5 -------------- SCL

Pin 2 ---------------- INTA

Erstellen Sie auf der SD-Karte eine Datei im Hauptverzeichnis namens datalog.txt, in die das System Daten schreibt.

Ändern Sie vor dem Hochladen der Data_Logger.ino-Skizze auf den Mikrocontroller den Wert von ALT_THRESHOLD auf 0, damit das System die Höhe zum Testen ignoriert. Öffnen Sie nach dem Hochladen den seriellen Monitor mit 9600 Baud, um die Ausgabe des Systems anzuzeigen. Stellen Sie sicher, dass sich das System mit dem Sensor verbinden kann und Daten auf die SD-Karte geschrieben werden. Trennen Sie das System vom Netz und legen Sie die SD-Karte in Ihren Computer ein, um zu überprüfen, ob Daten auf die Karte geschrieben wurden.

Schritt 5: Systemintegration

System Integration
System Integration
System Integration
System Integration

Nachdem Sie überprüft haben, dass jeder Teil des Systems in der gleichen Konfiguration wie auf der Hauptplatine funktioniert, ist es an der Zeit, alles zusammenzubringen und sich auf den Start vorzubereiten! Ich habe die Gerbers- und EAGLE-Dateien für die Platine und den Schaltplan in den Github aufgenommen. Sie müssen die Gerber bei einem Hersteller wie OSH Park oder JLC hochladen, um sie produzieren zu lassen. Diese Boards sind zweilagig und klein genug, um in die 10cmx10cm-Kategorie der meisten Hersteller für billige Boards zu passen.

Sobald Sie die Platinen von der Herstellung zurück haben, ist es an der Zeit, alle in der Tabelle und der Stückliste gefundenen Komponenten auf die Platine zu löten.

Programmierung:

Nachdem alles gelötet ist, müssen Sie die Programme auf die beiden Mikrocontroller hochladen. Um Platz auf der Platine zu sparen, habe ich keine USB-Funktionalität eingebaut, aber die ICSP- und seriellen Ports abgebrochen, damit Sie das Programm trotzdem hochladen und überwachen können.

  • Um das Programm hochzuladen, befolgen Sie dieses Tutorial zur Verwendung eines Arduino-Boards als Programmierer. Laden Sie SimGpsTransmitter.ino auf den ICSP_GPS-Port und Data_Logger.ino auf den ICSP_DL-Port hoch (Der ICSP-Port auf der Platine hat das gleiche Layout wie auf Standard-Arduino UNO-Boards).
  • Sobald alle Programme hochgeladen sind, können Sie das Gerät über den Batterieeingang mit 3,7-4,2 V versorgen und die 4 Kontrollleuchten verwenden, um zu überprüfen, ob das System funktioniert.

    • Die ersten beiden Lichter 5V_Ok und VBATT_OK zeigen an, dass die Batterie und die 5V-Schienen mit Strom versorgt werden.
    • Das dritte Licht DL_OK blinkt alle 1 Sekunde, um anzuzeigen, dass die Telemetrieprotokollierung aktiv ist.
    • Das letzte Licht SIM_Transmit leuchtet auf, sobald die Mobilfunk- und GPS-Module verbunden sind und Daten an den Server gesendet werden.

Schritt 6: Gehäuse

Gehege
Gehege

Die Rakete, um die ich dieses Projekt entwerfe, hat einen Innendurchmesser von 29 mm, um die Elektronik zu schützen und die Baugruppe in den zylindrischen Körper der Rakete zu passen. Ich habe ein einfaches zweiteiliges 3D-gedrucktes Gehäuse hergestellt, das zusammengeschraubt ist und hat Sichtöffnungen für die Kontrollleuchten. STL-Dateien zum Drucken und original.ipt-Dateien befinden sich im Github-Repository. Ich habe dies nicht modelliert, da ich mir nicht sicher war, welchen Akku ich verwenden würde, aber ich habe manuell eine Aussparung für einen 120-mAh-Akku erstellt, um bündig mit dem Boden des Gehäuses zu sitzen. Es wird geschätzt, dass dieser Akku eine maximale Laufzeit von ~45 Minuten für das System bei einem Stromverbrauch von ~200 mA bietet (dies hängt von der Prozessornutzung und dem Stromverbrauch für die Datenübertragung ab, der SIM800L soll während der Kommunikation mehr als 2 A in Bursts verbrauchen).

Schritt 7: Fazit

Dieses Projekt war eine ziemlich einfache Implementierung von zwei separaten Systemen, da ich nur einzelne Module von Amazon verwendet habe, ist die Gesamtsystemintegration etwas glanzlos, da die Gesamtgröße des Projekts für das, was es tut, ziemlich groß ist. Betrachtet man die Angebote einiger Hersteller, würde die Verwendung eines SIP, das sowohl Mobilfunk als auch GPS umfasst, die Gesamtpaketgröße erheblich reduzieren.

Ich bin mir sicher, dass ich nach weiteren Flugerprobungen einige Änderungen am Programm vornehmen muss und das Github-Repository mit allen Änderungen aktualisieren werde.

Ich hoffe, Ihnen hat dieses Projekt gefallen, zögern Sie nicht, mich bei Fragen zu kontaktieren.