Podręcznik altimetru Nano V1
Ta instrukcja zawiera szczegółowy opis wszystkich funkcji i obsługi naszego małego altimetru rakietowego Nano V1

Format zapisu lotu

PDF

Każdy lot jest zapisywany na dysku Nano jako zapis lotu o nazwie flightlog<tag>-<n>.aclz, a obok niego znajduje się pasująca strona flightinfo<tag>-<n>.html z podsumowaniem lotu. Znacznik to ostatnie cztery znaki numeru seryjnego Nano, a n to numer lotu.

Domyślnie zapis jest plikiem ACLZ, własnym skompresowanym formatem Nano. Jeśli w ustawieniach ustawisz log_format na 0, będzie to plik CSV. Ta strona opisuje oba formaty i kolumny, które każdy z nich zawiera.

Wskazówka
Najłatwiej obejrzeć lot, przesyłając go do Altimeter Cloud, który przedstawia go w czytelnych wykresach i liczbach. Ta strona jest dla tych, którzy chcą pracować bezpośrednio na surowych danych. Zobacz stronę Altimeter Cloud.

Dlaczego ACLZ jest domyślny

ACLZ zapisuje dokładnie ten sam lot co CSV, z tą samą dokładnością, w około jednej piętnastej miejsca, i zalecamy pozostawienie go jako domyślnego.

  • Dłuższe loty. Do 38 000 próbek w jednym zapisie, wobec 22 000 w CSV (20 000 z include_pressure). Przy 417 Hz to różnica między zarejestrowaniem w całości długiego opadania a brakiem miejsca w zapisie.
  • Więcej lotów na dysku. Typowy lot w ACLZ zajmuje kilkadziesiąt kilobajtów, więc dysk mieści pełne 39 lotów, które przechowuje Nano. W CSV około dziesięciu typowych lotów zapełnia dysk, a zapis CSV pełnej długości zajmuje sam większość miejsca.
  • Więcej danych. Każdy zapis ACLZ zawiera też surową wysokość, dokładnie taką, jaką zmierzył barometr przed jakimkolwiek przetwarzaniem, oraz ciśnienie. Dzięki temu zawsze widzisz, co zrobiły TrueFuse i TruePath, a Altimeter Cloud może narysować surowy przebieg obok przetworzonego.
  • Kompresja niczego nie traci. CSV pobrany z Altimeter Cloud jest dokładnie tym CSV, który zapisałby Nano, cyfra w cyfrę.
  • Podwójny podpis. Nano podpisuje sam plik oraz CSV, do którego się rozpakowuje, więc CSV pobrany z Altimeter Cloud nadal można zweryfikować samodzielnie.
  • Szybsza obsługa. Małe pliki szybciej się kopiują i przesyłają, co najbardziej odczujesz przy przesyłaniu bezpośrednio z Nano przez USB.

Pliku ACLZ nie da się otworzyć w arkuszu kalkulacyjnym. Prześlij go do Altimeter Cloud (bezpłatnie, bez konta), aby zobaczyć wykresy i pobrać CSV, albo otwórz stronę informacji o locie obok niego, aby szybko rzucić okiem bezpośrednio z dysku. Wybierz CSV tylko wtedy, gdy musisz otwierać zapisy bezpośrednio z dysku w arkuszu, a Twoje loty są na tyle krótkie, by się zmieściły.

ACLZ (domyślnie)CSV
Próbki na lotDo 38 000Do 22 000 (20 000 z include_pressure)
Rozmiar typowego lotuKilkadziesiąt KBKilkaset KB
Kolumna surowej wysokościTakNie
Kolumna ciśnieniaTakRev 1 do 3 zawsze; Rev 4 i nowsze tylko z include_pressure
Otwiera się w arkuszu kalkulacyjnymNie: prześlij go, a potem pobierz CSVTak
PodpisEd25519, obejmujący plik i CSV, do którego się rozpakowujeEd25519, obejmujący plik

Jak ACLZ działa wewnątrz i jak odczytać go własnym oprogramowaniem, opisano w podręczniku oprogramowania wraz z konwerterem referencyjnym.

Układ zapisu CSV

Plik CSV, zapisany przez Nano lub pobrany z Altimeter Cloud, składa się z trzech części w tej kolejności: bloku wierszy nagłówka z podsumowaniem lotu i ustawieniami, z jakimi go zarejestrowano, jednego pustego wiersza, a następnie wiersza nazw kolumn zaczynającego się od Time(ms), po którym następuje jeden wiersz na każdą zarejestrowaną próbkę.

Jeśli piszesz parser, znajdź wiersz zaczynający się od Time(ms) zamiast liczyć wiersze i traktuj wszystko od tego miejsca jako dane. Nagłówek ma układ par etykieta i wartość obok siebie, aby czytelnie wyglądał w arkuszu: para po lewej, para pośrodku i, od rewizji 4, kolejna para po prawej z danymi ruchu.

Nagłówek

Nagłówek zawiera wszystko, czego potrzebujesz, aby zrozumieć lot bez czytania choćby jednego wiersza danych.

  • Podsumowanie lotu. Apogeum i jego czas, wysokość i czas lądowania, maksymalna prędkość wznoszenia, prędkość lądowania i średnia liczba próbek na sekundę.
  • Identyfikacja. Nazwa urządzenia, wszystkie trzy numery zawodnika i numer seryjny.
  • Warunki i ustawienia. Temperatura płytki i napięcie akumulatora na początku i na końcu lotu, wersja oprogramowania, rewizja płytki i poszczególne ustawienia lotu, takie jak częstotliwość próbkowania, tryb hybrydowy, orientacja, ochrona startu, współczynnik próbkowania i koniec zapisu.
  • Przetwarzanie. Które wersje TrueFuse i TruePath przetworzyły lot i czy zastosowano TrueFuse, jak potwierdzono start i jak ustalono chwilę oderwania.
  • Rewizja 4 i nowsze. Kąt prowadnicy, dominująca oś, przesunięcia i jakość kalibracji, przesunięcie synchronizacji czujników i ewentualne nasycenie czujników. Prawa strona dodaje statystyki ruchu: czasy końca pracy silnika i wyrzutu, prędkości w chwili końca pracy silnika i podczas opadania, maksymalne i średnie przyspieszenia podczas wznoszenia, pracy silnika i opadania oraz pochylenie, przechylenie, odchylenie i nachylenie przy starcie.
  • Odzyskane loty mają wiersz Recovered,1.
  • Adjusted log ma wartość „no” dla oryginalnego lotu i pokazuje, czy zapis przeliczono później w Altimeter Cloud z innym ciśnieniem lub temperaturą.

Pole Verification hash zawiera podpis cyfrowy Ed25519 zapisu, dzięki któremu każdy może potwierdzić, że plik nie został zmieniony. Zapisy z oprogramowania starszego niż 1.52 mają tu zamiast tego skrót HMAC-SHA256. Zobacz Weryfikacja zapisów lotu.

Ciąg ustawień

Pojedyncze pole Settings string zawiera w jednym wierszu konfigurację użytą w locie. Konfigurowalne klucze odpowiadają opcjom na stronie Ustawienia.

KluczZawartość
fpCiśnienie na poziomie morza używane do obliczania wysokości (hPa), stałe 1013,25
ftUżywana temperatura (°C), stała 15
utCzy użyto temperatury czujnika, zawsze 0
ssCzęstotliwość próbkowania (Hz)
srWspółczynnik próbkowania
msMaksymalna liczba próbek
ldWysokość wykrycia startu (m)
lpOchrona startu (mG)
slBlokada startowa
rsKoniec zapisu
mpZachowanie po lądowaniu
hmTryb hybrydowy
orOrientacja
seSynchronizacja czujników (Rev 4 i nowsze)
os, ii, kfWewnętrzne ustawienia obsługi ciśnienia (nadpróbkowanie i filtr)
rcpPunkt odniesienia przy ziemi ustalony przy starcie
rmiCzas startu w milisekundach
cgx, cgy, cgzZapisane przesunięcia kalibracji żyroskopu (Rev 4 i nowsze)
cax, cay, cazZapisane przesunięcia kalibracji akcelerometru (Rev 4 i nowsze)
zbbWewnętrzna flaga testowa, w normalnym locie zawsze 0
sda, sdm, sdn, sdsPunkt odniesienia przy ziemi z uruchomienia: przycięta średnia i mediana wysokości z odczytów na wyrzutni, ich liczba i rozrzut (cm)
sbf, sbtPierwszy odczyt czujnika ciśnienia po włączeniu i jego odczyt na końcu rozgrzewania (hPa)
Ważne
Nie edytuj zapisu lotu, jeśli ma pozostać ważny. Podpis obejmuje każdy bajt pliku, więc jakakolwiek zmiana, nawet jednej liczby czy dodanej spacji, sprawia, że przestaje pasować, a Altimeter Cloud go nie przyjmie. Jeśli chcesz pracować na danych, najpierw skopiuj plik, edytuj kopię, a oryginał zachowaj w bezpiecznym miejscu.

Kolumny danych

Po pustym wierszu i nazwach kolumn każdy wiersz to jedna zarejestrowana próbka, w tej kolejności. Kolumny ruchu (przyspieszenie, żyroskop, pochylenie, przechylenie, odchylenie i nachylenie) występują na płytkach w rewizji 4 i nowszych.

KolumnaJednostkaFormatCo to jest
Time(ms)ms2 miejsca po przecinkuCzas od oderwania, z oderwaniem jako zerem
Altitude(m)m3 miejsca po przecinkuWysokość nad wyrzutnią po TrueFuse i TruePath
Velocity(m/s)m/s2 miejsca po przecinkuPrędkość pionowa obliczona z przetworzonej wysokości
acceleration_x(mG)mGLiczby całkowitePrzyspieszenie wzdłuż osi X płytki
acceleration_y(mG)mGLiczby całkowitePrzyspieszenie wzdłuż osi Y
acceleration_z(mG)mGLiczby całkowitePrzyspieszenie wzdłuż osi Z
acceleration_total(mG)mG1 miejsce po przecinkuWartość całkowitego przyspieszenia z odjętym 1 g grawitacji, więc w spoczynku jest bliska zeru
gyro_x°/sLiczby całkowitePrędkość obrotowa wokół osi X
gyro_y°/sLiczby całkowitePrędkość obrotowa wokół osi Y
gyro_z°/sLiczby całkowitePrędkość obrotowa wokół osi Z
Board temp(C)°C2 miejsca po przecinkuTemperatura czujnika, w co 50. wierszu, a w wierszach pośrednich puste
pitchstopnie2 miejsca po przecinkuKąt położenia, śledzony przez żyroskop od zera na wyrzutni
rollstopnie2 miejsca po przecinkuKąt położenia, śledzony przez żyroskop od zera na wyrzutni
yawstopnie2 miejsca po przecinkuKąt położenia, śledzony przez żyroskop od zera na wyrzutni
tiltstopnie2 miejsca po przecinkuKąt odchylenia od pionu
Pressure(hPa)hPa6 miejsc po przecinkuCiśnienie powietrza odpowiadające przetworzonej wysokości, obliczone według atmosfery wzorcowej. Zawsze w CSV z zapisu ACLZ; w CSV zapisanym przez Nano tylko przy include_pressure ustawionym na 1
Raw altitude(m)m3 miejsca po przecinkuWysokość nad wyrzutnią dokładnie taka, jaką zmierzył barometr, przed jakimkolwiek przetwarzaniem. Tylko w CSV z zapisów ACLZ
  • Czas jest liczony od oderwania. Nano zachowuje sekundy sprzed potwierdzenia startu, więc pierwsze wiersze mają ujemne czasy: 5 sekund z pełną częstotliwością i jeszcze 3 sekundy wcześniej z częstotliwością 50 Hz w zapisie ACLZ lub 20 Hz w CSV.
  • Czasy są zapisywane z dokładnością do dwóch miejsc po przecinku milisekundy, z własnego zegara czujnika, więc wiersze są równomiernie rozłożone nawet przy 833 Hz.
  • Przy włączonym trybie hybrydowym opadanie jest zapisywane z niższą częstotliwością, więc odstępy między wierszami się zmieniają. Zawsze korzystaj z kolumny czasu zamiast liczyć wiersze.
  • Osie przyspieszenia i żyroskopu to własne osie płytki, które względem rakiety ustawiają się zgodnie z orientacją.
  • Każdy wiersz danych kończy się przecinkiem, więc ścisły parser zobaczy na końcu każdego wiersza jedno puste pole.

Altitude i Raw altitude mają to samo zero, więc możesz narysować jedną względem drugiej i zobaczyć dokładnie, co zmieniło przetwarzanie. Przez większość lotu obie się pokrywają, a rozchodzą się tylko tam, gdzie start, ładunek wyrzucający lub skok ciśnienia zakłóciły barometr.

Nazwy kolumn

Wiersz nazw kolumn w każdym przypadku, dokładnie tak, jak się pojawia:

CSV z zapisu ACLZ (Rev 4 i nowsze)
Time(ms),Altitude(m),Velocity(m/s),acceleration_x(mG),acceleration_y(mG),acceleration_z(mG),acceleration_total(mG),gyro_x,gyro_y,gyro_z,Board temp(C),pitch,roll,yaw,tilt,Pressure(hPa),Raw altitude(m)

CSV zapisany przez Nano (Rev 4 i nowsze; Pressure(hPa) tylko z include_pressure 1)
Time(ms),Altitude(m),Velocity(m/s),acceleration_x(mG),acceleration_y(mG),acceleration_z(mG),acceleration_total(mG),gyro_x,gyro_y,gyro_z,Board temp(C),pitch,roll,yaw,tilt,Pressure(hPa)

CSV z zapisu ACLZ (Rev 1 do 3)
Time(ms),Altitude(m),Pressure(hPa),Velocity(m/s),Board temp(C),Raw altitude(m)

CSV zapisany przez Nano (Rev 1 do 3)
Time(ms),Altitude(m),Pressure(hPa),Velocity(m/s),Board temp(C)

Zapisy ACLZ ze starszego oprogramowania, powstałe przed dodaniem kolumny surowej wysokości, rozpakowują się bez niej.

Płytki w rewizjach 1 do 3

Płytki bez czujnika ruchu używają tego samego pliku w tym samym układzie, tylko prostszego. Brak kolumn ruchu, a nagłówek nie ma statystyk ruchu po prawej stronie. Kolumna Pressure(hPa) jest w obu formatach trzecia, zaraz po Altitude, a CSV z zapisu ACLZ dodaje na końcu Raw altitude(m). Wszystko inne na tej stronie obowiązuje tak samo.