Spisu treści:

Raspberry Pi - ADXL345 3-osiowy akcelerometr Python - samouczek: 4 kroki
Raspberry Pi - ADXL345 3-osiowy akcelerometr Python - samouczek: 4 kroki

Wideo: Raspberry Pi - ADXL345 3-osiowy akcelerometr Python - samouczek: 4 kroki

Wideo: Raspberry Pi - ADXL345 3-osiowy akcelerometr Python - samouczek: 4 kroki
Wideo: Гироскоп-Акселерометр MPU-6050. Первое знакомство 2024, Lipiec
Anonim

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°. Oto demonstracja z raspberry pi przy użyciu kodu Pythona.

Krok 1: Czego potrzebujesz.

Czego potrzebujesz..!!
Czego potrzebujesz..!!
Czego potrzebujesz..!!
Czego potrzebujesz..!!

1. Raspberry Pi

2. ADXL345

3. Kabel I²C

4. Osłona I²C dla Raspberry Pi

5. Kabel Ethernet

Krok 2: Połączenie:

Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie

Weź nakładkę I2C dla raspberry pi i delikatnie nałóż ją na piny gpio raspberry pi.

Następnie podłącz jeden koniec kabla I2C do czujnika ADXL345, a drugi koniec do ekranu I2C.

Podłącz również kabel Ethernet do pi lub możesz użyć modułu WiFi.

Połączenia prezentuje powyższy obrazek.

Krok 3: Kod:

Kod
Kod

Kod Pythona dla ADXL345 można pobrać z naszego repozytorium GitHub- Dcube Store

Oto link do tego samego:

github.com/DcubeTechVentures/ADXL345..

Użyliśmy biblioteki SMBus do kodu Pythona, kroki instalacji SMBus na raspberry pi są opisane tutaj:

pypi.python.org/pypi/smbus-cffi/0.5.1

Możesz również skopiować kod stąd, jest on podany w następujący sposób:

# Rozprowadzany z wolną licencją.

# Używaj go w dowolny sposób, z zyskiem lub za darmo, pod warunkiem, że pasuje do licencji powiązanych z nim utworów.

# ADXL345

# Ten kod jest przeznaczony do pracy z modułem ADXL345_I2CS I2C Mini dostępnym w sklepie Dcube Store.

importuj smbus

czas importu

# Uzyskaj magistralę I2C

autobus = smbus. SMBus(1)

# Adres ADXL345, 0x53(83)

# Wybierz rejestr szybkości pasma, 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

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: