Cuprins:

Telemetrie rachetă / Tracker de poziție: 7 pași
Telemetrie rachetă / Tracker de poziție: 7 pași

Video: Telemetrie rachetă / Tracker de poziție: 7 pași

Video: Telemetrie rachetă / Tracker de poziție: 7 pași
Video: Contribuțiile Franței la explorarea spațiului 2024, Iulie
Anonim
Telemetrie rachetă / Tracker de poziție
Telemetrie rachetă / Tracker de poziție

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

Lista de componente
Lista de componente
Lista de componente
Lista de componente

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

Configurare server
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

Integrarea sistemului
Integrarea sistemului
Integrarea sistemului
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ă

Incintă
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: