Агуулгын хүснэгт:

MPU-6000 ба Raspberry Pi ашиглан хөдөлгөөнийг хянах: 4 алхам
MPU-6000 ба Raspberry Pi ашиглан хөдөлгөөнийг хянах: 4 алхам

Видео: MPU-6000 ба Raspberry Pi ашиглан хөдөлгөөнийг хянах: 4 алхам

Видео: MPU-6000 ба Raspberry Pi ашиглан хөдөлгөөнийг хянах: 4 алхам
Видео: BYGD P600U - měnič napětí (600 W) - DC 12 V / AC 230 V (Paykoviny) 2024, Арваннэгдүгээр
Anonim
Image
Image

MPU-6000 бол 6 тэнхлэгтэй хөдөлгөөн хянах мэдрэгч бөгөөд 3 тэнхлэг хурдасгуур, 3 тэнхлэгтэй гироскоптой. Энэхүү мэдрэгч нь объектын гурван хэмжээст хавтгайд байршил, байршлыг оновчтой хянах чадвартай. Үүнийг хамгийн нарийвчлалтайгаар байрлалын дүн шинжилгээ хийх шаардлагатай системд ашиглаж болно.

Энэхүү гарын авлагад бөөрөлзгөнө pi бүхий MPU-6000 мэдрэгч модулийн интерфэйсийг харуулав. Хурдасгах ба эргүүлэх өнцгийн утгыг уншихын тулд бид I2c адаптертай бөөрөлзгөнө pi ашигласан бөгөөд энэхүү I2C адаптер нь мэдрэгчийн модульд холбогдоход хялбар, илүү найдвартай болгодог.

Алхам 1: Шаардлагатай тоног төхөөрөмж:

Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж

Зорилгодоо хүрэхийн тулд бидэнд шаардлагатай материалууд нь дараахь тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүдийг агуулдаг.

1. MPU-6000

2. Raspberry Pi

3. I2C кабель

4. Бөөрөлзгөнө pi -д зориулсан I2C бамбай

5. Ethernet кабель

Алхам 2: Тоног төхөөрөмжийн холболт:

Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт

Тоног төхөөрөмжийн холболтын хэсэг нь үндсэндээ мэдрэгч ба бөөрөлзгөнө pi хооронд шаардлагатай утас холболтыг тайлбарладаг. Аливаа систем дээр ажиллахад шаардлагатай гаралтын хувьд зөв холболтыг хангах нь хамгийн чухал зүйл юм. Тиймээс шаардлагатай холболтууд дараах байдалтай байна.

MPU-6000 нь I2C дээр ажиллах болно. Мэдрэгчийн интерфэйс бүрийг хэрхэн яаж холбохыг харуулсан утасны диаграмын жишээ энд байна.

Хайрцагнаас гадуурх самбар нь I2C интерфэйс дээр тохируулагдсан байдаг тул хэрэв та өөр ойлголтгүй бол энэ холболтыг ашиглахыг зөвлөж байна.

Танд ердөө дөрвөн утас л хангалттай! Vcc, Gnd, SCL, SDA зүүг зөвхөн дөрвөн холболт шаарддаг бөгөөд эдгээр нь I2C кабелийн тусламжтайгаар холбогддог.

Эдгээр холболтыг дээрх зурган дээр харуулав.

Алхам 3: Хөдөлгөөнийг хянах код:

Хөдөлгөөнийг хянах код
Хөдөлгөөнийг хянах код

Бөөрөлзгөнө pi ашиглах давуу тал нь мэдрэгчийг интерфэйстэй холбохын тулд самбарыг програмчлах хэлний уян хатан байдлыг хангаж өгдөг. Энэхүү самбарын давуу талыг ашиглан бид питон дахь програмчлалыг энд харуулав. 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 dps

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

# MPU-6000 хаяг, 0x68 (104)

# Accelerometer тохиргооны бүртгэлийг сонгоно уу, 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 тэнхлэг 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-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis 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-Axis дахь хурдатгал: %d" %xAccl

хэвлэх "Y тэнхлэг дэх хурдатгал: %d" %yAccl

хэвлэх "Z-Axis дахь хурдатгал: %d" %zAccl

"Эргэлтийн тэнхлэг: %d" %xGyro хэвлэх

"Y-тэнхлэгийн эргэлт: %d" %yGyro хэвлэх

"Z-Эргэлтийн тэнхлэг: %d" %zGyro хэвлэх

Кодыг дараах тушаалыг ашиглан гүйцэтгэнэ.

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

Мэдрэгчийн гаралтыг хэрэглэгчийн лавлагаанд зориулан дээрх зурагт үзүүлэв.

Алхам 4: Өргөдөл:

Хэрэглээ
Хэрэглээ

MPU-6000 бол хөдөлгөөн хянах мэдрэгч бөгөөд ухаалаг гар утас, таблетуудын хөдөлгөөний интерфейсээс хэрэглээгээ олж чаддаг. Ухаалаг гар утаснуудад эдгээр мэдрэгчийг аппликешн болон утасны удирдлага, сайжруулсан тоглоом, бодит байдал, панорамик зураг авах, үзэх, явган зорчигч, тээврийн хэрэгслийн навигацийн дохио өгөх команд гэх мэт програмуудад ашиглаж болно. MotionTracking технологи нь гар утас, таблетыг хүчирхэг 3D ухаалаг төхөөрөмж болгон хөрвүүлэх боломжтой бөгөөд үүнийг эрүүл мэнд, фитнесийн хяналтаас авахуулаад байршилд суурилсан үйлчилгээнд ашиглах боломжтой юм.

Зөвлөмж болгож буй: