RTV forum PL | NewsGroups PL

Usterki w pomiarach przyspieszenia z ADXL345 spiętego z Arduino Pro Mini

ADXL345

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Usterki w pomiarach przyspieszenia z ADXL345 spiętego z Arduino Pro Mini

slawek
Guest

Fri Jun 17, 2016 5:39 am   



ADXL345 spięty przez SPI z Arduino Pro Mini. Ładnie zwraca DEVID.
Transmisja działa w obie strony. Ale...

1. Oś z ma gigantyczny odczyt nawet gdy jest zorientowana poziomo.
Plus 70 m/s^2.

2. Dla każdej osi: czułość nie wynosi ani 0.004 ani 0.0039. Nota bene
w ref. sheet raz podają taką, a raz taką.

3. Ok, da się wykryć poruszenie, da się ustalić zgrubnie orientację.
Ale do dokładnych pomiarów przyspieszeń to IMO się nie nadaje.

Pytanie: czy ADXL345 tak ma, czy może trafił mi się wadliwy
egzemplarz? A może coś źle robię? Ma ktoś pozytywne doświadczenia z
tym akcelerometrem?

TIA

Waldemar
Guest

Fri Jun 17, 2016 8:46 am   



Am 17.06.2016 um 07:39 schrieb slawek:
Quote:
ADXL345 spięty przez SPI z Arduino Pro Mini. Ładnie zwraca DEVID.
Transmisja działa w obie strony. Ale...

1. Oś z ma gigantyczny odczyt nawet gdy jest zorientowana poziomo. Plus
70 m/s^2.

2. Dla każdej osi: czułość nie wynosi ani 0.004 ani 0.0039. Nota bene w
ref. sheet raz podają taką, a raz taką.

3. Ok, da się wykryć poruszenie, da się ustalić zgrubnie orientację. Ale
do dokładnych pomiarów przyspieszeń to IMO się nie nadaje.

Pytanie: czy ADXL345 tak ma, czy może trafił mi się wadliwy egzemplarz?
A może coś źle robię? Ma ktoś pozytywne doświadczenia z tym akcelerometrem?

A jaką rozdzielczość ustawiłeś?

Waldek

slawek
Guest

Fri Jun 17, 2016 9:34 am   



On Fri, 17 Jun 2016 10:46:45 +0200, Waldemar
<waldemar@zedat.fu-berlin.de> wrote:
Quote:
A jaką rozdzielczość ustawiłeś?

Konfiguracja 0x8|0x3 czyli FULL_res 13 bitów, ułożone w prawo, zakres
+-16g. Tempo 100 pomiarów na sekundę, SPI 4MHz, MCU 8MHz i 3.3V.
Zasilanie modułu ADXL345 5V, moduł toleruje od 3 do 5V, bo ma
stabilizator na swoim PCB.

Dane czytane przez hardware'owe SPI Atmega328, biblioteka SPI, w
porządku little-endian jako sześć bajtów pod adres tablicy z trzema
int16_t. Atmega jest little-endian więc wszystko trafia gdzie trzeba.

Nie chodzi o to, że nie czyta. Ale że offset w osi z jest nawet gdy
uruchamiane jest to z poziomo ustawioną osią z. I że jak np. ustawić
ładnie offset w programie by było 9.81 dla osi x skierowanej w gorę,
to dla osi pionowo w dół jest 11.44 m/s^2.

Waldemar
Guest

Fri Jun 17, 2016 10:01 am   



Am 17.06.2016 um 11:34 schrieb slawek:
Quote:
On Fri, 17 Jun 2016 10:46:45 +0200, Waldemar
waldemar@zedat.fu-berlin.de> wrote:
A jaką rozdzielczość ustawiłeś?

Konfiguracja 0x8|0x3 czyli FULL_res 13 bitów, ułożone w prawo, zakres
+-16g. Tempo 100 pomiarów na sekundę, SPI 4MHz, MCU 8MHz i 3.3V.
Zasilanie modułu ADXL345 5V, moduł toleruje od 3 do 5V, bo ma
stabilizator na swoim PCB.
Dane czytane przez hardware'owe SPI Atmega328, biblioteka SPI, w
porządku little-endian jako sześć bajtów pod adres tablicy z trzema
int16_t. Atmega jest little-endian więc wszystko trafia gdzie trzeba.

Nie chodzi o to, że nie czyta. Ale że offset w osi z jest nawet gdy
uruchamiane jest to z poziomo ustawioną osią z. I że jak np. ustawić
ładnie offset w programie by było 9.81 dla osi x skierowanej w gorę, to
dla osi pionowo w dół jest 11.44 m/s^2.

Bawiłem się ADXLami dość dawno temu, ale były łatwe w obsłudze. Jednak
miały one duży offset, który najpierw trzeba zdjąć.Robiłem trzypunktowe
kalibracje. Wzmocnienie (znaczy incr/g) też nie jest jednakowe dla
każdej osi. Myślałem, że mam tu na kompie jakieś stare kalibracje, ale
niestety są na innym, ok. 30km stąd :-(

Kalibracje robiłem +1g, -1g, 0g dla każdej osi. Upierdliwe, ale dość
dobrze trzymało, nawet po kilku latach.

Waldek

Waldemar
Guest

Fri Jun 17, 2016 10:04 am   



Am 17.06.2016 um 12:01 schrieb Waldemar:
Quote:
Am 17.06.2016 um 11:34 schrieb slawek:
On Fri, 17 Jun 2016 10:46:45 +0200, Waldemar
waldemar@zedat.fu-berlin.de> wrote:
A jaką rozdzielczość ustawiłeś?

Konfiguracja 0x8|0x3 czyli FULL_res 13 bitów, ułożone w prawo, zakres
+-16g. Tempo 100 pomiarów na sekundę, SPI 4MHz, MCU 8MHz i 3.3V.
Zasilanie modułu ADXL345 5V, moduł toleruje od 3 do 5V, bo ma
stabilizator na swoim PCB.
Dane czytane przez hardware'owe SPI Atmega328, biblioteka SPI, w
porządku little-endian jako sześć bajtów pod adres tablicy z trzema
int16_t. Atmega jest little-endian więc wszystko trafia gdzie trzeba.

Nie chodzi o to, że nie czyta. Ale że offset w osi z jest nawet gdy
uruchamiane jest to z poziomo ustawioną osią z. I że jak np. ustawić
ładnie offset w programie by było 9.81 dla osi x skierowanej w gorę, to
dla osi pionowo w dół jest 11.44 m/s^2.

Bawiłem się ADXLami dość dawno temu, ale były łatwe w obsłudze. Jednak
miały one duży offset, który najpierw trzeba zdjąć.Robiłem trzypunktowe
kalibracje. Wzmocnienie (znaczy incr/g) też nie jest jednakowe dla
każdej osi. Myślałem, że mam tu na kompie jakieś stare kalibracje, ale
niestety są na innym, ok. 30km stąd :-(

Kalibracje robiłem +1g, -1g, 0g dla każdej osi. Upierdliwe, ale dość
dobrze trzymało, nawet po kilku latach.
Jeszcze jedno. w FULL_res się nie bawiłem. OIDP miałem 12 bitów.

Podłączone toto było pod Arduino, ale program pisał kolega.

Waldek

slawek
Guest

Fri Jun 17, 2016 11:49 am   



On Fri, 17 Jun 2016 12:01:24 +0200, Waldemar
<waldemar@zedat.fu-berlin.de> wrote:
Quote:
Kalibracje robiłem +1g, -1g, 0g dla każdej osi. Upierdliwe, ale dość

No cóż, wygląda na to że one tak mają. Spróbuję jeszcze autotestu.
BTW, nota katalogowa jest umiarkowanie bełkotliwa, bardzo też nie
lubią jednostek SI.

Trzeba będzie też sprawdzić inny egzemplarz.

Wic w tym, że w zasadzie składową z w spoczynku dokładniej daje się
obliczyć niż zmierzyć.

Waldemar
Guest

Fri Jun 17, 2016 12:21 pm   



Am 17.06.2016 um 13:49 schrieb slawek:
Quote:
On Fri, 17 Jun 2016 12:01:24 +0200, Waldemar
waldemar@zedat.fu-berlin.de> wrote:
Kalibracje robiłem +1g, -1g, 0g dla każdej osi. Upierdliwe, ale dość

No cóż, wygląda na to że one tak mają. Spróbuję jeszcze autotestu. BTW,
nota katalogowa jest umiarkowanie bełkotliwa, bardzo też nie lubią
jednostek SI.

Trzeba będzie też sprawdzić inny egzemplarz.

Wic w tym, że w zasadzie składową z w spoczynku dokładniej daje się
obliczyć niż zmierzyć.

Naszą płytkę miałem przykręconą do klocka (sześcian z "dziurą") i po
prostu kładłem ten sześcian na wypoziomowaną płytę stalową i spisywałem
wartości x, y, z. Dostawałem po jednej wartości +- 1g dla x, y, z i po
3x zero dla x, y, z.

Waldek

slawek
Guest

Fri Jun 17, 2016 2:10 pm   



On Fri, 17 Jun 2016 14:21:46 +0200, Waldemar
<waldemar@zedat.fu-berlin.de> wrote:
Quote:
wartości x, y, z. Dostawałem po jednej wartości +- 1g dla x, y, z i
po


A jak z pomiarem gdy sześcian miał leżeć na tym boku co sam
akcelerometr? ;)

Wydaje się, że rejestry ofsx itd. ADXL345 to nie offset w sensie
numerycznym, ale jakieś napięcie przykladane gdzieś. Wrażliwość jest
nieliniowa.

Waldemar
Guest

Fri Jun 17, 2016 2:39 pm   



Am 17.06.2016 um 16:10 schrieb slawek:
Quote:
On Fri, 17 Jun 2016 14:21:46 +0200, Waldemar
waldemar@zedat.fu-berlin.de> wrote:
wartości x, y, z. Dostawałem po jednej wartości +- 1g dla x, y, z i
po

A jak z pomiarem gdy sześcian miał leżeć na tym boku co sam
akcelerometr? Wink
Ten sześcian miał dziurę na płytkę. Dokładniej podwójne U z krawędziami

i miejscem do przykręcenia płytki. Niestety nie mam już dostępu do
hardware, bo bym zdjęcie podesłał.

Quote:
Wydaje się, że rejestry ofsx itd. ADXL345 to nie offset w sensie
numerycznym, ale jakieś napięcie przykladane gdzieś. Wrażliwość jest
nieliniowa.

Nie, arytmetycznie dodaje wartość w rejestrze. Osobiście tego rejestru
nie używałem, mieliśmy zewnętrzną macierz transformacji.

Spadam na łykend, będę zaś w poniedziałek.

Waldek

slawek
Guest

Fri Jun 17, 2016 6:11 pm   



On Fri, 17 Jun 2016 16:39:57 +0200, Waldemar
<waldemar@zedat.fu-berlin.de> wrote:
Quote:
Nie, arytmetycznie dodaje wartość w rejestrze.

W dokumentacji jest że offset jest w specyficznych jednostkach.

Nieważne.

Wygląda na to, że coś jest nie tak z osią z. X i y też trochę
mogłyby, ale nie jest źle. Potrzebne to do inklininometru, wystarczy
ax, ay i znane g.

Swoją drogą to szacun dla błędników.

elektroda NewsGroups Forum Index - Elektronika Polska - Usterki w pomiarach przyspieszenia z ADXL345 spiętego z Arduino Pro Mini

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map