Spisu treści:
- Krok 1: Wymagany sprzęt:
- Krok 2: Podłączenie sprzętu:
- Krok 3: Kod pomiaru przyspieszenia:
- Krok 4: Aplikacje:
Wideo: Pomiar przyspieszenia za pomocą ADXL345 i Raspberry Pi: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
ADXL345 to mały, cienki, bardzo energooszczędny, 3-osiowy akcelerometr z pomiarem o wysokiej rozdzielczości (13-bitów) do ±16 g. Cyfrowe dane wyjściowe są sformatowane jako 16-bitowe uzupełnienie do dwójek i są dostępne przez interfejs cyfrowy I2 C. Mierzy statyczne przyspieszenie grawitacyjne w aplikacjach z wykrywaniem przechyłu, a także dynamiczne przyspieszenie wynikające z ruchu lub wstrząsu. Jego wysoka rozdzielczość (3,9 mg/LSB) umożliwia pomiar zmian nachylenia mniejszych niż 1,0°.
W tym samouczku zademonstrowano interfejs modułu czujnika ADXL345 z raspberry pi, a także zilustrowano jego programowanie przy użyciu języka python. Aby odczytać wartości przyspieszenia na wszystkich 3 osiach, użyliśmy raspberry pi z adapterem I2C. Ten adapter I2C sprawia, że połączenie z modułem czujnika jest łatwe i bardziej niezawodne.
Krok 1: Wymagany sprzęt:
Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:
1. ADXL345
2. Raspberry Pi
3. Kabel I2C
4. Tarcza I2C dla malinowego pi
5. Kabel Ethernet
Krok 2: Podłączenie sprzętu:
Sekcja dotycząca podłączania sprzętu zasadniczo wyjaśnia połączenia okablowania wymagane między czujnikiem a raspberry pi. Zapewnienie prawidłowych połączeń jest podstawową koniecznością podczas pracy na dowolnym systemie o pożądanej mocy. Tak więc wymagane połączenia są następujące:
ADXL345 będzie działał przez I2C. Oto przykładowy schemat okablowania, pokazujący, jak okablować każdy interfejs czujnika.
Po wyjęciu z pudełka, płyta jest skonfigurowana do interfejsu I2C, dlatego zalecamy korzystanie z tego podłączenia, jeśli jesteś agnostykiem.
Wszystko czego potrzebujesz to cztery przewody! Wymagane są tylko cztery połączenia Vcc, Gnd, SCL i SDA, które są połączone za pomocą kabla I2C.
Połączenia te są pokazane na powyższych zdjęciach.
Krok 3: Kod pomiaru przyspieszenia:
Zaletą korzystania z raspberry pi jest to, że zapewnia elastyczność języka programowania, w którym chcesz zaprogramować płytkę w celu połączenia z nią czujnika. Wykorzystując tę zaletę tej płyty, demonstrujemy tutaj jej programowanie w pytonie. Kod Pythona dla ADXL345 można pobrać z naszej społeczności github, czyli Control Everything Community.
Oprócz ułatwienia użytkownikom wyjaśniamy również kod tutaj:
Jako pierwszy krok kodowania musisz pobrać bibliotekę smbus w przypadku pythona, ponieważ ta biblioteka obsługuje funkcje używane w kodzie. Aby pobrać bibliotekę, możesz odwiedzić poniższy link:
pypi.python.org/pypi/smbus-cffi/0.5.1
Możesz również skopiować działający kod Pythona dla tego czujnika:
importuj smbus
czas importu
# Uzyskaj magistralę I2C = smbus. SMBus(1)
# Adres ADXL345, 0x53(83)
# Wybierz rejestr szybkości transmisji, 0x2C(44)
# 0x0A(10) Tryb normalny, szybkość transmisji danych wyjściowych = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# Adres ADXL345, 0x53(83)
# Wybierz rejestr kontroli mocy, 0x2D(45)
# 0x08(08) Wyłączenie automatycznego uśpienia
bus.write_byte_data (0x53, 0x2D, 0x08)
# Adres ADXL345, 0x53(83)
# Wybierz rejestr formatu danych, 0x31(49)
# 0x08(08) Autotest wyłączony, interfejs 4-przewodowy
# Pełna rozdzielczość, zakres = +/-2g
bus.write_byte_data (0x53, 0x31, 0x08)
czas.sen(0.5)
# Adres ADXL345, 0x53(83)
# Odczytaj dane z powrotem z 0x32(50), 2 bajty
# Oś X LSB, Oś X MSB
dane0 = magistrala.odczyt_bajtów_danych (0x53, 0x32)
dane1 = magistrala.odczyt_bajtów_danych (0x53, 0x33)
# Konwertuj dane na 10 bitów
xAccl = ((dane1 i 0x03) * 256) + dane0
jeśli xAccl > 511:
xAccl -= 1024
# Adres ADXL345, 0x53(83)
# Odczytaj dane z powrotem z 0x34(52), 2 bajty
# Oś Y LSB, Oś Y MSB
dane0 = magistrala.odczyt_bajtów_danych (0x53, 0x34)
dane1 = magistrala.odczyt_bajtów_danych (0x53, 0x35)
# Konwertuj dane na 10 bitów
yAccl = ((dane1 i 0x03) * 256) + dane0
jeśli yAccl > 511:
yAccl -= 1024
# Adres ADXL345, 0x53(83)
# Odczytaj dane z powrotem z 0x36(54), 2 bajty
# Oś Z LSB, Oś Z MSB
data0 = magistrala.odczyt_bajtu_danych (0x53, 0x36)
dane1 = magistrala.odczyt_bajtów_danych (0x53, 0x37)
# Konwertuj dane na 10 bitów
zAccl = ((dane1 i 0x03) * 256) + dane0
jeśli zAccl > 511:
zZak -= 1024
# Dane wyjściowe na ekran
print "Przyspieszenie w osi X: %d" %xAccl
print "Przyspieszenie w osi Y: %d" %yAccl
print "Przyspieszenie w osi Z: %d" %zAccl
Wspomniana poniżej część kodu zawiera biblioteki wymagane do poprawnego wykonania kodów Pythona.
czas importu smbusimport
Kod można wykonać, wpisując w wierszu polecenia poniższe polecenie.
$> Python ADXL345.py
Wyjście czujnika pokazano również na powyższym obrazku w celach informacyjnych dla użytkownika.
Krok 4: Aplikacje:
ADXL345 jest małym, cienkim, 3-osiowym akcelerometrem o bardzo niskim poborze mocy, który może być stosowany w telefonach, oprzyrządowaniu medycznym itp. Jego zastosowanie obejmuje również urządzenia do gier i wskazujące, oprzyrządowanie przemysłowe, osobiste urządzenia nawigacyjne i ochronę dysku twardego (HDD).
Zalecana:
Pomiar przyspieszenia za pomocą ADXL345 i Particle Photon: 4 kroki
Pomiar przyspieszenia przy użyciu ADXL345 i Particle Photon: ADXL345 to mały, cienki, bardzo energooszczędny, 3-osiowy akcelerometr z pomiarem o wysokiej rozdzielczości (13-bitów) do ±16 g. Cyfrowe dane wyjściowe są sformatowane jako 16-bitowe uzupełnienie do dwójek i są dostępne przez interfejs cyfrowy I2 C. Mierzy
Pomiar przyspieszenia za pomocą H3LIS331DL i Arduino Nano: 4 kroki
Pomiar przyspieszenia wykorzystujący H3LIS331DL i Arduino Nano: H3LIS331DL, to 3-osiowy liniowy akcelerometr o małej mocy i wysokiej wydajności należący do rodziny „nano”, z cyfrowym interfejsem szeregowym I²C. H3LIS331DL ma wybieraną przez użytkownika pełną skalę ±100g/±200g/±400g i jest w stanie mierzyć przyspieszenia w
Pomiar przyspieszenia za pomocą H3LIS331DL i Raspberry Pi: 4 kroki
Pomiar przyspieszenia przy użyciu H3LIS331DL i Raspberry Pi: H3LIS331DL, to 3-osiowy liniowy akcelerometr o małej mocy i wysokiej wydajności należący do rodziny „nano”, z cyfrowym interfejsem szeregowym I²C. H3LIS331DL ma wybieraną przez użytkownika pełną skalę ±100g/±200g/±400g i jest w stanie mierzyć przyspieszenia w
Pomiar przyspieszenia za pomocą ADXL345 i Arduino Nano: 4 kroki
Pomiar przyspieszenia przy użyciu ADXL345 i Arduino Nano: ADXL345 to mały, cienki, bardzo energooszczędny, 3-osiowy akcelerometr z pomiarem o wysokiej rozdzielczości (13-bitów) do ±16 g. Cyfrowe dane wyjściowe są sformatowane jako 16-bitowe uzupełnienie do dwójek i są dostępne przez interfejs cyfrowy I2 C. Mierzy
Pomiar przyspieszenia za pomocą BMA250 i Raspberry Pi: 4 kroki
Pomiar przyspieszenia przy użyciu BMA250 i Raspberry Pi: BMA250 to mały, cienki, bardzo energooszczędny, 3-osiowy akcelerometr z pomiarem o wysokiej rozdzielczości (13-bitów) do ±16 g. Cyfrowe dane wyjściowe są sformatowane jako 16-bitowe uzupełnienie do dwójek i są dostępne przez interfejs cyfrowy I2C. Mierzy statykę