Cuprins:
- Pasul 1: Lista pieselor
- Pasul 2: Subsistemul 1: Urmărirea poziției
- Pasul 3: Configurare server
- Pasul 4: Subsistemul 2: Jurnal de telemetrie
- Pasul 5: Integrarea sistemului
- Pasul 6: incintă
- Pasul 7: Concluzie
Video: Telemetrie rachetă / Tracker de poziție: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Acest proiect este destinat să înregistreze datele de zbor de la un modul senzor 9 DOF pe un card SD și să transmită simultan locația GPS prin rețele celulare către un server. Acest sistem permite găsirea rachetei dacă zona de aterizare a sistemului este dincolo de LOS.
Pasul 1: Lista pieselor
Sistem de telemetrie:
1x microcontroler ATmega328 (Arduino UNO, Nano)
1x Micro SD Breakout -
1x card Micro SD - (dimensiunea nu contează formatat FAT 16/32) - Amazon Link
1x Gy-86 IMU - Amazon Link
Urmărirea poziției:
1x microcontroler ATmega328 (Arduino UNO, Nano) (fiecare sistem are nevoie de propriul său micro)
1x modul G8S Sim800L GSM - Amazon Link
1x cartelă SIM (trebuie să aibă un plan de date) - https://ting.com/ (nu percepe decât taxe pentru ceea ce utilizați)
1x modul GPS NEO 6M - Amazon LInk
Piese generale:
1x baterie lipo 3.7v
1x 3.7-5v convertor step-up (dacă nu construiți PCB-ul)
1x Raspberry pi sau orice computer care poate găzdui un server php
-Acces la imprimanta 3D
-BOM pentru PCB este listat în foaia de calcul
-Gerberii sunt la github repo -
Pasul 2: Subsistemul 1: Urmărirea poziției
Testare:
Odată ce aveți piesele pentru sistem (GPS NEO-6M, Sim800L) în mână, trebuie să testați funcționalitatea sistemelor în mod independent, astfel încât să nu aveți dureri de cap încercând să vă dați seama ce nu funcționează atunci când integrați sistemele.
Testare GPS:
Pentru a testa receptorul GPS, puteți utiliza fie software-ul furnizat de Ublox (U-Center Software)
sau schița de test legată în repo github (Test GPS)
1. Pentru a testa cu software-ul U-center, pur și simplu conectați receptorul GPS prin USB și selectați portul com din U-center, sistemul ar trebui să înceapă automat să vă urmărească locația după aceea.
2. Pentru a testa cu un microcontroler, încărcați schița de testare GPS pe un arduino prin IDE. Apoi conectați 5V și GND la pinii etichetați pe receptor la arduino și pinul RX GPS la digitalul 3 și pinul TX la digitalul 4 pe arduino. În cele din urmă, deschideți monitorul serial pe IDE-ul arduino și setați rata de transmisie la 9600 și verificați dacă coordonatele primite sunt corecte.
Notă: Un identificator vizual al blocării prin satelit de pe modulul NEO-6M este că indicatorul led roșu va clipi la fiecare câteva secunde pentru a indica o conexiune.
Testare SIM800L:
Pentru a testa modulul celular, va trebui să aveți o cartelă SIM înregistrată cu un plan de date activ, vă recomand Ting, deoarece acestea plătesc doar pentru ceea ce utilizați în locul unui plan de date lunar.
Scopul pentru modulul Sim este de a trimite o cerere HTTP GET către server cu locația primită de receptorul GPS.
1. Pentru a testa modulul celulei, introduceți cartela sim în modul, cu capătul șanfrenat orientat spre exterior
2. Conectați modulul sim la GND și la o sursă de 3.7-4.2v, nu folosiți 5v !!!! modulul nu este capabil să ruleze la 5v. Conectați modulul Sim RX la Analog 2 și TX la Analog 3 pe Arduino
3. Încărcați schița serial pass-through din github pentru a putea trimite comenzi către modulul celulei.
4. urmați acest tutorial sau descărcați testul AT Command Tester pentru a testa funcționalitatea HTTP GET
Implementare:
După ce ați verificat că ambele sisteme funcționează independent, puteți trece la încărcarea schiței complete pe github-ul microcontrolerului. puteți deschide monitorul serial la 9600 baud pentru a verifica dacă sistemul trimite date către serverul web.
* nu uitați să schimbați IP-ul și portul serverului la propriul dvs. și asigurați-vă că găsiți APN-ul pentru furnizorul de celule pe care îl utilizați.
Treceți la pasul următor în care am configurat serverul
Pasul 3: Configurare server
Pentru a configura un server pentru a afișa locația rachetei, am folosit un raspberry pi ca gazdă, dar puteți utiliza orice computer.
Urmați acest tutorial despre configurarea lightphp pe un RPI și apoi copiați fișierele php din github în folderul / var / www / html al RPI. După ce utilizați doar comanda
sudo service lighttpd force-reload
pentru a reîncărca serverul.
Asigurați-vă că redirecționați porturile asociate cu serverul de pe router, astfel încât să puteți accesa datele de la distanță. Pe rpi ar trebui să fie portul 80, iar portul extern poate fi un număr arbitrar.
Este o idee bună să setați un IP static pentru RPI, astfel încât porturile pe care le transmiteți să indice întotdeauna spre adresa RPI.
Pasul 4: Subsistemul 2: Jurnal de telemetrie
Programul de telemetrie rulează pe un microcontroler separat de sistemul de urmărire a poziției. Această decizie a fost luată din cauza limitărilor de memorie de pe ATmega328, împiedicând ambele programe să poată rula pe un sistem. O altă alegere a microcontrolerului cu specificații îmbunătățite ar putea rezolva această problemă și ar permite utilizarea unui procesor central, dar am vrut să folosesc piesele pe care le aveam la îndemână pentru ușurință în utilizare.
Caracteristici: Acest program se bazează pe un alt exemplu pe care l-am găsit online aici.
- Programul citește în mod nativ altitudinea relativă (citirea altitudinii zero la pornire), temperatura, presiunea, accelerația în direcția X (va trebui să schimbați direcția de accelerație citită pe baza orientării fizice a senzorului) și un timestamp (în milis).
- Pentru a preveni înregistrarea datelor în timp ce stai pe lansator și pierde spațiul de stocare, sistemul va începe să scrie date doar odată ce detectează o schimbare de altitudine (configurabilă în program) și va înceta să scrie date odată ce a detectat că racheta a revenit la originalul său altitudine sau după ce a trecut un timp de zbor de 5 minute.
- Sistemul va indica faptul că este pornit și scrie date printr-un singur LED indicator.
Testare:
Pentru a testa sistemul, conectați mai întâi dispozitivul de defectare a cardului SD
Card SD Arduino
Pinul 4 ---------------- CS
Pinul 11 -------------- DI
Pinul 13 -------------- SCK
Pinul 12 -------------- FĂ
Acum conectați GY-86 la sistem prin I ^ 2C
Arduino GY-86
Pin A4 -------------- SDA
Pinul A5 -------------- SCL
Pinul 2 ---------------- INTA
Pe cardul SD creați un fișier în directorul principal numit datalog.txt aici sistemul va scrie date.
Înainte de a încărca schița Data_Logger.ino pe microcontroler, modificați valoarea ALT_THRESHOLD la 0, astfel încât sistemul să ignore altitudinea pentru testare. După încărcare, deschideți monitorul serial la 9600 baud pentru a vizualiza ieșirea sistemului. Asigurați-vă că sistemul se poate conecta la senzor și că datele sunt scrise pe cardul SD. Deconectați sistemul și introduceți cardul SD în computer pentru a verifica dacă datele au fost scrise pe card.
Pasul 5: Integrarea sistemului
După verificarea faptului că fiecare parte a sistemului funcționează în aceeași configurație utilizată pe PCB-ul principal, este timpul să le aducă împreună și să se pregătească pentru lansare! Am inclus fișierele Gerbers și EAGLE pentru PCB și schemă în github. va trebui să încărcați gerber-urile la un producător precum OSH park sau JLC pentru a le produce. Aceste plăci sunt două straturi și sunt suficient de mici pentru a se încadra în majoritatea producătorilor din categoria 10cmx10cm pentru plăci ieftine.
Odată ce ați revenit plăcile de la fabricare, este timpul să lipiți toate componentele găsite în foaia de calcul și lista de piese pe placă.
Programare:
După ce totul este lipit, va trebui să încărcați programele pe cele două microcontrolere. Pentru a economisi spațiu pe placă, nu am inclus nicio funcționalitate USB, dar am lăsat ICSP și porturile seriale defect, astfel încât să puteți încărca și monitoriza programul.
- Pentru a încărca programul, urmați acest tutorial despre utilizarea unei plăci Arduino ca programator. Încărcați SimGpsTransmitter.ino în portul ICSP_GPS și Data_Logger.ino în portul ICSP_DL (portul ICSP de pe PCB este același aspect cu ceea ce se găsește pe plăcile standard Arduino UNO).
-
Odată ce toate programele sunt încărcate, puteți alimenta dispozitivul de la intrarea bateriei cu 3,7-4,2 V și utiliza cele 4 indicatoare luminoase pentru a verifica dacă sistemul funcționează.
- Primele două lumini 5V_Ok și VBATT_OK indică faptul că bateria și șinele de 5v sunt alimentate.
- A treia lumină DL_OK va clipi la fiecare 1 secundă pentru a indica faptul că jurnalul de telemetrie este activ.
- Ultima lumină SIM_Transmit se va aprinde odată ce modulele celulare și GPS sunt conectate și datele sunt trimise la server.
Pasul 6: incintă
Racheta pe care am proiectat-o în jurul acestui proiect are un diametru intern de 29 mm, pentru a proteja electronica și a permite montajului să se potrivească în interiorul corpului cilindric al rachetei, am realizat o carcasă simplă imprimată în două părți, care este înșurubată și are vizualizarea porturilor pentru luminile indicatoare. Fișierele STL pentru imprimare și fișierele.ipt originale se află în github repo. Nu am modelat acest lucru, deoarece nu eram sigur de bateria pe care o voi folosi la acea vreme, dar am creat manual o adâncitură pentru o baterie de 120 mAh care să stea la același nivel cu fundul carcasei. Se estimează că această baterie oferă un timp de funcționare maxim de ~ 45min pentru sistem la un consum de energie de ~ 200mA (Acest lucru depinde de utilizarea procesorului și de consumul de energie pentru transmiterea de date, SIM800L este citat să extragă peste 2A în rafale în timpul comunicării).
Pasul 7: Concluzie
Acest proiect a fost o implementare destul de simplă a două sisteme separate, având în vedere că tocmai foloseam module discrete găsite pe Amazon, integrarea generală a sistemului este puțin slabă, deoarece dimensiunea generală a proiectului este destul de mare pentru ceea ce face. Privind ofertele unor producători, utilizarea unui SIP care include atât celular cât și GPS ar reduce considerabil dimensiunea globală a pachetului.
Sunt sigur că, după mai multe teste de zbor, va trebui să aduc unele modificări programului și voi fi sigur că voi actualiza repo Github cu orice modificări.
Sper că v-a plăcut acest proiect, nu ezitați să mă contactați pentru orice întrebări pe care le-ați putea avea.
Recomandat:
Senzor de poziție pentru suport pentru bicicletă de la Magicbit [Magicblocks]: 8 pași
Senzor de poziție Kickstand pentru biciclete de la Magicbit [Magicblocks]: Proiect DIY simplu pentru a face senzor de poziție Kickstand cu un Magicbit folosind Magicblocks. Folosim magicbit ca placă de dezvoltare în acest proiect care se bazează pe ESP32. Prin urmare, orice placă de dezvoltare ESP32 poate fi utilizată în acest proiect
Roată Stering personalizată (oală ca senzor de poziție): 10 pași
Stering Wheel personalizat (pot ca senzor de poziție): responsabilitate: nu mă reproșa că nu arată pas cu pas, se presupune că este doar o referință și spun doar ce am făcut și rezultatul, are câteva defecte de bază, cum ar fi zgomot, așa că nu faceți exact așa cum am făcut și așteptați un rezultat remarcabil și f
Modelul de rachetă supersonic Brahmos: 6 pași
Modelul de rachetă supersonic Brahmos: Acest proiect este o rachetă interactivă tipărită 3D construită în scop educativ. Pentru a fi sinceri, rachetele arată în mod normal destul de șchiop doar un tub lung de metal. Cu excepția cazului în care cineva lansează una sau ceva este în știri, nimeni nu vorbește cu adevărat despre ele. Acest manechin
Model avansat computer de zbor cu rachetă !: 4 pași (cu imagini)
Advanced Model Rocket Flight Computer !: Aveam nevoie de un computer high-end model de rachetă pentru cea mai nouă rachetă care se controla fără aripioare! Motivul pentru care am decis să construiesc acest lucru a fost pentru că construiesc rachete TVC (thrust vector control). Aceasta înseamnă că există
Lampă rachetă: 11 pași (cu imagini)
Lampă cu rachetă: Am o idee de lampă cu rachetă de ceva timp acum. Cred că am văzut o imagine a ceva similar pe net și mi-a rămas. Lucrul care mă ținea înapoi era racheta propriu-zisă. Am vrut inițial să fac una din lemn și să folosesc un strung pentru