Innholdsfortegnelse:
- Trinn 1: Deleliste
- Trinn 2: Delsystem 1: Posisjonssporing
- Trinn 3: Serveroppsett
- Trinn 4: Delsystem 2: Telemetri -logging
- Trinn 5: Systemintegrasjon
- Trinn 6: Vedlegg
- Trinn 7: Konklusjon
Video: Rocket Telemetry/Position Tracker: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
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
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
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
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
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:
Bicycle Kickstand Position Sensor fra Magicbit [Magicblocks]: 8 trinn
Bicycle Kickstand Position Sensor fra Magicbit [Magicblocks]: Enkelt DIY -prosjekt for å lage Kickstand Position Sensor med en Magicbit ved hjelp av Magicblocks. Vi bruker magicbit som utviklingstavle i dette prosjektet som er basert på ESP32. Derfor kan et hvilket som helst ESP32 -utviklingsbord brukes i dette prosjektet
Desktop COVID19 -tracker med klokke! Raspberry Pi Powered Tracker: 6 trinn
Desktop COVID19 -tracker med klokke! Raspberry Pi Powered Tracker: Vi vet at vi kan dø når som helst, selv jeg kan dø mens jeg skriver dette innlegget, tross alt, jeg meg, du, vi er alle dødelige. Hele verden rystet på grunn av COVID19 -pandemien. Vi vet hvordan vi kan forhindre dette, men hei! vi vet hvordan vi skal be og hvorfor vi skal be, gjør vi det
RC Plane Altimeter (kompatibel med Spektrum Telemetry): 7 trinn
RC Plane Altimeter (kompatibel med Spektrum Telemetry): Jeg lagde denne høydemåleren slik at piloten kunne vite at de er under 400 fot grensen på RC fly i USA. Vennen min var bekymret siden han ikke kunne si sikkert at han alltid var under 400 fot, og ønsket den ekstra forsikringen om at en sensor ville
DC Motor Position Control: 5 trinn
DC Motor Position Control: Denne instruksjonen viser hvordan du kontrollerer motorposisjon via lokalt nettverk. Nå kan du bruke smarttelefon eller iPad koblet til nettverk, og deretter skrive inn adressen til den lokale webserveren til motoren Herfra kan vi kontrollere motorposisjonsdisken ved å rotere
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: 15 trinn (med bilder)
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: Movie Tracker er et clapperboard -formet, Raspberry Pi -drevet Release Tracker. Den bruker TMDb API for å skrive ut plakaten, tittelen, utgivelsesdatoen og oversikten over kommende filmer i din region, i et bestemt tidsintervall (f.eks. Filmutgivelser denne uken) den