Съдържание:

Проследяване на движение с помощта на MPU-6000 и Raspberry Pi: 4 стъпки
Проследяване на движение с помощта на MPU-6000 и Raspberry Pi: 4 стъпки

Видео: Проследяване на движение с помощта на MPU-6000 и Raspberry Pi: 4 стъпки

Видео: Проследяване на движение с помощта на MPU-6000 и Raspberry Pi: 4 стъпки
Видео: ASECAM АНТИВАНДАЛЬНАЯ КАМЕРА 5-ЗУМ С ОПРЕДЕЛЕНИЕМ И СЛЕЖЕНИЕМ ЗА ЛЮДЬМИ 2024, Юли
Anonim
Image
Image

MPU-6000 е 6-осен сензор за проследяване на движение, който има 3-осен акселерометър и 3-осен жироскоп, вграден в него. Този сензор е в състояние ефективно да проследява точното положение и местоположението на обект в триизмерната равнина. Може да се използва в системи, които изискват анализ на позицията с най -висока точност.

В този урок е илюстрирано взаимодействието на сензорния модул MPU-6000 с малиново пи. За да прочетете стойностите на ускорението и ъгъла на въртене, използвахме малинов pi с адаптер I2c. Този адаптер I2C прави връзката с сензорния модул лесна и по -надеждна.

Стъпка 1: Изисква се хардуер:

Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. MPU-6000

2. Малина Пи

3. I2C кабел

4. I2C щит за малиново пи

5. Ethernet кабел

Стъпка 2: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за свързване на хардуер основно обяснява необходимите кабелни връзки между сензора и малиновото пи. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

MPU-6000 ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици.

Всичко, от което се нуждаете, са четири проводника! Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

Тези връзки са показани на снимките по -горе.

Стъпка 3: Код за проследяване на движение:

Код за проследяване на движение
Код за проследяване на движение

Предимството на използването на малинов pi е, че ви осигурява гъвкавостта на езика за програмиране, на който искате да програмирате платката, за да свържете интерфейса на сензора с нея. Използвайки това предимство на тази дъска, ние демонстрираме тук нейното програмиране в python. Python е един от най -лесните езици за програмиране с най -лесен синтаксис. Кодът на python за MPU-6000 може да бъде изтеглен от нашата GitHub общност, която е Dcube Store

Освен за улеснение на потребителите, ние обясняваме кода и тук:

Като първа стъпка на кодиране трябва да изтеглите библиотеката SMBus в случай на python, тъй като тази библиотека поддържа функциите, използвани в кода. Така че, за да изтеглите библиотеката, можете да посетите следната връзка:

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

Можете също да копирате работния код от тук:

внос smbus

време за импортиране

# Вземете I2C шина = smbus. SMBus (1)

# MPU-6000 адрес, 0x68 (104)

# Изберете регистър за конфигурация на жироскоп, 0x1B (27)

# 0x18 (24) Пълен мащаб = 2000 dps

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

# MPU-6000 адрес, 0x68 (104)

# Изберете регистър за конфигурация на акселерометър, 0x1C (28)

# 0x18 (24) Пълен мащаб = +/- 16g

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

# MPU-6000 адрес, 0x68 (104)

# Изберете регистър за управление на захранването1, 0x6B (107)

# 0x01 (01) PLL с xGyro справка

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

time.sleep (0.8)

# MPU-6000 адрес, 0x68 (104)

# Прочетете данните обратно от 0x3B (59), 6 байта

# Акселерометър X-ос MSB, X-ос LSB, Y-ос MSB, Y-ос LSB, Z-ос MSB, Z-ос LSB

данни = bus.read_i2c_block_data (0x68, 0x3B, 6)

# Конвертирайте данните

xAccl = данни [0] * 256 + данни [1]

ако xAccl> 32767:

xAccl -= 65536

yAccl = данни [2] * 256 + данни [3]

ако yAccl> 32767:

yAccl -= 65536

zAccl = данни [4] * 256 + данни [5]

ако zAccl> 32767:

zAccl -= 65536

# MPU-6000 адрес, 0x68 (104)

# Прочетете данните обратно от 0x43 (67), 6 байта

# Гирометър X-ос MSB, X-ос LSB, Y-ос MSB, Y-ос LSB, Z-ос MSB, Z-ос LSB

данни = bus.read_i2c_block_data (0x68, 0x43, 6)

# Конвертирайте данните

xGyro = данни [0] * 256 + данни [1]

ако xGyro> 32767:

xGyro -= 65536

yGyro = данни [2] * 256 + данни [3]

ако yGyro> 32767:

yGyro -= 65536

zGyro = данни [4] * 256 + данни [5]

ако zGyro> 32767:

zGyro -= 65536

# Извеждане на данни на екрана

отпечатайте "Ускорение по ос X: %d" %xAccl

отпечатайте "Ускорение по оста Y: %d" %yAccl

отпечатайте "Ускорение по ос Z: %d" %zAccl

отпечатайте "X-ос на въртене: %d" %xGyro

отпечатайте "Y-ос на въртене: %d" %yGyro

отпечатайте "Z-ос на въртене: %d" %zGyro

Кодът се изпълнява със следната команда:

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

Изходът на сензора е показан на горната снимка за справка на потребителя.

Стъпка 4: Приложения:

Приложения
Приложения

MPU-6000 е сензор за проследяване на движение, който намира своето приложение в интерфейса за движение на смартфони и таблети. В смартфоните тези сензори могат да се използват в приложения като команди за жестове за приложения и управление на телефона, подобрени игри, разширена реалност, панорамно заснемане и гледане на снимки и навигация на пешеходци и превозни средства. Технологията MotionTracking може да преобразува телефони и таблети в мощни 3D интелигентни устройства, които могат да се използват в приложения, вариращи от мониторинг на здравето и годността до услуги, базирани на местоположението.

Препоръчано: