Spisu treści:

Pomiar przyspieszenia za pomocą H3LIS331DL i Raspberry Pi: 4 kroki
Pomiar przyspieszenia za pomocą H3LIS331DL i Raspberry Pi: 4 kroki

Wideo: Pomiar przyspieszenia za pomocą H3LIS331DL i Raspberry Pi: 4 kroki

Wideo: Pomiar przyspieszenia za pomocą H3LIS331DL i Raspberry Pi: 4 kroki
Wideo: Moduł do Raspberry PI KAmod i nettemp 2024, Listopad
Anonim
Image
Image

H3LIS331DL to 3-osiowy akcelerometr liniowy 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 z wyjściowymi szybkościami danych od 0,5 Hz do 1 kHz. H3LIS331DL gwarantuje działanie w rozszerzonym zakresie temperatur od -40 °C do +85 °C.

W tym samouczku zademonstrujemy interfejs H3LIS331DL z Raspberry Pi, używając Pythona jako języka programowania.

Krok 1: Wymagany sprzęt:

Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt

Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:

1. H3LIS331DL

2. Raspberry Pi

3. Kabel I2C

4. Tarcza I2C dla malinowego pi

5. Kabel Ethernet

Krok 2: Podłączenie sprzętu:

Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
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:

H3LIS331DL 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 Pythona do pomiaru przyspieszenia:

Kod Pythona do pomiaru przyspieszenia
Kod Pythona do 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. Python jest jednym z najłatwiejszych języków programowania o najprostszej składni. Kod Pythona dla H3LIS331DL można pobrać z naszej społeczności github, czyli DCUBE Store.

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 stąd:

importuj smbus

czas importu

# Uzyskaj magistralę I2C = smbus. SMBus(1)

# Adres H3LIS331DL, 0x18(24)

# Wybierz rejestr kontrolny 1, 0x20(32)

# 0x27(39) Tryb włączenia, szybkość transmisji danych = 50 Hz# X, Y, oś Z włączona

bus.write_byte_data (0x18, 0x20, 0x27)

# Adres H3LIS331DL, 0x18(24)# Wybierz rejestr kontrolny 4, 0x23(35)

# 0x00(00) Ciągła aktualizacja, wybór pełnej skali = +/-100g

bus.write_byte_data (0x18, 0x23, 0x00)

czas.sen(0.5)

# Adres H3LIS331DL, 0x18(24)

# Odczytaj dane z powrotem z 0x28(40), 2 bajty

# Oś X LSB, Oś X MSB

data0 = bus.read_byte_data(0x18, 0x28)

dane1 = magistrala.odczyt_bajtów_danych (0x18, 0x29)

# Konwertuj dataxAccl = data1 * 256 + data0

jeśli xAccl > 32767:

xAccl -= 65536

# Adres H3LIS331DL, 0x18(24)

# Odczytaj dane z powrotem z 0x2A(42), 2 bajty

# Oś Y LSB, Oś Y MSB

data0 = bus.read_byte_data(0x18, 0x2A)

dane1 = magistrala.odczyt_bajtów_danych (0x18, 0x2B)

# Konwertuj dane

yAccl = dane1 * 256 + dane0

jeśli yAccl > 32767:

yAccl -= 65536

# Adres H3LIS331DL, 0x18(24)

# Odczytaj dane z 0x2C(44), 2 bajty

# Oś Z LSB, Oś Z MSB

data0 = bus.read_byte_data(0x18, 0x2C)

dane1 = magistrala.odczyt_bajtów_danych (0x18, 0x2D)

# Konwertuj dane

zAccl = dane1 * 256 + dane0

jeśli zAccl > 32767:

zZak -= 65536

# 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

Kod jest wykonywany za pomocą następującego polecenia:

$> Python H3LIS331DL.py gt; python H3LIS331DL.py

Wyjście czujnika pokazano na powyższym obrazku w celach informacyjnych dla użytkownika.

Krok 4: Aplikacje:

Aplikacje
Aplikacje

Akcelerometry, takie jak H3LIS331DL, znajdują zastosowanie głównie w grach i przełączaniu profili wyświetlania. Ten moduł czujnika jest również wykorzystywany w zaawansowanym systemie zarządzania energią dla aplikacji mobilnych. H3LIS331DL to trójosiowy cyfrowy czujnik przyspieszenia, który jest wbudowany w inteligentny kontroler przerwań wyzwalany ruchem.

Zalecana: