Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
I denna instruerbara kommer jag att bygga en arduino baserad kampdatainspelare för RC -fordon, speciellt RC -flygplan. Jag kommer att använda en UBlox Neo 6m GPS -modul ansluten till en arduino pro mini och ett SD -kortskydd för att spela in data. Detta projekt kommer att spela in bland annat latitud, longitud, hastighet, höjd och batterispänning. Denna data kommer att berikas för bättre tittarupplevelse med Google Earth Pro.
Steg 1: Verktyg och delar
Delar
- Ublox NEO 6m GPS -modul: ebay/amazon
- Micro SD -kortmodul: eBay/Amazon
- Micro SD -kort (hög hastighet eller kapacitet behövs inte): amazon
- Arduino pro mini: eBay/Amazon
- FTDI programmerare och motsvarande kabel: ebay/amazon
- Perfboard: ebay/amazon
- Anslutningskabel: ebay/amazon
- Sidhuvudnålar: ebay/amazon
- Likriktardiod: ebay/amazon
- 2x 1K ohm motstånd: eBay/Amazon
- 1500 mikron kartong
Verktyg
- Lödkolv och löd
- Lim pistol
- Bärbar dator eller dator
- Multimeter (inte absolut nödvändigt men otroligt hjälpsam)
- Hjälpande händer (igen inte nödvändigt men hjälpsamt)
- Hantverkskniv
Frivillig
- Artiklar som används för prototyper är inte nödvändiga men mycket hjälpsamma
- Bakbord
- Arduino Uno
- Jumper Wires
Steg 2: Teori och schematisk
Hjärnan på enheten är Arduino pro mini, den drivs från RC-fordonen (i mitt fall ett flygplan) Li-Po batteribalansport. Jag har den här inställd för ett 2s -batteri men det kan enkelt ändras för att rymma andra batteristorlekar.
Det här stycket är inte komplett. Jag uppdaterar detta instruerbart när kontrollytans avläsning är klar
Servo1 kommer att vara min elevons motor för flygplan medan servo 2 kommer att vara min flygkontrolls servoutgång
GPS -modulen tar emot data från GPS -satelliterna i form av NMEA -strängar. Dessa strängar innehåller platsinformation men även exakt tid, hastighet, kurs, höjd och massor av andra användbara data. När en sträng har mottagits extraheras informationen som är användbar för detta projekt med hjälp av TinyGPS -kodbiblioteket.
Denna data tillsammans med batterispänning och elevonposition kommer att skrivas till SD -kortet med en hastighet av 1Hz. Denna data är skriven i CSV-format (kommaseparerat värde) och kommer att tolkas med hjälp av google maps för att rita en flygväg.
Steg 3: Prototypning
OBS: GPS -modulanslutningarna visas inte ovan. GPS är ansluten enligt följande:
GND till Arduino mark
VCC till Arduino 5V
RX till Arduino digital stift 3
TX till Arduino digital pin 2
För att testa att alla komponenter fungerar korrekt är det bäst att börja med att lägga ut allt på en brödbräda eftersom du inte vill ta reda på först efter att allt har satts ihop att du har en defekt del. Det extra kodbiblioteket som behövs är TinyGPS -biblioteket, länken hittar du nedan.
små gps
Spänningstestarkoden nedan testar bara spänningsmätningskretsen. Justeringsvärdet måste ändras för att få arduino att läsa rätt spänning.
Filkoden används för att testa SD -kortmodulen och mikro -SD -kortet för att se till att båda läser och skriver korrekt.
GpsTest -koden används för att se till att gps: en tar emot rätt data och är korrekt konfigurerad. Denna kod kommer att mata ut din latitud, longitud och andra levande data.
Om alla dessa delar fungerar korrekt kan du gå vidare till nästa steg.
Steg 4: Lödning och kabeldragning
Innan du gör något av lödningen eller kablarna lägger du ut alla dina komponenter på en kartongbit och skär den till yttermåtten på komponenterna. Detta kommer att bli din monteringsplatta för alla dina bitar.
Gör kretskortet genom att klippa perfektbrädan till minsta möjliga storlek eftersom vikt och storlek är prioriterade. Löd huvudstiften på plats längs kanten på den skurna perfektbrädan, det är här batteribalansporten och i framtiden kommer kontrollytans servo och flygkontroll att anslutas. Löd de 2 1k Ohm motstånden och likriktardioden på plats enligt kretsschemat.
Löd mikro -SD -kortmodulen till arduino -stiften enligt kretsschemat gör anslutningarna med hjälp av AWG 24 -kabeln.
Gör anslutningarna mellan perfboard och arduino igen enligt kretsschemat och använd mer av samma typ av tråd.
OBS: GPS: en är en elektrostatisk känslig enhet, var försiktig vid lödning och aldrig ha någon ström som går genom någon av trådarna medan du gör anslutningar
Löd GPS-modulernas stift till motsvarande stift på arduino med hjälp av längder på cirka 3-4 cm (1-1,5 tum) tråd, vilket ger GPS-modulen tillräckligt lång för att vika över till andra sidan av stödkortet.
Kontrollera och dubbelkolla kontinuiteten för alla anslutningar för att se till att allt är korrekt anslutet.
Använd hett lim för att montera SD -kortmodulen, Arduino Pro Mini och du anpassar perfektbrädan på kartongens ena sida och GPS -modulen och antennen på den andra.
När du har alla delar korrekt kopplade och monterade på kartongen är det dags att gå vidare till koden.
Steg 5: Koden
Detta är koden som körs på den slutliga enheten. Medan denna kod körs börjar lysdioden på GPS -modulen att blinka så snart GPS: n har en fix med mer än 3 satelliter. Lysdioden på arduino -kortet blinkar en gång så snart arduino startar för att visa att CSV -filen har skapats framgångsrikt och sedan kommer den att blinka i takt med GPS -lysdioden när den skrivs till micro SD -kortet framgångsrikt. Om lysdioden kvar på micro SD -kortet inte kan initieras och det troligtvis finns ett problem med din ledning eller micro SD -kort.
Denna kod kommer att skapa en ny CSV -fil varje gång programmet körs de kommer att märkas "flightxx" där xx är ett tal mellan 00 och 99 som ökar varje gång programmet körs.
För att det aktuella tidsfältet i kalkylbladet ska vara korrekt måste du konvertera UTC (Coordinated Universal Time) till rätt tidszon för dig. För mig är värdet UTC +2.0 eftersom det är tidszonen jag befinner mig i men detta kan ändras i koden genom att ändra floaten "tidszon".
Steg 6: Testa, Testa, Testa
Nu ska du ha ett fungerande system, det är dags att testa det, se till att allt fungerar som förväntat.
När allt fungerar och du får en utmatning på kalkylbladet som verkar korrekt är det dags att göra några finjusteringar. Till exempel hade jag ursprungligen enheten monterad på botten av mitt flygplan med buntband, men efter en viss undersökning kom jag på att det skulle minska mängden GPS -satelliter som kunde se vid varje tillfälle med cirka 40%.
Testa ditt system, se till att allt fungerar och förfina det vid behov.
Steg 7: Berika dina data
Nu när du har ett tillförlitligt system är det dags att ta reda på hur du visar dessa data på ett mer läsbart sätt. Kalkylarket är bra om du vill ha den exakta hastigheten vid någon tidpunkt eller om du vill kontrollera exakt hur ditt fordon uppförde sig när du utförde en viss åtgärd men vad om du vill rita en hel flygning på en karta eller se varje datapunkt på ett mer läsbart sätt är det här dataanrikning är till hjälp
För att se våra data på ett mer läsbart sätt kommer vi att använda google earth pro, du kan klicka här för att ladda ner den.
Nu måste du konvertera CSV -filen till en GPX -fil som lättare kan läsas av google earth med GPS -visualizer. Välj output GPX, ladda upp din CSV -fil och ladda ner den konverterade filen. Öppna sedan GPX -filen i google earth och den ska automatiskt importera och plotta all data till en fin flygväg. Detta innehåller också ytterligare information som rubriken när som helst.
OBS: Jag har tagit bort lat, lång data från fotona eftersom jag inte vill avslöja min exakta plats
Steg 8: Slutsats och möjliga förbättringar
Så överlag är jag väldigt nöjd med hur det här projektet blev. Jag tycker om att ha data från alla mina flyg. men det är några saker jag vill jobba med.
Tydligen vill jag kunna läsa den exakta positionen för kontrollytorna. Jag har det mesta av hårdvaran på plats för detta men jag måste aktivera användningen av den i koden. Det finns fortfarande några tekniska utmaningar att övervinna.
Jag skulle också vilja lägga till en barometer för mer exakt höjddata, för närvarande verkar GPS -höjddatan inte mycket mer än en utbildad gissning.
Jag tror att det skulle vara häftigt att lägga till en treaxlad accelerometer så att jag kunde se exakt hur mycket g-kraft planet uthärdar när som helst.
Kanske skapa ett hölje av något slag. För närvarande med de exponerade komponenterna och ledningarna är det inte särskilt elegant eller robust.
Meddela mig om du kommer med några förbättringar eller modifieringar av designen skulle jag vilja se dem.