Spisu treści:

Telemetria rakiet / śledzenie pozycji: 7 kroków
Telemetria rakiet / śledzenie pozycji: 7 kroków

Wideo: Telemetria rakiet / śledzenie pozycji: 7 kroków

Wideo: Telemetria rakiet / śledzenie pozycji: 7 kroków
Wideo: Start polskiego satelity Intuition-1 rakietą Falcon 9 SpaceX 2024, Lipiec
Anonim
Telemetria rakiet / śledzenie pozycji
Telemetria rakiet / śledzenie pozycji

Ten projekt ma na celu rejestrowanie danych lotu z modułu czujnika 9 DOF na kartę SD i jednoczesne przesyłanie lokalizacji GPS za pośrednictwem sieci komórkowych do serwera. Ten system umożliwia znalezienie rakiety, jeśli obszar lądowania systemu znajduje się poza LOS.

Krok 1: Lista części

Lista części
Lista części
Lista części
Lista części

System telemetrii:

1x mikrokontroler ATmega328 (Arduino UNO, Nano)

1x Micro SD Breakout -

1x karta Micro SD - (rozmiar nie ma znaczenia w formacie FAT 16/32) - Amazon Link

1x Gy-86 IMU - Amazon Link

Śledzenie pozycji:

1x mikrokontroler ATmega328 (Arduino UNO, Nano) (każdy system potrzebuje własnego mikro)

1x Moduł GSM GPRS Sim800L - Amazon Link

1x karta SIM (musi mieć pakiet danych) - https://ting.com/ (ting pobiera tylko opłaty za to, z czego korzystasz)

1x Moduł GPS NEO 6M - Amazon Link

Części ogólne:

1x 3.7 v bateria lipo;

1x konwerter step-up 3,7-5 v (jeśli nie zbudujesz pcb)

1x Raspberry pi lub dowolny komputer, który może obsługiwać serwer php

-Dostęp do drukarki 3D

-BOM dla pcb jest wymieniony w arkuszu kalkulacyjnym

-Gerbery są w repozytorium github -

Krok 2: Podsystem 1: Śledzenie pozycji

Testowanie:

Kiedy już masz pod ręką części do systemu (NEO-6M GPS, Sim800L), musisz przetestować funkcjonalność systemów niezależnie, aby nie mieć bólu głowy, próbując dowiedzieć się, co nie działa podczas integracji systemów.

Testowanie GPS:

Aby przetestować odbiornik GPS, możesz użyć oprogramowania dostarczonego przez firmę Ublox (oprogramowanie U-Center)

lub szkic testowy połączony w repozytorium github (test GPS)

1. Aby przetestować za pomocą oprogramowania U-center, po prostu podłącz odbiornik GPS przez USB i wybierz port COM w U-center, system powinien automatycznie rozpocząć śledzenie Twojej lokalizacji.

2. Aby przetestować za pomocą mikrokontrolera, prześlij szkic testowy GPS do arduino przez IDE. Następnie podłącz 5V i GND do oznaczonych pinów na odbiorniku do arduino, a pin GPS RX do cyfrowego 3 i pin TX do cyfrowego 4 na arduino. Na koniec otwórz monitor szeregowy na arduino IDE i ustaw szybkość transmisji na 9600 i sprawdź, czy otrzymane współrzędne są poprawne.

Uwaga: Wizualnym identyfikatorem blokady satelitarnej na module NEO-6M jest to, że czerwona dioda LED będzie migać co kilka sekund, aby wskazać połączenie.

Testowanie SIM800L:

Aby przetestować moduł komórkowy, musisz mieć zarejestrowaną kartę sim z aktywnym planem transmisji danych, polecam Ting, ponieważ pobierają tylko opłaty za to, z czego korzystasz, zamiast miesięcznego planu transmisji danych.

Celem modułu Sim jest wysłanie żądania HTTP GET do serwera z lokalizacją odebraną przez odbiornik GPS.

1. Aby przetestować moduł komórkowy, włóż kartę SIM do modułu ze sfazowanym końcem skierowanym na zewnątrz

2. Podłącz moduł sim do GND i źródła 3,7-4,2 V, nie używaj 5 V!!!! moduł nie może działać przy 5v. Podłącz moduł Sim RX do Analog 2 i TX do Analog 3 na Arduino

3. Prześlij szkic tranzytu szeregowego z github, aby móc wysyłać polecenia do modułu komórki.

4. postępuj zgodnie z tym samouczkiem lub pobierz wersję próbną AT Command Tester, aby przetestować funkcjonalność HTTP GET

Realizacja:

Po sprawdzeniu, że oba systemy działają niezależnie, możesz przejść do wgrania pełnego szkicu na github mikrokontrolera. możesz otworzyć monitor szeregowy z prędkością 9600 bodów, aby sprawdzić, czy system wysyła dane do serwera WWW.

* nie zapomnij zmienić adresu IP i portu serwera na własne i upewnij się, że znalazłeś APN dla dostawcy komórkowego, którego używasz.

Przejdź do następnego kroku, w którym konfigurujemy serwer

Krok 3: Konfiguracja serwera

Konfiguracja serwera
Konfiguracja serwera

Aby skonfigurować serwer do wyświetlania lokalizacji rakiety, użyłem raspberry pi jako hosta, ale możesz użyć dowolnego komputera.

Postępuj zgodnie z tym samouczkiem, aby skonfigurować lightphp na RPI, a następnie skopiuj pliki php z github do folderu /var/www/html swojego RPI. Po prostu użyj polecenia

usługa sudo lighttpd force-reload

przeładować serwer.

Upewnij się, że przekazujesz porty powiązane z serwerem na routerze, aby móc zdalnie uzyskać dostęp do danych. Na rpi powinien to być port 80, a port zewnętrzny może być dowolną liczbą.

Dobrym pomysłem jest ustawienie statycznego adresu IP dla RPI, aby przesyłane porty zawsze wskazywały adres RPI.

Krok 4: Podsystem 2: Rejestrowanie telemetrii

Program telemetryczny działa na oddzielnym mikrokontrolerze od systemu śledzenia pozycji. Ta decyzja została podjęta ze względu na ograniczenia pamięci ATmega328 uniemożliwiające uruchomienie obu programów w jednym systemie. Inny wybór mikrokontrolera o ulepszonych specyfikacjach mógłby rozwiązać ten problem i umożliwić użycie jednego centralnego procesora, ale chciałem wykorzystać części, które miałem pod ręką, dla ułatwienia obsługi.

Cechy: Ten program jest oparty na innym przykładzie, który znalazłem tutaj w Internecie.

  • Program natywnie odczytuje wysokość względną (odczyt wysokości zerowany przy uruchomieniu), temperaturę, ciśnienie, przyspieszenie w kierunku X (musisz zmienić kierunek odczytu przyspieszenia na podstawie fizycznej orientacji czujnika) oraz znacznik czasu (w milisekundach).).
  • Aby zapobiec rejestrowaniu danych podczas siedzenia na wyrzutni i marnowaniu miejsca do przechowywania, system zacznie zapisywać dane dopiero po wykryciu zmiany wysokości (konfigurowalne w programie) i przestanie zapisywać dane po wykryciu, że rakieta powróciła do pierwotnego stanu wysokości lub po upływie 5 minut lotu.
  • System wskaże, że jest włączony i zapisuje dane za pomocą pojedynczej diody LED.

Testowanie:

Aby przetestować system, najpierw podłącz przerwanie karty SD

Karta SD Arduino

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

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

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

Pin 12 -------------- ZROBIĆ

Teraz podłącz GY-86 do systemu przez I^2C

Arduino GY-86

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

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

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

Na karcie SD utwórz plik w głównym katalogu o nazwie datalog.txt, w którym system będzie zapisywał dane.

Przed wgraniem szkicu Data_Logger.ino do mikrokontrolera zmień wartość ALT_THRESHOLD na 0, aby system zignorował wysokość do testów. Po przesłaniu otwórz monitor szeregowy z prędkością 9600 bodów, aby wyświetlić dane wyjściowe systemu. Upewnij się, że system jest w stanie połączyć się z czujnikiem i że dane są zapisywane na karcie SD. Odłącz system i włóż kartę SD do komputera, aby sprawdzić, czy dane zostały zapisane na karcie.

Krok 5: Integracja systemu

Integracja systemu
Integracja systemu
Integracja systemu
Integracja systemu

Po sprawdzeniu, że każda część systemu działa w tej samej konfiguracji, co na głównej płytce drukowanej, czas zebrać wszystko razem i przygotować się do uruchomienia! Dołączyłem pliki Gerbers i EAGLE dla PCB i schematu w githubie. musisz przesłać gerbery do producenta, takiego jak OSH park lub JLC, aby je wyprodukować. Te deski są dwuwarstwowe i są wystarczająco małe, aby zmieścić się w większości producentów kategorii 10cmx10cm dla tanich desek.

Po odzyskaniu płyt z produkcji nadszedł czas, aby przylutować wszystkie komponenty znalezione w arkuszu kalkulacyjnym i liście części na płycie.

Programowanie:

Po zlutowaniu wszystkiego będziesz musiał wgrać programy do dwóch mikrokontrolerów. Aby zaoszczędzić miejsce na płycie, nie włączyłem żadnej funkcji USB, ale pozostawiłem uszkodzone porty ICSP i szeregowe, dzięki czemu można nadal przesyłać i monitorować program.

  • Aby przesłać program, postępuj zgodnie z tym samouczkiem dotyczącym używania płytki Arduino jako programisty. Prześlij SimGpsTransmitter.ino do portu ICSP_GPS i Data_Logger.ino do portu ICSP_DL (port ICSP na płytce drukowanej ma taki sam układ, jak ten, który znajduje się na standardowych płytach Arduino UNO).
  • Po załadowaniu wszystkich programów możesz zasilać urządzenie z wejścia akumulatora napięciem 3,7-4,2 V i korzystać z 4 kontrolek, aby sprawdzić, czy system działa.

    • Pierwsze dwie kontrolki 5V_Ok i VBATT_OK wskazują, że bateria i szyny 5V są zasilane.
    • Trzecia lampka DL_OK będzie migać co 1 sekundę, wskazując, że rejestracja telemetrii jest aktywna.
    • Ostatnia lampka SIM_Transmit zaświeci się, gdy moduły komórkowe i GPS są połączone i dane są przesyłane na serwer.

Krok 6: Obudowa

Załącznik
Załącznik

Rakieta, wokół której projektuję ten projekt, ma wewnętrzną średnicę 29 mm, aby chronić elektronikę i umożliwić montaż wewnątrz cylindrycznego korpusu rakiety. porty podglądu dla lampek kontrolnych. Pliki STL do drukowania i oryginalne pliki.ipt znajdują się w repozytorium github. Nie modelowałem tego, ponieważ nie byłem pewien, jakiego akumulatora użyję w tym czasie, ale ręcznie stworzyłem wgłębienie na akumulator 120 mAh, aby przylegało do dna obudowy. Szacuje się, że bateria ta zapewnia ~45 minut maksymalnego czasu pracy systemu przy poborze prądu ~200mA (jest to zależne od wykorzystania procesora i poboru mocy do transmisji danych, SIM800L ma pobierać do 2A impulsów podczas komunikacji).

Krok 7: Wniosek

Ten projekt był dość prostą implementacją dwóch oddzielnych systemów, biorąc pod uwagę, że używałem tylko dyskretnych modułów znalezionych na Amazon, ogólna integracja systemu jest nieco słaba, ponieważ ogólny rozmiar projektu jest dość duży jak na to, co robi. Patrząc na oferty niektórych producentów, korzystanie z SIP, które obejmuje zarówno sieć komórkową, jak i GPS, znacznie zmniejszyłoby ogólny rozmiar pakietu.

Jestem pewien, że po dalszych testach w locie będę musiał dokonać pewnych modyfikacji w programie i na pewno zaktualizuję repozytorium Github o wszelkie zmiany.

Mam nadzieję, że podobał Ci się ten projekt. Jeśli masz jakiekolwiek pytania, skontaktuj się ze mną.

Zalecana: