Мазмұны:

MPU-6000 және Raspberry Pi көмегімен қозғалысты бақылау: 4 қадам
MPU-6000 және Raspberry Pi көмегімен қозғалысты бақылау: 4 қадам

Бейне: MPU-6000 және Raspberry Pi көмегімен қозғалысты бақылау: 4 қадам

Бейне: MPU-6000 және Raspberry Pi көмегімен қозғалысты бақылау: 4 қадам
Бейне: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Қараша
Anonim
Image
Image

MPU-6000-6 осьтік қозғалысты бақылау сенсоры, оның ішінде 3 осьті акселерометр мен 3 осьті гироскоп бар. Бұл сенсор үш өлшемді жазықтықта объектінің нақты орналасуы мен орнын тиімді бақылауға қабілетті. Оны жоғары дәлдіктегі позициялық талдауды қажет ететін жүйелерде қолдануға болады.

Бұл оқулықта MPU-6000 сенсорлық модулінің таңқурай пи бар интерфейсі суреттелген. Жылдамдық пен айналу бұрышының мәндерін оқу үшін I2c адаптері бар таңқурай pi қолдандық, бұл I2C адаптері сенсор модуліне қосылуды жеңіл әрі сенімді етеді.

1 -қадам: Қажетті жабдық:

Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық

Мақсатқа жету үшін бізге қажет материалдар келесі аппараттық компоненттерді қамтиды:

1. MPU-6000

2. Raspberry Pi

3. I2C кабелі

4. Таңқурайға арналған I2C қалқаны

5. Ethernet кабелі

2 -қадам: Жабдықты қосу:

Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу

Аппаратты қосу бөлімі негізінен сенсор мен таңқурай пи арасындағы қажетті сымдық қосылыстарды түсіндіреді. Қажетті шығыс үшін кез келген жүйеде жұмыс істеу кезінде дұрыс қосылуды қамтамасыз ету - бұл негізгі қажеттілік. Сонымен, қажетті байланыстар келесідей:

MPU-6000 I2C режимінде жұмыс істейді. Датчиктің әр интерфейсін қалай қосуға болатынын көрсететін электр схемасының мысалы.

Қаптамадан тыс тақта I2C интерфейсі үшін конфигурацияланған, сондықтан егер сіз агностикалық болмасаңыз, осы қосылымды пайдалануды ұсынамыз.

Сізге тек төрт сым қажет! Vcc, Gnd, SCL және SDA түйреуіштеріне тек төрт қосылым қажет және олар I2C кабелінің көмегімен қосылған.

Бұл байланыстар жоғарыдағы суреттерде көрсетілген.

3 -қадам: Қозғалысты бақылау коды:

Қозғалысты бақылау коды
Қозғалысты бақылау коды

Таңқурай пиін қолданудың артықшылығы - бұл сенсорды интерфейске қосу үшін тақтаны бағдарламалайтын тілдің икемділігін қамтамасыз етеді. Бұл тақтаның артықшылығын пайдаланып, біз мұнда оның питонда бағдарламалануын көрсетеміз. Python - синтаксисі қарапайым бағдарламалау тілдерінің бірі. MPU-6000 үшін питон кодын біздің GitHub қауымдастығынан жүктеуге болады, бұл Dcube Store

Пайдаланушыларға ыңғайлы болу үшін біз кодты осында түсіндіреміз:

Кодтаудың бірінші қадамы ретінде питон жағдайында SMBus кітапханасын жүктеу қажет, себебі бұл кітапхана кодта қолданылатын функцияларды қолдайды. Сонымен, кітапхананы жүктеу үшін келесі сілтемеге кіруге болады:

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

Жұмыс кодын мына жерден көшіруге болады:

smbus импорттау

импорт уақыты

# I2C автобусын алыңыз = smbus. SMBus (1)

# MPU-6000 мекенжайы, 0x68 (104)

# Гироскоп конфигурациясының регистрін таңдаңыз, 0x1B (27)

# 0x18 (24) Толық ауқымды диапазон = 2000 д / с

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)

XGyro сілтемесі бар # 0x01 (01) PLL

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

уақыт.ұйық (0,8)

# MPU-6000 мекенжайы, 0x68 (104)

# Деректерді 0x3B (59), 6 байттан кері оқыңыз

# Акселерометр X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis 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-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

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

басып шығару «Айналудың осі: %d» %xGyro

басып шығару «Y-осінің айналу осі: %d» %yGyro

басып шығару «Z-айналу осі: %d» %zGyro

Код келесі команданың көмегімен орындалады:

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

Сенсордың шығысы пайдаланушыға сілтеме ретінде жоғарыдағы суретте көрсетілген.

4 -қадам: Өтініштер:

Қолданбалар
Қолданбалар

MPU-6000-бұл қозғалысты бақылау сенсоры, ол смартфондар мен планшеттердің қозғалыс интерфейсінде қолданылады. Смартфондарда бұл сенсорларды қосымшаларға және телефонды басқаруға арналған қимыл командалары, жақсартылған ойын, кеңейтілген шындық, панорамалық фото түсіру мен қарау, жаяу жүргіншілер мен көліктерде навигация сияқты қосымшаларда қолдануға болады. MotionTracking технологиясы телефондар мен планшеттерді денсаулық пен фитнес мониторингісінен орналасуға негізделген қызметтерге дейінгі қосымшаларда қолдануға болатын қуатты 3D интеллектуалды құрылғыларға айналдыра алады.

Ұсынылған: