RC Flight Data Recorder/Black Box: 8 trinn (med bilder)
RC Flight Data Recorder/Black Box: 8 trinn (med bilder)
Anonim
RC Flight Data Recorder/Black Box
RC Flight Data Recorder/Black Box

I denne instruksen skal jeg bygge en arduino -basert kampdataopptaker for RC -kjøretøyer, spesielt RC -fly. Jeg kommer til å bruke en UBlox Neo 6m GPS -modul koblet til en arduino pro mini og et SD -kortskjerm for å registrere dataene. Dette prosjektet skal blant annet registrere breddegrad, lengdegrad, hastighet, høyde og batterispenning. Disse dataene kommer til å bli beriket for bedre seeropplevelse ved hjelp av Google Earth Pro.

Trinn 1: Verktøy og deler

Verktøy og deler
Verktøy og deler
Verktøy og deler
Verktøy og deler

Deler

  • Ublox NEO 6m GPS -modul: eBay/Amazon
  • Micro SD -kortmodul: eBay/Amazon
  • Micro SD -kort (høy hastighet eller kapasitet ikke nødvendig): amazon
  • Arduino pro mini: eBay/Amazon
  • FTDI programmerer og tilsvarende kabel: ebay/amazon
  • Perfboard: ebay/amazon
  • Tilkoblingskabel: eBay/Amazon
  • Header pins: ebay/amazon
  • Likeretterdiode: ebay/amazon
  • 2x 1K ohm motstand: eBay/Amazon
  • 1500 mikron papp

Verktøy

  • Loddejern og loddetinn
  • Varm limpistol
  • Bærbar datamaskin eller datamaskin
  • Multimeter (ikke strengt nødvendig, men utrolig nyttig)
  • Hjelpende hender (igjen ikke nødvendig, men nyttig)
  • Håndverkskniv

Valgfri

  • Elementer som brukes til prototyping er ikke nødvendig, men veldig nyttig
  • Brødbrett
  • Arduino Uno
  • Jumper Wires

Trinn 2: Teori og skjematisk

Teori og skjematisk
Teori og skjematisk

Hjernen til enheten er Arduino pro mini, den drives fra RC-kjøretøyene (i mitt tilfelle et fly) Li-Po batteribalanseport. Jeg har dette satt opp for et 2s batteri, men dette kan enkelt endres for å passe til andre batteristørrelser.

Dette stykket er ikke komplett. Jeg vil oppdatere dette instruerbart når kontrollflaten er fullført

Servo1 vil være min elevons motor for fly mens servo 2 vil være min flykontrollers servoutgang

GPS -modulen mottar data fra GPS -satellittene i form av NMEA -strenger. Disse strengen inneholder posisjonsinformasjon, men også den nøyaktige tiden, hastigheten, kursen, høyden og mange andre nyttige data. Når en streng er mottatt, hentes informasjonen som er nyttig for dette prosjektet ved hjelp av TinyGPS -kodebiblioteket.

Disse dataene sammen med batterispenning og elevonposisjon skal skrives til SD -kortet med en hastighet på 1Hz. Disse dataene er skrevet i CSV-format (kommaadskilt verdi) og vil bli tolket ved hjelp av google maps for å plotte en flyvei.

Trinn 3: Prototyping

Prototyping
Prototyping
Prototyping
Prototyping

MERK: GPS -modulens tilkoblinger er ikke vist ovenfor. GPS er kablet som følger:

GND til Arduino bakken

VCC til Arduino 5V

RX til Arduino digital pin 3

TX til Arduino digital pin 2

For å teste at alle komponentene fungerer som det skal, er det best å begynne med å legge alt ut på et brødbrett, ettersom du ikke vil finne ut av det etter at alt er satt sammen at du har en defekt del. Det ekstra kodebiblioteket som trengs er TinyGPS -biblioteket, lenken finner du nedenfor.

liten gps

Spenningstesterkoden nedenfor tester bare spenningsmålerkretsen. Justeringsverdien må endres for å få arduinoen til å lese riktig spenning.

Filkoden brukes til å teste SD -kortmodulen og mikro -SD -kortet for å sikre at begge leser og skriver riktig.

GpsTest -koden som brukes, brukes til å kontrollere at gps mottar riktige data og er riktig konfigurert. Denne koden sender ut breddegrad, lengdegrad og andre live data.

Hvis alle disse delene fungerer korrekt, kan du gå videre til neste trinn.

Trinn 4: Lodding og ledninger

Lodding og ledninger
Lodding og ledninger
Lodding og ledninger
Lodding og ledninger
Lodding og ledninger
Lodding og ledninger

Før du gjør noen av loddingene eller ledningene, legg ut alle komponentene på et stykke papp og kutt det til ytterdimensjonene til komponentene. Dette kommer til å bli din monteringsplate for alle brikkene dine.

Lag kretskortet ved å kutte perfboardet til den minste størrelsen som er mulig, da vekt og størrelse er prioriterte. Lodde toppnålene på plass langs kanten av det kuttede perfboardet, det er her batteribalanseporten og fremover kontrollflaten servo og flykontrolleren vil koble seg til. Lodd de 2 1k Ohm motstandene og likeretterdioden på plass i henhold til kretsdiagrammet.

Lodd mikro -SD -kortmodulen til arduino -pinnene i henhold til kretsdiagrammet, gjør tilkoblingene ved hjelp av AWG 24 -ledningen.

Gjør forbindelsene mellom perfboardet og arduinoen igjen i henhold til kretsdiagrammet og bruk mer av samme type ledning.

MERK: GPS -en er en elektrostatisk sensitiv enhet, vær forsiktig når du lodder og aldri ha strøm som går gjennom noen av ledningene mens du foretar tilkoblinger

Lodd GPS-modulenes pinner til de tilsvarende pinnene på arduinoen med en lengde på omtrent 3-4 cm (1-1,5 in) wire, noe som gir GPS-modulen nok slakk til å brette seg over på den andre siden av støttekortet.

Kontroller og dobbeltsjekk kontinuiteten for alle tilkoblingene for å være sikker på at alt er koblet riktig.

Bruk varmt lim for å montere SD -kortmodulen, Arduino Pro Mini, og du skreddersyr det perfekte brettet på den ene siden av pappet og GPS -modulen og antennen på den andre.

Når du har alt stykket riktig kablet og montert på papp, er det på tide å gå videre til koden.

Trinn 5: Koden

Dette er koden som kjører på den siste enheten. Mens denne koden kjører, begynner LED -en på GPS -modulen å blinke så snart GPS -en har en løsning med mer enn 3 satellitter. Lysdioden på arduino -kortet vil blinke en gang så snart arduinoen starter for å vise at CSV -filen er opprettet, og deretter vil den blinke med GPS -LED -en når den er skrevet til mikro -SD -kortet. Hvis LED -lampen på micro SD -kortet ikke kan initialiseres, og det er mest sannsynlig et problem med ledningene eller micro SD -kortet.

Denne koden vil opprette en ny CSV -fil hver gang programmet kjøres, de vil bli merket "flightxx" hvor xx er et tall mellom 00 og 99 som øker hver gang programmet kjøres.

For å få gjeldende tidsfelt i regnearket til å være riktig må du konvertere UTC (Coordinated Universal Time) til riktig tidssone for deg. For meg er verdien UTC +2.0 da det er tidssonen jeg befinner meg i, men dette kan endres i koden ved å endre "tidssone" -flyten.

Trinn 6: Testing, testing, testing

Testing, testing, testing
Testing, testing, testing

Nå bør du ha et fungerende system, det er på tide å teste det, sørge for at alt fungerer som forventet.

Når alt fungerer og du får en utgang på regnearket som virker riktig, er det på tide å gjøre noen fine justeringer. For eksempel hadde jeg opprinnelig enheten montert på bunnen av flyet mitt med kabelbindere, men etter litt undersøkelse fant jeg ut at det var å redusere mengden GPS -satellitter som kunne se til enhver tid med omtrent 40%.

Test systemet, kontroller at alt fungerer og finpuss det der det er nødvendig.

Trinn 7: Berike dataene dine

Berike dine data
Berike dine data
Berike dine data
Berike dine data
Berike dine data
Berike dine data
Berike dine data
Berike dine data

Nå som du har et pålitelig system, er det på tide å finne ut hvordan du viser disse dataene på en mer lesbar måte. Regnearket er greit hvis du vil ha den eksakte hastigheten til enhver tid, eller hvis du vil kontrollere nøyaktig hvordan bilen oppførte seg da du utførte en bestemt handling, men hva om du vil plotte en hel flytur på et kart eller se hvert datapunkt på en mer lesbar måte er det her data berikelse er nyttig

For å se dataene våre på en mer leselig måte, kommer vi til å bruke google earth pro. Du kan klikke her for å laste ned den.

Nå må du konvertere CSV -filen til en GPX -fil som lettere kan leses av google earth ved hjelp av GPS visualizer. Velg output GPX, last opp CSV -filen og last ned den konverterte filen. Åpne deretter GPX -filen i google earth, og den skal automatisk importere og plotte alle dataene til en fin flyvei. Dette inneholder også tilleggsinformasjon som overskriften når som helst.

MERK: Jeg har fjernet de lange, lange dataene fra bildene, da jeg ikke vil avsløre min nøyaktige plassering

Trinn 8: Konklusjon og mulige forbedringer

Så alt i alt er jeg veldig fornøyd med hvordan dette prosjektet ble. Jeg liker å ha data fra alle flyvningene mine. men det er noen få ting jeg vil jobbe med.

Mest åpenbart vil jeg kunne lese den nøyaktige plasseringen av kontrollflatene. Jeg har det meste av maskinvaren på plass for dette, men jeg må aktivere bruk av den i koden. Det er fortsatt noen tekniske utfordringer som må overvinnes.

Jeg vil også legge til et barometer for mer nøyaktige høydedata, ettersom GPS -høydedataene for øyeblikket ikke virker mye mer enn en utdannet gjetning.

Jeg tror det ville være kult å legge til et tre-akset akselerometer, slik at jeg kunne se nøyaktig hvor mye g-kraft flyet tåler når som helst.

Kanskje lage et kabinett av noe slag. For tiden med de utsatte komponentene og ledningene er det ikke veldig elegant eller robust.

Gi meg beskjed hvis du kommer med forbedringer eller modifikasjoner av designet, jeg vil gjerne se dem.