Inhoudsopgave:

Rocket Telemetrie/Positie Tracker - Ajarnpa
Rocket Telemetrie/Positie Tracker - Ajarnpa

Video: Rocket Telemetrie/Positie Tracker - Ajarnpa

Video: Rocket Telemetrie/Positie Tracker - Ajarnpa
Video: vNARCON 2021: GPS Systems for Sport Rockets. Presented by Will Marchant 2024, Juli-
Anonim
Rocket Telemetrie/Positie Tracker
Rocket Telemetrie/Positie Tracker

Dit project is bedoeld om vluchtgegevens van een 9 DOF-sensormodule op een SD-kaart te loggen en tegelijkertijd de GPS-locatie via mobiele netwerken naar een server te verzenden. Met dit systeem kan de raket worden gevonden als het landingsgebied van het systeem buiten LOS ligt.

Stap 1: Onderdelenlijst

Onderdelen lijst
Onderdelen lijst
Onderdelen lijst
Onderdelen lijst

Telemetriesysteem:

1x ATmega328-microcontroller (Arduino UNO, Nano)

1x Micro SD Breakout -

1x Micro SD-kaart - (grootte maakt niet uit FAT 16/32 geformatteerd) - Amazon Link

1x Gy-86 IMU - Amazon-link

Positie volgen:

1x ATmega328 Microcontroller (Arduino UNO, Nano) (elk systeem heeft zijn eigen micro nodig)

1x Sim800L GSM GPRS-module - Amazon Link

1x simkaart (vereist een data-abonnement) - https://ting.com/ (ting brengt alleen kosten in rekening voor wat u gebruikt)

1x NEO 6M GPS-module - Amazon LINK

Algemene onderdelen:

1x 3.7v lipo-batterij

1x 3.7-5v step-up converter (als je de pcb niet bouwt)

1x Raspberry pi, of elke computer die een php-server kan hosten

-Toegang tot 3D-printer

-BOM voor pcb wordt vermeld in spreadsheet

-Gerbers zijn op github repo -

Stap 2: Subsysteem 1: Positie volgen

Testen:

Zodra u de onderdelen voor het systeem (NEO-6M GPS, Sim800L) bij de hand hebt, moet u de functionaliteit van de systemen onafhankelijk testen, zodat u geen hoofdpijn hoeft te krijgen om erachter te komen wat niet werkt als u de systemen integreert.

GPS-testen:

Om de GPS-ontvanger te testen, kunt u ofwel de software van Ublox gebruiken (U-Center Software)

of de testschets gekoppeld in de github-repo (GPS-test)

1. Om te testen met U-center-software, sluit u gewoon de GPS-ontvanger aan via USB en selecteert u de com-poort in U-center. Daarna zou het systeem automatisch uw locatie moeten volgen.

2. Om met een microcontroller te testen, uploadt u de GPS-testschets naar een arduino via de IDE. Sluit vervolgens 5V en GND aan op de gelabelde pinnen op de ontvanger op de arduino en GPS RX-pin op digitale 3 en TX-pin op digitale 4 op de arduino. Open ten slotte de seriële monitor op de arduino IDE en stel de baudrate in op 9600 en controleer of de ontvangen coördinaten correct zijn.

Opmerking: Een visuele identificatie van satellietvergrendeling op de NEO-6M-module is dat de rode led-indicator om de paar seconden knippert om een verbinding aan te geven.

SIM800L-testen:

Om de mobiele module te testen, moet je een simkaart hebben die is geregistreerd met een actief data-abonnement. Ik raad Ting aan omdat ze alleen kosten in rekening brengen voor wat je gebruikt in plaats van een maandelijks data-abonnement.

Het doel van de Sim-module is om een HTTP GET-verzoek naar de server te sturen met de locatie die door de GPS-ontvanger wordt ontvangen.

1. Om de celmodule te testen, plaatst u de simkaart in de module met het afgeschuinde uiteinde naar buiten gericht

2. Sluit de simmodule aan op GND en een 3.7-4.2v-bron, gebruik geen 5v!!!! de module kan niet op 5v draaien. Verbind de Sim-module RX met Analoog 2 en TX met Analoog 3 op de Arduino

3. Upload de seriële pass-through-schets van de github om opdrachten naar de celmodule te kunnen sturen.

4. volg deze tutorial of download de proefversie van AT Command Tester om de HTTP GET-functionaliteit te testen

Implementatie:

Nadat je hebt geverifieerd dat beide systemen onafhankelijk werken, kun je doorgaan met het uploaden van de volledige schets naar de github van de microcontroller. u kunt de seriële monitor op 9600 baud openen om te controleren of het systeem gegevens naar de webserver verzendt.

*Vergeet niet om het IP-adres en de poort van de server naar die van u te wijzigen en zorg ervoor dat u de APN vindt voor de mobiele provider die u gebruikt.

Ga naar de volgende stap waar we de server instellen

Stap 3: Serverconfiguratie

Serverconfiguratie
Serverconfiguratie

Om een server in te stellen om de locatie van de raket weer te geven, heb ik een Raspberry Pi als host gebruikt, maar je kunt elke computer gebruiken.

Volg deze tutorial over het instellen van lightphp op een RPI en kopieer vervolgens de php-bestanden van de github naar de map /var/www/html van je RPI. Gebruik gewoon het commando

sudo service lighttpd force-reload

om de server opnieuw te laden.

Zorg ervoor dat u de poorten die zijn gekoppeld aan de server op uw router doorstuurt, zodat u op afstand toegang hebt tot de gegevens. Op de rpi moet dit poort 80 zijn en de externe poort kan een willekeurig nummer zijn.

Het is een goed idee om een statisch IP-adres voor de RPI in te stellen, zodat de poorten die u doorstuurt altijd naar het adres van de RPI wijzen.

Stap 4: Subsysteem 2: Telemetrieregistratie

Het telemetrieprogramma draait op een aparte microcontroller van het positievolgsysteem. Deze beslissing werd genomen vanwege geheugenbeperkingen op de ATmega328 waardoor beide programma's niet op één systeem konden draaien. Een andere keuze voor een microcontroller met verbeterde specificaties zou dit probleem kunnen oplossen en het gebruik van één centrale processor mogelijk maken, maar ik wilde de onderdelen die ik bij de hand had gebruiken voor gebruiksgemak.

Kenmerken: Dit programma is gebaseerd op een ander voorbeeld dat ik hier online heb gevonden.

  • Het programma leest native de relatieve hoogte (hoogtewaarde op nul gezet bij opstarten), temperatuur, druk, versnelling in de X-richting (u moet de richting van de versnelling veranderen op basis van de fysieke oriëntatie van de sensor), en een tijdstempel (in milliliter)).
  • Om te voorkomen dat gegevens worden gelogd terwijl u op het lanceerplatform zit en opslagruimte verspilt, begint het systeem pas met het schrijven van gegevens zodra het een hoogteverandering detecteert (configureerbaar in het programma) en stopt het met het schrijven van gegevens zodra het detecteert dat de raket is teruggekeerd naar zijn oorspronkelijke hoogte, of nadat een vliegtijd van 5 min is verstreken.
  • Het systeem geeft aan dat het is ingeschakeld en gegevens schrijft via een enkele indicatie-LED.

Testen:

Om het systeem te testen sluit u eerst de SD-kaart breakout aan

Arduino SD-kaart

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

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

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

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

Verbind nu de GY-86 met het systeem via I^2C

Arduino GY-86

Pin A4 -------------- SDA

Pin A5 -------------- SCL

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

Maak op de SD-kaart een bestand aan in de hoofdmap met de naam datalog.txt, dit is waar het systeem gegevens naar zal schrijven.

Voordat u de Data_Logger.ino-schets uploadt naar de microcontroller, wijzigt u de waarde van ALT_THRESHOLD in 0, zodat het systeem de hoogte negeert om te testen. Open na het uploaden de seriële monitor op 9600 baud om de output van het systeem te bekijken. Zorg ervoor dat het systeem verbinding kan maken met de sensor en dat gegevens naar de SD-kaart worden geschreven. Koppel het systeem los en plaats de SD-kaart in uw computer om te controleren of er gegevens op de kaart zijn geschreven.

Stap 5: Systeemintegratie

Systeemintegratie
Systeemintegratie
Systeemintegratie
Systeemintegratie

Na te hebben geverifieerd dat elk onderdeel van het systeem in dezelfde configuratie werkt als op de hoofdprintplaat, is het tijd om alles bij elkaar te brengen en klaar te maken voor lancering! Ik heb de Gerbers- en EAGLE-bestanden voor de PCB en het schema in de github opgenomen. je moet de gerbers uploaden naar een fabrikant zoals OSH park of JLC om ze te laten produceren. Deze boards bestaan uit twee lagen en zijn klein genoeg om in de categorie van de meeste fabrikanten van 10cmx10cm voor goedkope boards te passen.

Zodra u de platen terug heeft van de fabricage, is het tijd om alle componenten in de spreadsheet en de onderdelenlijst op het bord te solderen.

Programmering:

Nadat alles is gesoldeerd, moet u de programma's uploaden naar de twee microcontrollers. Om bordruimte te besparen heb ik geen USB-functionaliteit toegevoegd, maar heb ik de ICSP en seriële poorten uitgebroken zodat je het programma nog steeds kunt uploaden en controleren.

  • Volg deze tutorial over het gebruik van een Arduino-bord als programmeur om het programma te uploaden. Upload SimGpsTransmitter.ino naar de ICSP_GPS-poort en Data_Logger.ino naar ICSP_DL-poort (De ICSP-poort op de PCB heeft dezelfde lay-out als die op standaard Arduino UNO-kaarten wordt gevonden).
  • Zodra alle programma's zijn geüpload, kunt u het apparaat van stroom voorzien via de batterij-ingang met 3.7-4.2V en de 4 indicatielampjes gebruiken om te controleren of het systeem werkt.

    • De eerste twee lampjes 5V_Ok en VBATT_OK geven aan dat de batterij en de 5v-rails worden gevoed.
    • Het derde lampje DL_OK knippert elke seconde om aan te geven dat de telemetrieregistratie actief is.
    • Het laatste lampje SIM_Transmit gaat branden zodra de mobiele en GPS-modules zijn aangesloten en gegevens naar de server worden verzonden.

Stap 6: Behuizing

Behuizing
Behuizing

De raket waar ik dit project omheen ontwerp heeft een binnendiameter van 29 mm, om de elektronica te beschermen en de assemblage in het cilindrische lichaam van de raket te laten passen, heb ik een eenvoudige tweedelige 3D-geprinte behuizing gemaakt die aan elkaar is vastgeschroefd en heeft kijkpoorten voor de indicatielampjes. STL-bestanden om af te drukken en originele.ipt-bestanden bevinden zich in de github-repo. Ik heb dit niet gemodelleerd omdat ik niet zeker wist welke batterij ik op dat moment zou gebruiken, maar ik heb handmatig een uitsparing gemaakt voor een 120 mAh-batterij om gelijk met de onderkant van de behuizing te zitten. Deze batterij geeft naar schatting een maximale looptijd van ongeveer 45 minuten voor het systeem bij een stroomverbruik van ~200 mA (dit is afhankelijk van het processorgebruik en het stroomverbruik voor gegevensoverdracht, de SIM800L zou tijdens de communicatie meer dan 2 A in bursts verbruiken).

Stap 7: Conclusie

Dit project was een vrij eenvoudige implementatie van twee afzonderlijke systemen, aangezien ik alleen discrete modules gebruikte die op Amazon te vinden waren, is de algehele systeemintegratie een beetje flauw omdat de totale omvang van het project vrij groot is voor wat het doet. Kijkend naar het aanbod van sommige fabrikanten, zou het gebruik van een SIP die zowel mobiel als GPS bevat, de totale pakketgrootte aanzienlijk verminderen.

Ik ben er zeker van dat ik na meer vliegtesten enkele wijzigingen in het programma zal moeten aanbrengen en de Github-repo zal bijwerken met eventuele wijzigingen.

Ik hoop dat je genoten hebt van dit project, neem gerust contact met me op als je vragen hebt.

Aanbevolen: