Spisu treści:
- Krok 1: Wymagany sprzęt:
- Krok 2: Podłączenie sprzętu:
- Krok 3: Kod do śledzenia ruchu:
- Krok 4: Aplikacje:
Wideo: Śledzenie ruchu za pomocą MPU-6000 i Raspberry Pi: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
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:
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:
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:
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:
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:
Śledzenie ruchu ludzkiego oka: 6 kroków
Śledzenie ruchu ludzkiego oka: Ten projekt ma na celu uchwycenie ruchu ludzkiego oka i wyświetlenie jego ruchu na zestawie świateł LED umieszczonych w kształcie oka. Ten rodzaj projektu może potencjalnie mieć wiele zastosowań w dziedzinie robotyki, a konkretnie huma
QeMotion - śledzenie ruchu dla każdego zestawu słuchawkowego!: 5 kroków (ze zdjęciami)
QeMotion - śledzenie ruchu dla każdego zestawu słuchawkowego!: Omówienie: To urządzenie umożliwia wykorzystanie ruchu głowy do wyzwalania zdarzeń w praktycznie każdej grze wideo. Działa poprzez śledzenie ruchu głowy (lub zestawu słuchawkowego) i wyzwalanie naciśnięć klawiatury dla określonych ruchów. Więc twój komp
Śledzenie zmian przyspieszenia za pomocą Raspberry Pi i MMA7455 za pomocą Pythona: 6 kroków
Śledzenie zmian akceleracji za pomocą Raspberry Pi i MMA7455 przy użyciu Pythona: nie potknąłem się, testowałem grawitację. Nadal działa… Reprezentacja przyspieszającego wahadłowca kosmicznego wyjaśniała, że zegar w najwyższym punkcie wahadłowca wybierałby szybszy niż zegar u podstawy z powodu grawitacyjnego rozszerzania się czasu. Trochę
Śledzenie ruchu oka za pomocą czujnika podczerwieni: 5 kroków
Śledzenie ruchu oczu za pomocą czujnika podczerwieni: Użyłem czujnika podczerwieni do wykrywania ruchów oczu i sterowania diodą LED. Zrobiłem gałki oczne za pomocą taśmy LED NeoPixel
Śledzenie ruchu Tfcd 3D poprzez wykrywanie pojemnościowe i wyjście LED: 6 kroków (ze zdjęciami)
Śledzenie ruchu Tfcd 3D poprzez wykrywanie pojemnościowe i wyjście LED: W tej instrukcji wyjaśniono, w jaki sposób można śledzić ruch ręki w przestrzeni 3D przy użyciu zasady wykrywania pojemnościowego. Zmieniając odległość między naładowaną folią aluminiową a ręką, pojemność kondensatora będzie się zmieniać