Sommario:

Telemetria del razzo/Tracciatore di posizione: 7 passaggi
Telemetria del razzo/Tracciatore di posizione: 7 passaggi

Video: Telemetria del razzo/Tracciatore di posizione: 7 passaggi

Video: Telemetria del razzo/Tracciatore di posizione: 7 passaggi
Video: Quei secondi fatali: L'esplosione dello Shuttle Challenger (stagione 3, episodio 12) 2024, Luglio
Anonim
Telemetria del razzo/Tracciatore di posizione
Telemetria del razzo/Tracciatore di posizione

Questo progetto ha lo scopo di registrare i dati di volo da un modulo sensore 9 DOF su una scheda SD e trasmettere contemporaneamente la sua posizione GPS tramite reti cellulari a un server. Questo sistema consente di trovare il razzo se l'area di atterraggio del sistema è oltre la LOS.

Passaggio 1: elenco delle parti

Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti

Sistema di telemetria:

1x Microcontrollore ATmega328 (Arduino UNO, Nano)

1x Micro SD Breakout -

1x Micro SD Card - (le dimensioni non contano con formattazione FAT 16/32) - Amazon Link

1x IMU Gy-86 - Collegamento Amazon

Monitoraggio della posizione:

1x Microcontrollore ATmega328 (Arduino UNO, Nano) (ogni sistema ha bisogno del proprio micro)

1x Modulo GSM GPRS Sim800L - Collegamento Amazon

1x SIM Card (deve avere un piano dati) - https://ting.com/ (ting si addebita solo per ciò che si utilizza)

1x Modulo GPS NEO 6M - Amazon Link

Parti Generali:

1x batteria lipo da 3,7 V

1x convertitore step-up 3.7-5v (se non costruisci il pcb)

1x Raspberry pi o qualsiasi computer in grado di ospitare un server php

-Accesso alla stampante 3D

-BOM per pcb è elencato nel foglio di calcolo

-Gerbers sono nel repository github -

Passaggio 2: sottosistema 1: monitoraggio della posizione

Test:

Una volta che hai le parti per il sistema (NEO-6M GPS, Sim800L) in mano, devi testare la funzionalità dei sistemi in modo indipendente in modo da non avere mal di testa cercando di capire cosa non funziona quando integri i sistemi.

Test GPS:

Per testare il ricevitore GPS, puoi utilizzare il software fornito da Ublox (U-Center Software)

o lo schizzo di prova collegato nel repository github (test GPS)

1. Per eseguire il test con il software U-center, è sufficiente collegare il ricevitore GPS tramite USB e selezionare la porta com in U-center, dopodiché il sistema dovrebbe iniziare automaticamente a tracciare la tua posizione.

2. Per testare con un microcontrollore, carica lo schizzo del test GPS su un arduino tramite l'IDE. Quindi collegare 5V e GND ai pin etichettati sul ricevitore all'arduino e il pin GPS RX al digitale 3 e il pin TX al digitale 4 sull'arduino. Infine apri il monitor seriale sull'IDE arduino e imposta il baud rate a 9600 e verifica che le coordinate ricevute siano corrette.

Nota: un identificatore visivo dell'aggancio del satellite sul modulo NEO-6M è che l'indicatore LED rosso lampeggerà ogni pochi secondi per indicare una connessione.

SIM800L Test:

Per testare il modulo cellulare dovrai avere una sim card registrata con un piano dati attivo, consiglio Ting perché fanno pagare solo quello che usi invece di un piano dati mensile.

L'obiettivo del modulo Sim è inviare una richiesta HTTP GET al server con la posizione ricevuta dal ricevitore GPS.

1. Per testare il modulo cella, inserire la simcard nel modulo con l'estremità smussata rivolta verso l'esterno

2. Collega il modulo sim a GND e una sorgente 3.7-4.2v, non usare 5v!!!! il modulo non è in grado di funzionare a 5v. Collega il modulo Sim RX ad Analog 2 e TX ad Analog 3 su Arduino

3. Carica lo sketch del pass-through seriale da github per poter inviare comandi al modulo cella.

4. segui questo tutorial o scarica la versione di prova di AT Command Tester per testare la funzionalità HTTP GET

Implementazione:

Una volta verificato che entrambi i sistemi funzionano in modo indipendente, puoi passare al caricamento dello sketch completo sul microcontrollore github. è possibile aprire il monitor seriale a 9600 baud per verificare che il sistema stia inviando dati al webserver.

* non dimenticare di cambiare l'ip e la porta del server con i tuoi e assicurati di trovare l'APN per il provider di telefonia cellulare che stai utilizzando.

Passa al passaggio successivo in cui impostiamo il server

Passaggio 3: configurazione del server

Configurazione del server
Configurazione del server

Per configurare un server per visualizzare la posizione del razzo, ho usato un raspberry pi come host, ma puoi usare qualsiasi computer.

Segui questo tutorial sulla configurazione di lightphp su un RPI e quindi copia i file php da github nella cartella /var/www/html del tuo RPI. Dopo basta usare il comando

sudo service lighttpd force-reload

per ricaricare il server.

Assicurati di inoltrare le porte associate al server sul tuo router in modo da poter accedere ai dati in remoto. Sull'rpi dovrebbe essere la porta 80 e la porta esterna può essere un numero arbitrario.

È una buona idea impostare un IP statico per l'RPI in modo che le porte che inoltri puntino sempre verso l'indirizzo dell'RPI.

Passaggio 4: sottosistema 2: registrazione della telemetria

Il programma di telemetria viene eseguito su un microcontrollore separato dal sistema di tracciamento della posizione. Questa decisione è stata presa a causa delle limitazioni di memoria sull'ATmega328 che impediscono a entrambi i programmi di essere eseguiti su un sistema. Un'altra scelta di microcontrollore con specifiche avanzate potrebbe risolvere questo problema e consentire l'uso di un processore centrale, ma volevo utilizzare le parti che avevo a portata di mano per facilità d'uso.

Caratteristiche: Questo programma si basa su un altro esempio che ho trovato online qui.

  • Il programma legge nativamente l'altitudine relativa (lettura dell'altitudine azzerata all'avvio), temperatura, pressione, accelerazione in direzione X (sarà necessario cambiare la direzione di accelerazione letta in base all'orientamento fisico del sensore) e un timestamp (in millis).
  • Per evitare che i dati vengano registrati mentre si è seduti sul launchpad e sprecano spazio di archiviazione, il sistema inizierà a scrivere i dati solo una volta rilevato un cambiamento di altitudine (configurabile nel programma) e smetterà di scrivere i dati una volta rilevato che il razzo è tornato al suo originale altitudine, o dopo che è trascorso un tempo di volo di 5 minuti.
  • Il sistema indicherà che è acceso e che sta scrivendo dati tramite un singolo LED di indicatore.

Test:

Per testare il sistema prima collegare la scheda SD breakout

Scheda SD Arduino

Pin 4 ---------------- CS

Pin 11 -------------- DI

Pin 13 -------------- SCK

Pin 12 -------------- DO

Ora collega la GY-86 al sistema tramite I^2C

Arduino GY-86

Pin A4 -------------- SDA

Pin A5 -------------- SCL

Pin 2 ---------------- INTA

Sulla scheda SD creare un file nella directory principale denominato datalog.txt, questo è il punto in cui il sistema scriverà i dati.

Prima di caricare lo sketch Data_Logger.ino sul microcontrollore, modificare il valore di ALT_THRESHOLD su 0 in modo che il sistema ignori l'altitudine per il test. Dopo il caricamento, aprire il monitor seriale a 9600 baud per visualizzare l'output del sistema. Assicurarsi che il sistema sia in grado di connettersi al sensore e che i dati vengano scritti sulla scheda SD. Scollegare il sistema e inserire la scheda SD nel computer per verificare che i dati siano stati scritti sulla scheda.

Passaggio 5: integrazione del sistema

Integrazione del sistema
Integrazione del sistema
Integrazione del sistema
Integrazione del sistema

Dopo aver verificato che ogni parte del sistema funzioni nella stessa configurazione utilizzata sul PCB principale, è tempo di riunire tutto e prepararsi per il lancio! Ho incluso i file Gerbers e EAGLE per il PCB e lo schema nel github. dovrai caricare i gerber su un produttore come OSH Park o JLC per farli produrre. Queste schede sono a due strati e sono abbastanza piccole da adattarsi alla maggior parte dei produttori nella categoria 10 cm x 10 cm per schede economiche.

Una volta che le schede sono tornate dalla produzione, è tempo di saldare tutti i componenti trovati nel foglio di calcolo e nell'elenco delle parti sulla scheda.

Programmazione:

Dopo aver saldato tutto, dovrai caricare i programmi sui due microcontrollori. Per risparmiare spazio sulla scheda non ho incluso alcuna funzionalità USB, ma ho lasciato l'ICSP e le porte seriali interrotte in modo da poter ancora caricare e monitorare il programma.

  • Per caricare il programma segui questo tutorial sull'utilizzo di una scheda Arduino come programmatore. Carica SimGpsTransmitter.ino sulla porta ICSP_GPS e Data_Logger.ino sulla porta ICSP_DL (La porta ICSP sul PCB ha lo stesso layout di quella che si trova sulle schede Arduino UNO standard).
  • Una volta caricati tutti i programmi, è possibile alimentare il dispositivo dall'ingresso della batteria con 3,7-4,2 V e utilizzare le 4 spie luminose per verificare che il sistema funzioni.

    • Le prime due spie 5V_Ok e VBATT_OK indicano che la batteria e i binari 5v sono alimentati.
    • La terza spia DL_OK lampeggerà ogni 1 secondo per indicare che la registrazione della telemetria è attiva.
    • L'ultima spia SIM_Transmit si accenderà una volta che i moduli cellulare e GPS sono collegati e i dati vengono inviati al server.

Passaggio 6: allegato

Allegato
Allegato

Il razzo attorno al quale sto progettando questo progetto ha un diametro interno di 29 mm, per proteggere l'elettronica e consentire al gruppo di adattarsi all'interno del corpo cilindrico del razzo ho realizzato una semplice custodia stampata in 3d in due parti che è imbullonata insieme e ha porte di visualizzazione per gli indicatori luminosi. I file STL per la stampa e i file.ipt originali si trovano nel repository github. Non l'ho modellato perché non ero sicuro della batteria che avrei usato in quel momento, ma ho creato manualmente un incavo per una batteria da 120 mAh per stare a filo con la parte inferiore del case. Si stima che questa batteria fornisca ~ 45 min di autonomia massima per il sistema con un consumo energetico di ~ 200 mA (questo dipende dall'utilizzo del processore e dall'assorbimento di potenza per la trasmissione dei dati, il SIM800L è indicato per assorbire fino a 2 A a raffiche durante la comunicazione).

Passaggio 7: conclusione

Questo progetto è stata un'implementazione piuttosto semplice di due sistemi separati, dato che stavo solo usando moduli discreti trovati su Amazon, l'integrazione complessiva del sistema è un po' scarsa poiché la dimensione complessiva del progetto è piuttosto grande per quello che fa. Guardando le offerte di alcuni produttori, l'utilizzo di un SIP che include sia cellulare che GPS ridurrebbe notevolmente le dimensioni complessive del pacchetto.

Sono certo che dopo ulteriori test in volo dovrò apportare alcune modifiche al programma e sarò sicuro di aggiornare il repository Github con eventuali modifiche.

Spero che questo progetto ti sia piaciuto, non esitare a contattarmi per qualsiasi domanda tu possa avere.

Consigliato: