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

MPU-6000 ба бөөмийн фотон ашиглан хөдөлгөөн хянах: 4 алхам
MPU-6000 ба бөөмийн фотон ашиглан хөдөлгөөн хянах: 4 алхам

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

Видео: MPU-6000 ба бөөмийн фотон ашиглан хөдөлгөөн хянах: 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 тэнхлэгтэй гироскоптой. Энэхүү мэдрэгч нь объектын гурван хэмжээст хавтгайд байршил, байршлыг оновчтой хянах чадвартай. Үүнийг хамгийн нарийвчлалтайгаар байрлалын дүн шинжилгээ хийх шаардлагатай системд ашиглаж болно.

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

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

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

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

1. MPU-6000

2. Бөөмийн фотон

3. I2C кабель

4. Бөөмийн фотоны I2C бамбай

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

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

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

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

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

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

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

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

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

Одоо бөөмийн кодоос эхэлье.

Мэдрэгчийн модулийг arduino ашиглан ашиглахдаа application.h болон spark_wiring_i2c.h номын санг агуулдаг. "application.h" болон spark_wiring_i2c.h номын сан нь мэдрэгч ба бөөмийн хооронд i2c холболтыг хөнгөвчлөх функцуудыг агуулдаг.

Хэрэглэгчийн тав тухыг хангах үүднээс бөөмийн кодыг бүхэлд нь доор харуулав.

#include #include // MPU-6000 I2C хаяг нь 0x68 (104) #Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Particle.variable хувьсагчийг тохируулах ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Particle.variable ("yGyro", yGyro); Particle.variable ("zGyro", zGyro); // I2C холболтыг Master Wire байдлаар эхлүүлэх.begin (); // Цуваа холболтыг эхлүүлэх, дамжуулах хурд = 9600 Serial.begin (9600); // I2C дамжуулалтыг эхлүүлэх Wire.beginTransmission (Addr); // гироскопын тохиргооны бүртгэлийг сонго Wire.write (0x1B); // Бүрэн хэмжээний хүрээ = 2000 dps Wire.write (0x18); // I2C дамжуулалтыг зогсоох Wire.endTransmission (); // I2C дамжуулалтыг эхлүүлэх Wire.beginTransmission (Addr); // Accelerometer тохиргооны бүртгэлийг сонго Wire.write (0x1C); // Бүрэн хэмжээний хүрээ = +/- 16g Wire.write (0x18); // I2C дамжуулалтыг зогсоох Wire.endTransmission (); // I2C дамжуулалтыг эхлүүлэх Wire.beginTransmission (Addr); // Эрчим хүчний удирдлагын бүртгэлийг сонго Wire.write (0x6B); // PLG xGyro лавлагаатай Wire.write (0x01); // I2C дамжуулалтыг зогсоох Wire.endTransmission (); саатал (300); } void loop () {unsigned int data [6]; // I2C дамжуулалтыг эхлүүлэх Wire.beginTransmission (Addr); // Wire.write мэдээллийн бүртгэлийг сонгох (0x3B); // I2C дамжуулалтыг зогсоох Wire.endTransmission (); // Wire.requestFrom -аас 6 байт өгөгдөл хүсэх (Addr, 6); // 6 байтын өгөгдлийг унших бол (Wire.available () == 6) {data [0] = Wire.read (); өгөгдөл [1] = Wire.read (); өгөгдөл [2] = Wire.read (); өгөгдөл [3] = Wire.read (); өгөгдөл [4] = Wire.read (); өгөгдөл [5] = Wire.read (); } саатал (800); // Өгөгдлийг хөрвүүлэх xAccl = ((өгөгдөл [1] * 256) + өгөгдөл [0]); хэрэв (xAccl> 32767) {xAccl -= 65536; } yAccl = ((өгөгдөл [3] * 256) + өгөгдөл [2]); хэрэв (yAccl> 32767) {yAccl -= 65536; } zAccl = ((өгөгдөл [5] * 256) + өгөгдөл [4]); хэрэв (zAccl> 32767) {zAccl -= 65536; } саатал (800); // I2C дамжуулалтыг эхлүүлэх Wire.beginTransmission (Addr); // Wire.write мэдээллийн бүртгэлийг сонгох (0x43); // I2C дамжуулалтыг зогсоох Wire.endTransmission (); // Wire.requestFrom -аас 6 байт өгөгдөл хүсэх (Addr, 6); // 6 байтын өгөгдлийг унших бол (Wire.available () == 6) {data [0] = Wire.read (); өгөгдөл [1] = Wire.read (); өгөгдөл [2] = Wire.read (); өгөгдөл [3] = Wire.read (); өгөгдөл [4] = Wire.read (); өгөгдөл [5] = Wire.read (); } // Өгөгдлийг хөрвүүлэх xGyro = ((өгөгдөл [1] * 256) + өгөгдөл [0]); хэрэв (xGyro> 32767) {xGyro -= 65536; } yGyro = ((өгөгдөл [3] * 256) + өгөгдөл [2]); хэрэв (yGyro> 32767) {yGyro -= 65536; } zGyro = ((өгөгдөл [5] * 256) + өгөгдөл [4]); хэрэв (zGyro> 32767) {zGyro -= 65536; } // Мэдээллийн самбарт Particle.publish руу өгөгдөл гаргана ("X-Axis дахь хурдатгал:", String (xAccl)); саатал (1000); Particle.publish ("Y-Axis дахь хурдатгал:", String (yAccl)); саатал (1000); Particle.publish ("Z-Axis дахь хурдатгал:", String (zAccl)); саатал (1000); Particle.publish ("Эргэлтийн тэнхлэг:", String (xGyro)); саатал (1000); Particle.publish ("Y-тэнхлэгийн эргэлт:", String (yGyro)); саатал (1000); Particle.publish ("Z-тэнхлэгийн эргэлт:", String (zGyro)); саатал (1000); }

Particle.variable () функц нь мэдрэгчийн гаралтыг хадгалах хувьсагчдыг үүсгэдэг ба Particle.publish () функц нь сайтын хяналтын самбарт гаралтыг харуулдаг.

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

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

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

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

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