Innehållsförteckning:

Rocket Telemetry/Position Tracker: 7 steg
Rocket Telemetry/Position Tracker: 7 steg

Video: Rocket Telemetry/Position Tracker: 7 steg

Video: Rocket Telemetry/Position Tracker: 7 steg
Video: Anatomy of a High Power Rocket 6: Avionics and Recovery Gear 2024, Juli
Anonim
Rocket Telemetry/Position Tracker
Rocket Telemetry/Position Tracker

Detta projekt är avsett att logga flygdata från en 9 DOF -sensormodul till ett SD -kort och samtidigt överföra sin GPS -plats via mobilnät till en server. Detta system gör att raketen kan hittas om systemets landningsområde ligger utanför LOS.

Steg 1: Dellista

Reservdelar
Reservdelar
Reservdelar
Reservdelar

Telemetrisystem:

1x ATmega328 mikrokontroller (Arduino UNO, Nano)

1x Micro SD Breakout -

1x Micro SD -kort - (storlek spelar ingen roll FAT 16/32 formaterad) - Amazon Link

1x Gy -86 IMU - Amazon Link

Positionsspårning:

1x ATmega328 mikrokontroller (Arduino UNO, Nano) (varje system behöver sin egen mikro)

1x Sim800L GSM GPRS -modul - Amazon Link

1x SIM -kort (måste ha dataplan) - https://ting.com/ (endast avgifter för det du använder)

1x NEO 6M GPS -modul - Amazon LInk

Allmänna delar:

1x 3,7v lipobatteri

1x 3,7-5v steg-omvandlare (om du inte bygger kretskortet)

1x Raspberry pi, eller vilken dator som helst som kan vara värd för en php -server

-Tillgång till 3D -skrivare

-BOM för PCB finns i kalkylbladet

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

Steg 2: Delsystem 1: Positionsspårning

Testning:

När du väl har systemets delar (NEO-6M GPS, Sim800L) i handen måste du testa systemfunktionerna oberoende så att du inte får huvudvärk när du försöker ta reda på vad som inte fungerar när du integrerar systemen.

GPS -testning:

För att testa GPS-mottagaren kan du antingen använda programvaran från Ublox (U-Center Software)

eller testskissen länkad i github -repo (GPS -test)

1. För att testa med U-center-programvara, anslut helt enkelt GPS-mottagaren via USB och välj komporten i U-center, systemet bör automatiskt börja spåra din plats efter det.

2. För att testa med en mikrokontroller, ladda upp GPS-testskissen till en arduino via IDE. Anslut sedan 5V och GND till de märkta stiften på mottagaren till arduino och GPS RX -stift till digital 3 och TX -stift till digital 4 på arduino. Slutligen öppnar du seriemonitorn på arduino IDE och ställer in överföringshastigheten till 9600 och kontrollerar att de mottagna koordinaterna är korrekta.

Obs: En visuell identifierare för satellitlåset på NEO-6M-modulen är att den röda lysdioden blinkar med några sekunders mellanrum för att indikera en anslutning.

SIM800L -testning:

För att testa mobilmodulen måste du ha ett simkort registrerat med en aktiv dataplan, jag rekommenderar Ting eftersom de bara tar betalt för det du använder istället för en månatlig dataplan.

Målet för Sim -modulen är att skicka en HTTP GET -begäran till servern med den plats som tas emot av GPS -mottagaren.

1. För att testa cellmodulen sätter du in simkortet i modulen med den fasade änden utåt

2. Anslut simmodulen till GND och en 3,7-4,2v källa, använd inte 5v !!!! modulen kan inte köras på 5v. Anslut Sim -modulen RX till Analog 2 och TX till Analog 3 på Arduino

3. Ladda upp den seriella genomgående skissen från githuben för att kunna skicka kommandon till cellmodulen.

4. följ denna handledning eller ladda ner testversionen av AT Command Tester för att testa HTTP GET -funktionen

Genomförande:

När du har verifierat att båda systemen fungerar oberoende kan du gå över till att ladda upp hela skissen till mikrokontroller github. du kan öppna den seriella bildskärmen vid 9600 baud för att verifiera att systemet skickar data till webbservern.

*glöm inte att byta server -ip och port till din egen och se till att hitta APN för mobilleverantören du använder.

Gå till nästa steg där vi konfigurerar servern

Steg 3: Serverinställning

Serverinställning
Serverinställning

För att installera en server för att visa raketens plats använde jag en hallon pi som värd, men du kan använda vilken dator som helst.

Följ den här självstudien om hur du konfigurerar lightphp på en RPI och kopiera sedan php -filerna från github till mappen/var/www/html i din RPI. Efter bara använda kommandot

sudo service lighttpd force-reload

för att ladda om servern.

Se till att vidarebefordra portarna som är kopplade till servern på din router så att du kan komma åt data på distans. På rpi bör det vara port 80, och den externa porten kan vara ett godtyckligt nummer.

Det är en bra idé att ställa in en statisk ip för RPI så att portarna du framåt alltid pekar mot RPI: s adress.

Steg 4: Delsystem 2: Telemetyloggning

Telemetriprogrammet körs på en separat mikrokontroller från positionsspårningssystemet. Detta beslut fattades på grund av minnesbegränsningar på ATmega328 som förhindrade att båda programmen kunde köras på ett system. Ett annat val av mikrokontroller med förbättrade specifikationer kan lösa detta problem och tillåta användning av en central processor, men jag ville använda delarna jag hade till hands för enkel användning.

Funktioner: Detta program är baserat på ett annat exempel som jag hittade online här.

  • Programmet läser inhemskt den relativa höjden (höjdavläsning nollställs vid start), temperatur, tryck, acceleration i X -riktningen (du måste ändra accelerationsriktningen utifrån sensorns fysiska orientering) och en tidsstämpel (i millis).
  • För att förhindra att data loggas medan du sitter på startfältet och slösar med lagringsutrymme, kommer systemet bara att börja skriva data när det upptäcker en höjdförändring (konfigurerbar i programmet) och slutar skriva data när det upptäcker att raketen har återgått till originalet höjd, eller efter en flygtid på 5 minuter har förflutit.
  • Systemet indikerar att den är påslagen och skriver data via en enda indikatorlampa.

Testning:

För att testa systemet, anslut först SD -kortets utbrott

Arduino SD -kort

Stift 4 ---------------- CS

Stift 11 -------------- DI

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

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

Anslut nu GY-86 till systemet via I^2C

Arduino GY-86

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

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

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

På SD -kortet skapar du en fil i huvudkatalogen som heter datalog.txt det är dit systemet kommer att skriva data till.

Innan du laddar upp Data_Logger.ino -skissen till mikrokontrollern ändrar du värdet på ALT_THRESHOLD till 0 så att systemet ignorerar höjden för testning. Efter överföring öppnar du den seriella bildskärmen vid 9600 baud för att se systemets utdata. Se till att systemet kan ansluta till sensorn och att data skrivs till SD -kortet. Koppla ur systemet och sätt in SD -kortet i datorn för att kontrollera att data skrevs på kortet.

Steg 5: Systemintegration

Systemintegration
Systemintegration
Systemintegration
Systemintegration

Efter att ha verifierat att varje del av systemet fungerar i samma konfiguration som används på huvudkortet är det dags att sammanföra allt och bli redo för lansering! Jag har inkluderat Gerbers och EAGLE -filer för PCB och schemat i github. du måste ladda upp gerberna till en tillverkare som OSH park eller JLC för att få dem producerade. Dessa brädor är två lager och är tillräckligt små för att passa in i de flesta tillverkare 10cmx10cm kategori för billiga brädor.

När du väl har brädorna tillbaka från tillverkningen är det dags att lödda alla komponenter som finns i kalkylbladet och listan med delar på tavlan.

Programmering:

När allt är lödt måste du ladda upp programmen till de två mikrokontrollerna. För att spara kortutrymme inkluderade jag ingen USB -funktionalitet men lämnade ICSP och seriella portar utbrutna så att du fortfarande kan ladda upp och övervaka programmet.

  • För att ladda upp programmet följer du denna handledning om hur du använder ett Arduino -kort som programmerare. Ladda upp SimGpsTransmitter.ino till ICSP_GPS -porten och Data_Logger.ino till ICSP_DL -porten (ICSP -porten på kretskortet har samma layout som det som finns på vanliga Arduino UNO -kort).
  • När alla program har laddats upp kan du driva enheten från batteriingången med 3,7-4,2V och använda de fyra indikatorlamporna för att verifiera att systemet fungerar.

    • De två första lamporna 5V_Ok och VBATT_OK indikerar att batteriet och 5v -skenorna är drivna.
    • Den tredje lampan DL_OK blinkar var 1 sekund för att indikera att telemetri loggning är aktiv.
    • Den sista lampan SIM_Transmit tänds när mobil- och GPS -modulerna är anslutna och data skickas till servern.

Steg 6: Kapsling

Inhägnad
Inhägnad

Raketen som jag konstruerar det här projektet runt har en innerdiameter på 29 mm, för att skydda elektroniken och låta enheten passa in i raketens cylindriska kropp har jag gjort ett enkelt 3D -tryckt fodral i två delar som är bultat ihop och har visningsportar för indikatorlamporna. STL -filer för utskrift och original.ipt -filer finns i github -repo. Jag modellerade inte detta eftersom jag var osäker på batteriet jag skulle använda då, men jag skapade manuellt ett urtag för ett 120 mAh batteri för att sitta i linje med botten av fodralet. Detta batteri beräknas ge ~ 45min maximal körtid för systemet vid ~ 200mA strömförbrukning (Detta beror på processoranvändning och strömförbrukning för dataöverföring, SIM800L anges för att dra uppåt 2A i skurar under kommunikation).

Steg 7: Slutsats

Detta projekt var en ganska enkel implementering av två separata system, med tanke på att jag bara använde diskreta moduler som finns på Amazon, den övergripande systemintegrationen är lite slarvig eftersom projektets totala storlek är ganska stor för vad den gör. Om man tittar på erbjudanden från vissa tillverkare, skulle en SIP som innehåller både mobil och GPS minska kraftigt den totala förpackningsstorleken.

Jag är säker på att efter mer i flygningstester kommer jag att behöva göra några ändringar i programmet och kommer att se till att uppdatera Github -repo med eventuella ändringar.

Hoppas du tyckte om det här projektet, kontakta mig gärna om du har frågor.

Rekommenderad: