Jaką wartość faktycznie zapisałeś w „Register 0x31 — DATA_FORMAT”?
Zakładam, że niczego nie zapisałeś w tym rejestrze, więc nadal ma wartość resetowania 00. Innymi słowy, podczas zbierania danych (z tabeli 16 i strony 17 arkusza danych ADXL345 ):
- Zarejestruj 0x31 — DATA_FORMAT == 00.
- FULL_RES == 0. Urządzenie pracuje w trybie 10-bitowym, a bity zakresu określają maksymalny zasięg g i współczynnik skali.
- Bit uzasadnienia == 0. Tak więc tryb justowania z rozszerzeniem znaku.
- Range Bits == 00. Zatem zakres + - 2 g.
Pierwszą rzeczą, którą chciałbym zrobić, to odzyskać oryginalne 16-bitowe wartości odczytane z akcelerometru. (tj. jeśli niedbale wyrzuciłem oryginalne dane, a pozostały mi tylko liczby w jednostkach „g”, które zostały obliczone przez odjęcie pewnego przesunięcia i pomnożenie przez jakiś nieprawidłowy współczynnik skali, skopiowałbym zebrane dane do arkusz kalkulacyjny i podziel przez ten sam (niepoprawny) współczynnik skali, a następnie dodaj to przesunięcie, aby spróbować odzyskać coś zbliżonego do pierwotnych wartości).
Następnie wykreśliłem dane na wykresie i sprawdziłem, czy bardziej przypomina to „nasycenie”, „liniowy” czy „najazd” (jak opisano poniżej).
Arkusz danych jest irytująco niejasny, co dzieje się, gdy czujnik doświadcza przyspieszenia większego niż 2 g.
styczna rant
Czy mówiłem ci, jak bardzo mnie to denerwuje, gdy pisarze techniczni nalegają na pisanie pasywnym głosem? Kiedy pisarz używa pasywnego głosu w cytowanym zdaniu,
„Wszystkie dane, z wyjątkiem zakresu ± 16 g, muszą zostać obcięte, aby uniknąć przewrócenia.” (strona 17)
Nie mogę powiedzieć, kto dokładnie powinien to zrobić.
Wiele osób zaleca używanie aktywnego głosu . Kiedy stosuję się do tych zaleceń, mój tekst jest zwykle bardziej zrozumiały dla tego, kto co robi. Czy nie jest lepiej, gdy piszę rzeczy, które są łatwiejsze do zrozumienia , niż używanie stylu, w którym ludzie są zmuszani do myślenia, że brzmi „bardziej profesjonalnie” lub „bardziej naukowo”?
automatyczne obcinanie
Myślę, że akcelerometr automatycznie wykonuje to obcinanie.
nasycenie : jeśli zobaczysz, że przyspieszenie przyspiesza w górę do prawdopodobnych wartości, to w tajemniczy sposób utkniesz na płaskowyżu, nasycając się przy lub w pobliżu + 2g, wtedy akcelerometr „pomocnie” uciął ci dane. Po przycięciu wartość „górna” nie oznacza już „przyspieszenia bardzo zbliżonego do + 2 g”, ale teraz wskazuje „przyspieszenie co najmniej 2 g, a być może znacznie, dużo więcej - nie ma sposobu, aby powiedzieć”.
Ponieważ był w 10-bitowym trybie wyrównania do prawej, kiedy interpretuję te 16-bitowe wartości jako normalne 16-bitowe liczby całkowite ze znakami, spodziewam się, że zobaczę wartości od
- 0x01FF = +511, wskazując więcej niż 1,992 g. Prawdopodobnie o wiele, wiele więcej.
- 0x01FE = +510, wskazując 510/256 g ~ = 1,992 g
- 0x01FD = +509, wskazując 510/256 g ~ = 1,988 g
- ...
- 0x0001 = +1, wskazując 1/256 g = 0,0039 g
- 0x0000 = 0, wskazując 0 g
- 0xFFFF = -1, wskazując -1/256 g = 0,0039
- ...
- 0xFE02 = -510, wskazując -510/256 = -1,992 g
- 0xFE01 = -511, wskazując -511/256 = -1,996 g
- 0xFE00 = -512, wskazując coś bardziej ujemnego -1,996 g. Być może znacznie bardziej negatywnie.
(Tak, wiem, że 4 miejsca dziesiętne precyzji nie są uzasadnione dla tego czujnika). (Widziałem, że niektóre urządzenia nasycają się w innym punkcie, na przykład -511 lub -510. Zwykle mogę spojrzeć na dane i ustalić rzeczywisty punkt nasycenia).
Możesz odzyskać niektóre przydatne dane z tego przyciętego zestawu danych. Można go użyć do pomiaru, na przykład, ile milisekund przyspieszenie wynosiło co najmniej 1,5 g. Niestety, gdy widzisz płaskowyże w tego rodzaju zestawie danych, nie można zmierzyć maksymalnego przyspieszenia lub całkowitego impulsu - najlepiej możesz powiedzieć: „wiemy, że maksymalne przyspieszenie wynosi co najmniej 2 gi prawdopodobnie więcej ”i obliczyć„ cóż, obliczamy, że całkowity impuls wynosi przynajmniej (coś) niutona * sekundę ”.
alternatywy
Powinno być możliwe ustalenie, czy akcelerometr wycina dane, czy nie. (Opisałem „nasycenie”, „liniowy” i „najazd” w kategoriach wzrostu - w przypadku niektórych zestawów danych bardziej zrozumiałe może być zwalnianie).
liniowy : jeśli zobaczysz, że przyspieszenie przyspiesza w górę do prawdopodobnych wartości, następnie kontynuuj wzrost do wyższych wartości (wartości powyżej 512 lub więcej ujemnych niż -512), to masz szczęście - akcelerometr nie wykonał żadnego przycinania, i masz ważne dane z całego zakresu.
kumulacja : jeśli zobaczysz, że przyspieszenie przyspiesza w górę do prawdopodobnych wartości, a tuż przed osiągnięciem +2 g, natychmiast przeskakuje do niefizycznej wartości bliskiej -2 g, a następnie kontynuuje przyspieszenie - być może przez zero, a następnie ponownie zbliżając się do + 2g i ponownie zeskakując w dół blisko -2 g - wtedy masz przewijanie. Jeśli masz szczęście, wartości zmieniają się niezwykle płynnie, umożliwiając wykrycie każdego najazdu i „rozpakowanie” tych wartości, aby odzyskać prawdziwą siłę g.
ps: nie krępuj się edytować Open Circuits: Rocket Computer .