Spisu treści:

Śledzenie ruchu za pomocą MPU-6000 i Raspberry Pi: 4 kroki
Śledzenie ruchu za pomocą MPU-6000 i Raspberry Pi: 4 kroki

Wideo: Śledzenie ruchu za pomocą MPU-6000 i Raspberry Pi: 4 kroki

Wideo: Śledzenie ruchu za pomocą MPU-6000 i Raspberry Pi: 4 kroki
Wideo: Jak skomunikować urządzenie modbus RTU ze SCADA? 2024, Listopad
Anonim
Image
Image

MPU-6000 to 6-osiowy czujnik śledzenia ruchu, który ma wbudowany 3-osiowy akcelerometr i 3-osiowy żyroskop. Ten czujnik jest w stanie skutecznie śledzić dokładne położenie i położenie obiektu w płaszczyźnie trójwymiarowej. Może być stosowany w systemach wymagających analizy położenia z najwyższą precyzją.

W tym samouczku zilustrowano interfejs modułu czujnika MPU-6000 z raspberry pi. Do odczytu wartości przyspieszenia i kąta obrotu 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:

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. MPU-6000

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:

MPU-6000 będzie pracował 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 do śledzenia ruchu:

Kod do śledzenia ruchu
Kod do śledzenia ruchu

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 MPU-6000 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 MPU-6000, 0x68(104)

# Wybierz rejestr konfiguracji żyroskopu, 0x1B(27)

# 0x18(24) Pełny zakres skali = 2000 dps

bus.write_byte_data (0x68, 0x1B, 0x18)

# Adres MPU-6000, 0x68(104)

# Wybierz rejestr konfiguracji akcelerometru, 0x1C(28)

# 0x18(24) Pełny zakres skali = +/-16g

bus.write_byte_data (0x68, 0x1C, 0x18)

# Adres MPU-6000, 0x68(104)

# Wybierz rejestr zarządzania energią1, 0x6B(107)

# 0x01(01) PLL z referencją xGyro

bus.write_byte_data (0x68, 0x6B, 0x01)

czas.sen(0.8)

# Adres MPU-6000, 0x68(104)

# Odczytaj dane z powrotem z 0x3B(59), 6 bajtów

# Akcelerometr Oś X MSB, Oś X LSB, Oś Y MSB, Oś Y LSB, Oś Z MSB, Oś Z LSB

dane = bus.read_i2c_block_data(0x68, 0x3B, 6)

# Konwertuj dane

xAccl = dane[0] * 256 + dane[1]

jeśli xAccl > 32767:

xAccl -= 65536

yAccl = dane[2] * 256 + dane[3]

jeśli yAccl > 32767:

yAccl -= 65536

zAccl = dane[4] * 256 + dane[5]

jeśli zAccl > 32767:

zZak -= 65536

# Adres MPU-6000, 0x68(104)

# Odczytaj dane z powrotem z 0x43(67), 6 bajtów

# Żyrometr Oś X MSB, Oś X LSB, Oś Y MSB, Oś Y LSB, Oś Z MSB, Oś Z LSB

dane = bus.read_i2c_block_data(0x68, 0x43, 6)

# Konwertuj dane

xGyro = dane[0] * 256 + dane[1]

jeśli xGyro > 32767:

xŻyroskop -= 65536

yGyro = dane[2] * 256 + dane[3]

jeśli żyroskop > 32767:

yGyro -= 65536

zGyro = dane[4] * 256 + dane[5]

jeśli żyroskop > 32767:

zGyro -= 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

print "Oś obrotu X: %d" %xGyro

print "Oś obrotu Y: %d" %yGyro

print "Oś obrotu Z: %d" %zGyro

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

$> Python MPU-6000.py gt; python MPU-6000.py

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

Krok 4: Aplikacje:

Aplikacje
Aplikacje

MPU-6000 to czujnik śledzenia ruchu, który znajduje zastosowanie w interfejsie ruchu smartfonów i tabletów. W smartfonach czujniki te mogą być wykorzystywane w takich aplikacjach, jak polecenia gestami do aplikacji i sterowania telefonem, ulepszone gry, rozszerzona rzeczywistość, przechwytywanie i przeglądanie zdjęć panoramicznych oraz nawigacja piesza i samochodowa. Technologia MotionTracking może przekształcić telefony i tablety w potężne, inteligentne urządzenia 3D, które mogą być wykorzystywane w różnych aplikacjach, od monitorowania zdrowia i kondycji po usługi oparte na lokalizacji.

Zalecana: