Innehållsförteckning:
- Steg 1: Dellista
- Steg 2: Delsystem 1: Positionsspårning
- Steg 3: Serverinställning
- Steg 4: Delsystem 2: Telemetyloggning
- Steg 5: Systemintegration
- Steg 6: Kapsling
- Steg 7: Slutsats
Video: Rocket Telemetry/Position Tracker: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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
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
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
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:
Bicycle Kickstand Position Sensor från Magicbit [Magicblocks]: 8 steg
Bicycle Kickstand Position Sensor från Magicbit [Magicblocks]: Enkelt DIY -projekt för att göra Kickstand Position Sensor med en Magicbit med hjälp av Magicblocks. Vi använder magicbit som utvecklingskort i detta projekt som är baserat på ESP32. Därför kan alla ESP32 -utvecklingskort användas i detta projekt
Desktop COVID19 Tracker med klocka! Raspberry Pi Powered Tracker: 6 steg
Desktop COVID19 Tracker med klocka! Raspberry Pi Powered Tracker: Vi vet att vi kan dö när som helst, även jag kan dö medan jag skriver det här inlägget, trots allt, jag mig, du, vi är alla dödliga. Hela världen skakade på grund av COVID19 -pandemin. Vi vet hur vi ska förhindra detta, men hej! vi vet hur man ber och varför man ber, gör vi
RC Plane Altimeter (kompatibel med Spektrum Telemetry): 7 steg
RC Plane Altimeter (kompatibel med Spektrum Telemetry): Jag gjorde denna höjdmätare så att piloten kunde veta att de är under 400 fotgränsen på RC -flygplan i USA. Min vän var orolig eftersom han inte kunde säga säkert att han alltid var under 400 fot och ville ha en extra försäkran om att en sensor
DC Motor Position Control: 5 steg
DC Motor Position Control: Denna instruktion visar hur man styr motorpositionen via lokalt webbnätverk. Nu kan du använda smarttelefon eller iPad ansluten till nätverket och sedan skriva adressen till den lokala webbservern för motor Härifrån kan vi styra motorpositionsskivan genom att rotera
NEO -6M GPS ansluten till NodeMCU - OLED Display Position - Visuino: 7 steg
NEO -6M GPS ansluten till NodeMCU - OLED Display Position - Visuino: I denna handledning kommer vi att använda NodeMCU Mini, OLED Lcd, NEO -6M GPS och Visuino för att visa live GPS -position på LCD -skärmen. Se en demonstrationsvideo