Inhoudsopgave:

RC Flight Data Recorder/Black Box - Ajarnpa
RC Flight Data Recorder/Black Box - Ajarnpa

Video: RC Flight Data Recorder/Black Box - Ajarnpa

Video: RC Flight Data Recorder/Black Box - Ajarnpa
Video: Maiden flight of the Cleanflight port of my Blackbox flight data recorder 2024, November
Anonim
RC Flight Data Recorder/Black Box
RC Flight Data Recorder/Black Box

In deze instructable ga ik een op arduino gebaseerde vechtgegevensrecorder bouwen voor RC-voertuigen, met name RC-vliegtuigen. Ik ga een UBlox Neo 6m GPS-module gebruiken die is aangesloten op een Arduino pro mini en een SD-kaartschild om de gegevens op te nemen. Dit project gaat onder andere de Latitude, Longitude, Speed, Altitude en Battery voltage registreren. Deze gegevens worden verrijkt voor een betere kijkervaring met Google Earth Pro.

Stap 1: Gereedschap en onderdelen

Gereedschappen en onderdelen
Gereedschappen en onderdelen
Gereedschappen en onderdelen
Gereedschappen en onderdelen

Onderdelen

  • Ublox NEO 6m GPS-module: ebay/amazon
  • Micro SD-kaartmodule: ebay/amazon
  • Micro SD-kaart (hoge snelheid of capaciteit niet nodig): amazon
  • Arduino pro mini: ebay/amazon
  • FTDI-programmeur en bijbehorende kabel: ebay/amazon
  • Perfboard: ebay/amazon
  • Aansluitdraad: ebay/amazon
  • Header-pinnen: ebay/amazon
  • Gelijkrichterdiode: ebay/amazon
  • 2x 1K ohm weerstand: ebay/amazon
  • 1500 micron karton

Gereedschap

  • Soldeerbout en soldeer
  • Heet lijmpistool
  • Laptop of computer
  • Multimeter (niet strikt noodzakelijk maar ongelooflijk nuttig)
  • Helpende handen (weer niet nodig maar wel handig)
  • Hobbymesje

Optioneel

  • Items die worden gebruikt voor prototyping zijn niet nodig, maar erg handig
  • Breadboard
  • Arduino Uno
  • Doorverbindingsdraden

Stap 2: Theorie en schema

Theorie en schema
Theorie en schema

Het brein van het apparaat is de Arduino pro mini, het wordt aangedreven door de RC-voertuigen (in mijn geval een vliegtuig) Li-Po-batterijbalanspoort. Ik heb dit ingesteld voor een 2s-batterij, maar dit kan eenvoudig worden gewijzigd om plaats te bieden aan andere batterijformaten.

Dit is een stuk dat niet compleet is. Ik zal dit instructable bijwerken wanneer het lezen van het stuuroppervlak is voltooid

Servo1 zal de elevon-motor van mijn vliegtuig zijn, terwijl servo 2 mijn servo-uitgang van de vluchtcontroller zal zijn

De GPS-module ontvangt gegevens van de GPS-satellieten in de vorm van NMEA-strings. Deze string bevat locatie-informatie, maar ook de exacte tijd, snelheid, koers, hoogte en tal van andere nuttige gegevens. Zodra een string is ontvangen, wordt de informatie die nuttig is voor dit project geëxtraheerd met behulp van de TinyGPS-codebibliotheek.

Deze gegevens worden samen met de batterijspanning en de positie van de elevon met een snelheid van 1 Hz naar de SD-kaart geschreven. Deze gegevens zijn geschreven in CSV-indeling (comma-separated value) en zullen worden geïnterpreteerd met behulp van Google Maps om een vliegroute uit te zetten.

Stap 3: Prototyping

Prototyping
Prototyping
Prototyping
Prototyping

OPMERKING: De aansluitingen van de GPS-module zijn hierboven niet weergegeven. GPS is als volgt bedraad:

GND naar Arduino-aarde

VCC naar Arduino 5V

RX naar Arduino digitale pin 3

TX naar Arduino digitale pin 2

Om te testen of alle componenten correct werken, kunt u het beste beginnen met alles op een breadboard te leggen, omdat u niet wilt weten dat u een defect onderdeel heeft nadat alles in elkaar is gezet. De extra codebibliotheek die nodig is, is de TinyGPS-bibliotheek, de link vindt u hieronder.

kleine gps

De onderstaande spanningstestercode test alleen het spanningsmeetcircuit. De aanpassingswaarde moet worden gewijzigd om de Arduino de juiste spanning te laten lezen.

De bestandscode wordt gebruikt om de SD-kaartmodule en micro SD-kaart te testen om te controleren of beide correct lezen en schrijven.

De gpsTest-code wordt gebruikt om ervoor te zorgen dat de gps de juiste gegevens ontvangt en correct is geconfigureerd. Deze code voert uw breedtegraad, lengtegraad en andere livegegevens uit.

Als al deze onderdelen correct samenwerken, kunt u doorgaan naar de volgende stap.

Stap 4: Solderen en bedrading

Solderen en Bedrading
Solderen en Bedrading
Solderen en Bedrading
Solderen en Bedrading
Solderen en Bedrading
Solderen en Bedrading

Voordat u gaat solderen of bedraden, legt u al uw componenten op een stuk karton en knipt u dit uit tot de buitenafmetingen van de componenten. Dit wordt je montageplaat voor al je stukken.

Maak de printplaat door de perfboard op de kleinst mogelijke maat te snijden, aangezien gewicht en grootte prioriteit hebben. Soldeer de koppennen op hun plaats langs de rand van het gesneden perfboard, dit is waar de batterijbalanspoort en in de toekomst de stuuroppervlakservo en vluchtcontroller zullen aansluiten. Soldeer de 2 1k Ohm weerstanden en de gelijkrichterdiode op hun plaats volgens het schakelschema.

Soldeer de micro SD-kaartmodule aan de pinnen van de arduino volgens het schakelschema en maak de verbindingen met behulp van de AWG 24-draad.

Maak de verbindingen tussen het perfboard en de arduino opnieuw volgens het schakelschema en gebruik meer van hetzelfde type draad.

OPMERKING: de GPS is een elektrostatisch gevoelig apparaat, wees voorzichtig tijdens het solderen en laat nooit stroom door een van de draden lopen tijdens het maken van verbindingen

Soldeer de pinnen van de GPS-modules aan de overeenkomstige pinnen op de Arduino met behulp van lengtes van ongeveer 3-4 cm (1-1,5 inch) draad, dit geeft de GPS-module voldoende speling om over te vouwen naar de andere kant van de achtergrondkaart.

Controleer en controleer nogmaals de continuïteit van alle verbindingen om er zeker van te zijn dat alles correct is aangesloten.

Monteer met behulp van hete lijm de SD-kaartmodule, de Arduino Pro Mini en je aangepaste perfboard aan de ene kant van het karton en de GPS-module en antenne aan de andere kant.

Zodra je al het stuk correct hebt aangesloten en op het karton hebt gemonteerd, is het tijd om verder te gaan met de code.

Stap 5: De code

Dit is de code die op het uiteindelijke apparaat draait. Terwijl deze code loopt, begint de LED op de GPS-module te knipperen zodra de gps een fix heeft met meer dan 3 satellieten. De LED op het Arduino-bord knippert eenmaal zodra de Arduino opstart om aan te geven dat het CSV-bestand met succes is gemaakt en dan knippert het op tijd met de GPS-LED wanneer het met succes naar de micro SD-kaart wordt geschreven. Als de LED-resten van de micro SD-kaart niet kunnen worden geïnitialiseerd en er is hoogstwaarschijnlijk een probleem met uw bedrading of micro SD-kaart.

Deze code zal elke keer dat het programma wordt uitgevoerd een nieuw CSV-bestand maken, ze krijgen het label "flightxx", waarbij xx een getal is tussen 00 en 99 dat elke keer dat het programma wordt uitgevoerd toeneemt.

Om ervoor te zorgen dat het huidige tijdveld in de spreadsheet correct is, moet u de UTC (Coordinated Universal Time) naar de juiste tijdzone voor u converteren. Voor mij is de waarde UTC +2.0 omdat dat de tijdzone is waarin ik me bevind, maar dit kan in de code worden gewijzigd door de "timezone" float te wijzigen.

Stap 6: testen, testen, testen

Testen, testen, testen
Testen, testen, testen

Je zou nu een werkend systeem moeten hebben, het is tijd om het te testen, zorg ervoor dat alles werkt zoals verwacht.

Zodra alles werkt en u een uitvoer op de spreadsheet krijgt die correct lijkt, is het tijd om eventuele fijne aanpassingen aan te brengen. Ik had het apparaat bijvoorbeeld oorspronkelijk met kabelbinders op de bodem van mijn vliegtuig gemonteerd, maar na enig onderzoek kwam ik erachter dat dit het aantal GPS-satellieten dat op elk moment kon zien met ongeveer 40% verminderde.

Test uw systeem om te controleren of alles werkt en verfijn het waar nodig.

Stap 7: Uw gegevens verrijken

Uw gegevens verrijken
Uw gegevens verrijken
Uw gegevens verrijken
Uw gegevens verrijken
Uw gegevens verrijken
Uw gegevens verrijken
Uw gegevens verrijken
Uw gegevens verrijken

Nu u een betrouwbaar systeem heeft, is het tijd om uit te zoeken hoe u die gegevens op een meer leesbare manier kunt weergeven. De spreadsheet is prima als u de exacte snelheid op elk moment wilt of als u precies wilt controleren hoe uw voertuig zich gedroeg toen u een bepaalde actie uitvoerde, maar wat als u een hele vlucht op een kaart wilt plotten of elk gegevenspunt wilt zien op een meer leesbare manier is dit waar gegevensverrijking nuttig is

Om onze gegevens op een meer leesbare manier te bekijken, gaan we google earth pro gebruiken, u kunt hier klikken om het te downloaden.

Nu moet je het CSV-bestand converteren naar een GPX-bestand dat gemakkelijker kan worden gelezen door Google Earth met behulp van GPS-visualizer. Selecteer output GPX, upload uw CSV-bestand en download het geconverteerde bestand. Open vervolgens het GPX-bestand in Google Earth en het zou automatisch alle gegevens moeten importeren en plotten in een mooie vliegroute. Dit bevat ook aanvullende informatie zoals de kop op elk moment.

OPMERKING: ik heb de lat, lange gegevens van de foto's verwijderd omdat ik mijn exacte locatie niet wil onthullen

Stap 8: Conclusie en mogelijke verbeteringen

Dus al met al ben ik erg blij met hoe dit project is verlopen. Ik geniet ervan om gegevens van al mijn vluchten te hebben. maar er zijn een paar dingen waar ik aan wil werken.

Het meest voor de hand liggend wil ik de exacte positie van de stuurvlakken kunnen lezen. Ik heb de meeste hardware hiervoor, maar ik moet het gebruik ervan in de code inschakelen. Er zijn nog enkele technische uitdagingen te overwinnen.

Ik zou ook graag een barometer toevoegen voor nauwkeurigere hoogtegegevens, aangezien de gps-hoogtegegevens momenteel niet veel meer lijken dan een goed onderbouwde gok.

Ik denk dat het toevoegen van een accelerometer met drie assen cool zou zijn, zodat ik precies zou kunnen zien hoeveel g-kracht het vliegtuig op elk moment doorstaat.

Misschien een soort omheining maken. Momenteel is het met de blootgestelde componenten en bedrading niet erg elegant of robuust.

Laat het me weten als je met verbeteringen of aanpassingen aan het ontwerp komt, ik zou ze graag zien.

Aanbevolen: