Innholdsfortegnelse:

Rocket Telemetry/Position Tracker: 7 trinn
Rocket Telemetry/Position Tracker: 7 trinn

Video: Rocket Telemetry/Position Tracker: 7 trinn

Video: Rocket Telemetry/Position Tracker: 7 trinn
Video: 7 Stage Rocket With Onboard Camera 2024, Juli
Anonim
Rocket Telemetry/Position Tracker
Rocket Telemetry/Position Tracker

Dette prosjektet er ment å logge flyvedata fra en 9 DOF sensormodul til et SD -kort, og samtidig overføre sin GPS -posisjon via mobilnett til en server. Dette systemet gjør det mulig å finne raketten hvis landingsområdet til systemet er utenfor LOS.

Trinn 1: Deleliste

Deleliste
Deleliste
Deleliste
Deleliste

Telemetrisystem:

1x ATmega328 mikrokontroller (Arduino UNO, Nano)

1x Micro SD Breakout -

1x Micro SD -kort - (størrelsen spiller ingen rolle FAT 16/32 formatert) - Amazon Link

1x Gy -86 IMU - Amazon Link

Posisjonssporing:

1x ATmega328 mikrokontroller (Arduino UNO, Nano) (hvert system trenger sin egen mikro)

1x Sim800L GSM GPRS -modul - Amazon Link

1x SIM -kort (må ha dataplan) - https://ting.com/ (koster kun gebyrer for det du bruker)

1x NEO 6M GPS -modul - Amazon LInk

Generelle deler:

1x 3,7v lipo -batteri

1x 3.7-5v step-up converter (hvis du ikke bygger PCB)

1x Raspberry pi, eller hvilken som helst datamaskin som kan være vert for en php -server

-Tilgang til 3D -skriver

-BOM for PCB er oppført i regnearket

-Gerbers er på github repo -https://github.com/karagenit/maps-gps

Trinn 2: Delsystem 1: Posisjonssporing

Testing:

Når du har systemdelene (NEO-6M GPS, Sim800L) i hånden, må du teste funksjonaliteten til systemene uavhengig slik at du ikke får hodepine når du prøver å finne ut hva som ikke fungerer når du integrerer systemene.

GPS -testing:

For å teste GPS-mottakeren kan du enten bruke programvaren fra Ublox (U-Center Software)

eller testskissen koblet til github -repoen (GPS -test)

1. For å teste med U-center-programvare, kobler du ganske enkelt GPS-mottakeren til via USB og velger com-porten i U-center. Systemet bør automatisk begynne å spore posisjonen din etter det.

2. For å teste med en mikrokontroller, last opp GPS-testskissen til en arduino via IDE. Koble deretter 5V og GND til de merkede pinnene på mottakeren til arduinoen og GPS RX -pinnen til digital 3 og TX -pinnen til digital 4 på arduinoen. Til slutt åpner du den serielle skjermen på arduino IDE og setter overføringshastigheten til 9600 og kontrollerer at mottatte koordinater er riktige.

Merk: En visuell identifikator for satellittlås på NEO-6M-modulen er at den røde LED-indikatoren blinker noen få sekunder for å indikere en tilkobling.

SIM800L -testing:

For å teste mobilmodulen må du ha et SIM -kort registrert med en aktiv dataplan, jeg anbefaler Ting fordi de bare tar betalt for det du bruker i stedet for en månedlig dataplan.

Målet for Sim -modulen er å sende en HTTP GET -forespørsel til serveren med posisjonen som mottas av GPS -mottakeren.

1. For å teste cellemodulen, sett inn simkortet i modulen med den fasede enden vendt ut

2. Koble simmodulen til GND og en 3.7-4.2v kilde, ikke bruk 5v !!!! modulen er ikke i stand til å kjøre på 5v. Koble Sim -modulen RX til Analog 2 og TX til Analog 3 på Arduino

3. Last opp den serielle gjennomgående skissen fra githuben for å kunne sende kommandoer til cellemodulen.

4. følg denne opplæringen, eller last ned prøveversjonen av AT Command Tester for å teste HTTP GET -funksjonaliteten

Gjennomføring:

Når du har bekreftet at begge systemene fungerer uavhengig, kan du gå videre til å laste opp hele skissen til mikrokontroller github. du kan åpne den serielle skjermen på 9600 baud for å bekrefte at systemet sender data til webserveren.

*ikke glem å endre server -ip og port til din egen, og sørg for å finne APN -en for mobilleverandøren du bruker.

Gå til neste trinn der vi konfigurerer serveren

Trinn 3: Serveroppsett

Serveroppsett
Serveroppsett

For å sette opp en server for å vise plasseringen av raketten, brukte jeg en bringebær pi som vert, men du kan bruke hvilken som helst datamaskin.

Følg denne opplæringen om hvordan du konfigurerer lightphp på en RPI, og kopier deretter php -filene fra github til mappen/var/www/html i RPI -en. Etter bare bruk kommandoen

sudo service lighttpd force-reload

å laste inn serveren på nytt.

Sørg for å videresende portene som er knyttet til serveren på ruteren din, slik at du får tilgang til dataene eksternt. På rpi skal den være port 80, og den eksterne porten kan være et vilkårlig tall.

Det er en god idé å sette en statisk ip for RPI slik at portene du videresender alltid peker mot RPIs adresse.

Trinn 4: Delsystem 2: Telemetri -logging

Telemetriprogrammet kjører på en egen mikrokontroller fra posisjonssporingssystemet. Denne beslutningen ble tatt på grunn av minnebegrensninger på ATmega328 som forhindret at begge programmene kunne kjøres på ett system. Et annet valg av mikrokontroller med forbedrede spesifikasjoner kan løse dette problemet og tillate bruk av en sentral prosessor, men jeg ønsket å bruke delene jeg hadde tilgjengelig for enkel bruk.

Funksjoner: Dette programmet er basert på et annet eksempel jeg fant online her.

  • Programmet leser innfødt den relative høyden (høydemåling nullstilt ved oppstart), temperatur, trykk, akselerasjon i X -retningen (du må endre akselerasjonsretningen basert på sensorens fysiske orientering) og et tidsstempel (i millis).
  • For å forhindre at data blir logget mens du sitter på startplaten og sløser med lagringsplass, begynner systemet bare å skrive data når det oppdager en høydeendring (konfigurerbar i programmet) og slutter å skrive data når det oppdager at raketten har returnert til sin opprinnelige høyde, eller etter at en flytid på 5 min har gått.
  • Systemet vil indikere at det er slått på og skriver data via en enkelt indikator -LED.

Testing:

For å teste systemet må du først koble til SD -kortbruddet

Arduino SD -kort

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

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

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

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

Koble nå GY-86 til systemet via I^2C

Arduino GY-86

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

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

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

På SD -kortet opprett en fil i hovedkatalogen som heter datalog.txt, dette er stedet systemet vil skrive data til.

Før du laster opp Data_Logger.ino -skissen til mikrokontrolleren, endrer du verdien til ALT_THRESHOLD til 0, slik at systemet ignorerer høyden for testing. Etter opplasting åpner du den serielle skjermen på 9600 baud for å se utgangen fra systemet. Sørg for at systemet kan koble til sensoren og at data skrives til SD -kortet. Koble fra systemet og sett inn SD -kortet i datamaskinen for å bekrefte at data ble skrevet på kortet.

Trinn 5: Systemintegrasjon

System integrasjon
System integrasjon
System integrasjon
System integrasjon

Etter å ha bekreftet at hver del av systemet fungerer i samme konfigurasjon som ble brukt på hovedkortet, er det på tide å bringe alt sammen og gjøre deg klar til lansering! Jeg har inkludert Gerbers og EAGLE -filene for PCB og skjematisk i github. du må laste opp gerberne til en produsent som OSH park eller JLC for å få dem produsert. Disse platene er to lag og er små nok til å passe inn i de fleste produsenter 10cmx10cm kategorien for billige brett.

Når du har brettene tilbake fra produksjonen, er det på tide å lodde alle komponentene i regnearket og delelisten på brettet.

Programmering:

Etter at alt er loddet må du laste opp programmene til de to mikrokontrollerne. For å spare plass på brettet inkluderte jeg ingen USB -funksjonalitet, men jeg lot ICSP og serielle porter være ødelagt, slik at du fortsatt kan laste opp og overvåke programmet.

  • For å laste opp programmet, følg denne opplæringen om hvordan du bruker et Arduino -kort som programmerer. Last opp SimGpsTransmitter.ino til ICSP_GPS -porten og Data_Logger.ino til ICSP_DL -porten (ICSP -porten på PCB er det samme oppsettet som det som finnes på standard Arduino UNO -kort).
  • Når alle programmer er lastet opp, kan du drive enheten fra batteriinngangen med 3,7-4,2V og bruke de fire indikatorlampene for å kontrollere at systemet fungerer.

    • De to første lysene 5V_Ok og VBATT_OK indikerer at batteriet og 5v -skinnene er drevet.
    • Det tredje lyset DL_OK blinker hvert 1 sekund for å indikere at telemetri -loggingen er aktiv.
    • Det siste lyset SIM_Transmit vil slås på når mobil- og GPS -modulene er koblet til og data blir sendt til serveren.

Trinn 6: Vedlegg

Innhegning
Innhegning

Raketten som jeg designer dette prosjektet rundt har en indre diameter på 29 mm, for å beskytte elektronikken og la enheten passe inn i rakettens sylindriske kropp. visningsporter for indikatorlampene. STL -filer for utskrift og originale.ipt -filer er i github -repoen. Jeg modellerte ikke dette da jeg var usikker på batteriet jeg ville bruke den gangen, men jeg lagde manuelt en fordypning for et 120 mAh batteri for å sitte i flukt med bunnen av saken. Dette batteriet er estimert til å gi ~ 45 minutter maksimal kjøretid for systemet ved ~ 200mA strømforbruk (Dette er avhengig av prosessorbruk og strømforbruk for dataoverføring, SIM800L er oppgitt til å trekke oppover 2A i bursts under kommunikasjon).

Trinn 7: Konklusjon

Dette prosjektet var en ganske enkel implementering av to separate systemer, gitt at jeg bare brukte diskrete moduler som ble funnet på Amazon, den generelle systemintegrasjonen er litt sløyfe da den totale størrelsen på prosjektet er ganske stor for det den gjør. Hvis du ser på tilbud fra noen produsenter, ville det å redusere en samlet pakningsstørrelse i stor grad bruke en SIP som inkluderer både mobil og GPS.

Jeg er sikker på at etter flere tester i flygingstester må jeg gjøre noen endringer i programmet og vil sørge for å oppdatere Github -repoen med eventuelle endringer.

Håper du likte dette prosjektet, ta gjerne kontakt med meg om du har spørsmål.

Anbefalt: