Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În acest instructiv, voi construi un înregistrator de date de luptă bazat pe arduino pentru vehicule RC, în special avioane RC. Voi folosi un modul GPS UBlox Neo 6m conectat la un arduino pro mini și un ecran de card SD pentru a înregistra datele. Acest proiect va înregistra latitudinea, longitudinea, viteza, altitudinea și tensiunea bateriei, printre altele. Aceste date vor fi îmbogățite pentru o experiență de vizualizare mai bună utilizând Google Earth Pro.
Pasul 1: Instrumente și piese
Părți
- Modul GPS Ublox NEO 6m: ebay / amazon
- Modul card micro SD: eBay / Amazon
- Card Micro SD (viteza mare sau capacitatea nu este necesară): Amazon
- Arduino pro mini: ebay / amazon
- Programator FTDI și cablu corespunzător: eBay / Amazon
- Perfboard: eBay / Amazon
- Sârmă de conectare: eBay / Amazon
- Pinii antetului: eBay / Amazon
- Diodă redresor: eBay / Amazon
- Rezistor 2x 1K ohm: eBay / Amazon
- Carton de 1500 microni
Instrumente
- Fier de lipit și lipit
- Pistol de lipit fierbinte
- Laptop sau computer
- Multimetru (nu strict necesar, dar incredibil de util)
- Ajutorarea mâinilor (din nou nu este necesar, dar util)
- Cuțit meșteșugăresc
Opțional
- Elementele utilizate pentru prototipare nu sunt necesare, dar foarte utile
- Pană de pâine
- Arduino Uno
- Sârme jumper
Pasul 2: Teorie și schematică
Creierul dispozitivului este Arduino pro mini, este alimentat de la vehiculele RC (în cazul meu un avion) port de echilibrare a bateriei Li-Po. Am configurat acest lucru pentru o baterie de 2s, dar acest lucru poate fi ușor schimbat pentru a se potrivi cu alte dimensiuni ale bateriei.
Aceasta este piesa nu este completă Voi actualiza acest lucru instructabil când citirea suprafeței de control este completă
Servo1 va fi motorul meu elevon al avioanelor, în timp ce servo 2 va fi ieșirea servo a controlerului meu de zbor
Modulul GPS primește date de la sateliții GPS sub formă de șiruri NMEA. Aceste șiruri conțin informații despre locație, dar și ora exactă, viteza, direcția, altitudinea și multe alte date utile. Odată ce un șir a fost primit, informațiile utile acestui proiect sunt extrase folosind biblioteca de coduri TinyGPS.
Aceste date împreună cu tensiunea bateriei și poziția elevon vor fi scrise pe cardul SD la o rată de 1Hz. Aceste date sunt scrise în format CSV (valoare separată prin virgulă) și vor fi interpretate folosind Google Maps pentru a trasa o cale de zbor.
Pasul 3: Prototipare
NOTĂ: Conexiunile modulului GPS nu sunt prezentate mai sus. GPS-ul este conectat după cum urmează:
GND la solul Arduino
VCC la Arduino 5V
RX la pinul digital 3 Arduino
TX la pinul digital 2 Arduino
Pentru a testa dacă toate componentele funcționează corect, cel mai bine este să începeți prin așeza totul pe o placă de calcul, deoarece nu doriți să aflați doar după ce totul este pus la punct că aveți o piesă defectă. Biblioteca de coduri suplimentare care va fi necesară este biblioteca TinyGPS, linkul poate fi găsit mai jos.
GPS minuscul
Codul de testare a tensiunii de mai jos testează doar circuitul de măsurare a tensiunii. Valoarea de reglare trebuie modificată pentru ca arduino să citească tensiunea corectă.
Codul Fișiere este utilizat pentru a testa modulul cardului SD și cardul micro SD pentru a vă asigura că ambele citesc și scriu corect.
Se utilizează codul gpsTest pentru a vă asigura că GPS primește date corecte și că este configurat corect. Acest cod va afișa latitudinea, longitudinea și alte date live.
Dacă toate aceste părți funcționează corect împreună, puteți trece la pasul următor.
Pasul 4: lipire și cablare
Înainte de a efectua orice lipire sau cablare, așezați toate componentele pe o bucată de carton și tăiați-le la dimensiunile exterioare ale componentelor. Aceasta va fi placa dvs. de montare pentru toate piesele dvs.
Realizați placa de circuit tăind placa de perfecționare la cea mai mică dimensiune posibilă, deoarece greutatea și dimensiunea sunt prioritare. Lipiți știfturile antetului în poziție de-a lungul marginii panoului tăiat, aici se conectează portul de echilibrare a bateriei și, în viitor, servo-suprafața de control și controlerul de zbor. Lipiți 2 rezistoare de 1k Ohm și dioda redresorului în poziție conform schemei de circuit.
Lipiți modulul cardului micro SD pe pinii arduino conform schemei de circuit, faceți conexiunile folosind firul AWG 24.
Faceți din nou conexiunile între placa de perfecționare și arduino conform schemei de circuite și folosind mai mult de același tip de fir.
NOTĂ: GPS-ul este un dispozitiv sensibil la electrostatică, aveți grijă în timpul lipirii și nu aveți niciodată curent prin niciunul dintre fire în timp ce efectuați conexiuni
Lipiți pinii modulelor GPS la pinii corespunzători de pe arduino folosind lungimi de aproximativ 3-4cm (1-1.5in) de sârmă, ceea ce conferă modulului GPS suficientă libertate pentru a se plia pe cealaltă parte a cardului de suport.
Verificați și verificați continuitatea pentru toate conexiunile pentru a vă asigura că totul este conectat corect.
Folosind clei fierbinte montați modulul cardului SD, Arduino Pro Mini și placa personalizată pe o parte a cartonului și modulul GPS și antena pe cealaltă.
Odată ce aveți toată piesa corect cablată și montată pe carton, este timpul să treceți la cod.
Pasul 5: Codul
Acesta este codul care rulează pe dispozitivul final. În timp ce acest cod rulează, LED-ul de pe modulul GPS va începe să clipească imediat ce GPS-ul are o soluție cu mai mult de 3 sateliți. LED-ul de pe placa arduino va clipi imediat ce arduino-ul pornește pentru a arăta că fișierul CSV a fost creat cu succes și apoi va clipi în timp cu LED-ul GPS atunci când este scris pe cardul micro SD cu succes. Dacă LED-ul rămas al cardului micro SD nu poate fi inițializat și există cel mai probabil o problemă cu cablajul sau cardul micro SD.
Acest cod va crea un nou fișier CSV de fiecare dată când rulează programul, acestea vor fi etichetate „flightxx” unde xx este un număr între 00 și 99 care crește de fiecare dată când rulează programul.
Pentru ca câmpul de timp curent din foaia de calcul să fie corect, trebuie să convertiți UTC (Timpul universal coordonat) în fusul orar corect pentru dvs. Pentru mine, valoarea este UTC + 2.0, deoarece acesta este fusul orar în care mă aflu, dar acest lucru poate fi modificat în cod modificând plutitorul „fus orar”.
Pasul 6: Testare, testare, testare
Până acum ar trebui să aveți un sistem de lucru, este timpul să-l testați, asigurați-vă că totul funcționează așa cum era de așteptat.
Odată ce totul funcționează și obțineți o ieșire pe foaia de calcul care pare corectă, este timpul să efectuați ajustări fine. De exemplu, inițial am avut dispozitivul montat în partea de jos a avionului cu legături de cablu, dar după unele investigații am aflat că asta reduce cantitatea de sateliți GPS care puteau vedea în orice moment cu aproximativ 40%.
Testați-vă sistemul pentru a vă asigura că totul funcționează și rafinați-l acolo unde este necesar.
Pasul 7: îmbogățirea datelor dvs
Acum că aveți un sistem de încredere, este timpul să vă dați seama cum să afișați aceste date într-un mod mai lizibil. Foaia de calcul este în regulă dacă doriți viteza exactă la un moment dat sau dacă doriți să verificați exact cum s-a comportat vehiculul atunci când ați efectuat o anumită acțiune, dar dacă doriți să parcelați un zbor întreg pe o hartă sau să vedeți fiecare punct de date într-un mod mai lizibil, aici este utilă îmbogățirea datelor
Pentru a vizualiza datele într-o manieră mai ușor de citit, vom folosi Google Earth Pro, puteți face clic aici pentru a le descărca.
Acum trebuie să convertiți fișierul CSV într-un fișier GPX care poate fi citit mai ușor de Google Earth folosind vizualizatorul GPS. Selectați ieșirea GPX, încărcați fișierul CSV și descărcați fișierul convertit. Apoi deschideți fișierul GPX în Google Earth și acesta ar trebui să importe și să traseze automat toate datele într-o cale de zbor frumoasă. Acesta conține, de asemenea, informații suplimentare, precum titlul în orice moment.
NOTĂ: Am eliminat datele lat, lungi din fotografii, deoarece nu vreau să dezvăluie locația mea exactă
Pasul 8: Concluzii și îmbunătățiri posibile
Deci, peste toate, sunt foarte mulțumit de modul în care a rezultat acest proiect. Îmi place să am date de la toate zborurile mele. cu toate acestea, există câteva lucruri la care vreau să lucrez.
Cel mai evident vreau să pot citi poziția exactă a suprafețelor de control. Am cea mai mare parte a hardware-ului pentru acest lucru, dar trebuie să activez utilizarea acestuia în cod. Există încă câteva provocări tehnice de depășit.
Aș dori, de asemenea, să adaug un barometru pentru date de altitudine mai precise, deoarece datele de altitudine GPS nu par mult mai mult decât o presupunere educată.
Cred că adăugarea unui accelerometru pe trei axe ar fi grozav, astfel încât să pot vedea exact câtă forță g rezistă avionul în orice moment.
Poate creați un fel de incintă. În prezent, cu componentele expuse și cablajul nu este foarte elegant sau robust.
Vă rog să-mi spuneți dacă veniți cu îmbunătățiri sau modificări ale designului, mi-ar plăcea să le văd.