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

3 тэнхлэгтэй гироскоп мэдрэгч BMG160-ийн тоосонцортой холбох: 5 алхам
3 тэнхлэгтэй гироскоп мэдрэгч BMG160-ийн тоосонцортой холбох: 5 алхам

Видео: 3 тэнхлэгтэй гироскоп мэдрэгч BMG160-ийн тоосонцортой холбох: 5 алхам

Видео: 3 тэнхлэгтэй гироскоп мэдрэгч BMG160-ийн тоосонцортой холбох: 5 алхам
Видео: ESP32 Web Server with MPU-6050 Accelerometer and Gyroscope (3D object representation) 2024, Долдугаар сарын
Anonim
Image
Image

Өнөөгийн ертөнцөд залуучууд, хүүхдүүдийн талаас илүү хувь нь тоглоом тоглох дуртай байдаг бөгөөд тоглоомын техникийн талаас нь сонирхдог бүх хүмүүс энэ чиглэлээр хөдөлгөөн мэдрэхийн ач холбогдлыг мэддэг. Бид мөн адил зүйлийг гайхаж, самбар дээр байрлуулахын тулд аливаа объектын өнцгийн хурдыг хэмжих гироскоп мэдрэгч дээр ажиллах талаар бодож үзсэн. Тиймээс даалгаврыг шийдвэрлэхийн тулд бидний авсан мэдрэгч бол BMG160 юм. BMG160 бол дижитал, гурван тэнхлэгтэй, гироскопын мэдрэгч бөгөөд өрөөний перпендикуляр гурван хэмжээсээр өнцгийн хурдыг хэмжих боломжтой.

Энэхүү гарын авлагад бид BMG160 -ийн Particle Photon -тэй хэрхэн ажиллахыг харуулах болно.

Энэ зорилгоор танд хэрэгтэй тоног төхөөрөмж дараах байдалтай байна.

1. BMG160

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

3. I2C кабель

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

Алхам 1: BMG160 -ийн тойм:

Чамд юу хэрэгтэй вэ..!!
Чамд юу хэрэгтэй вэ..!!

Юуны өмнө бид танд BMG160 мэдрэгч модулийн үндсэн шинж чанарууд болон түүн дээр ажилладаг холбооны протоколыг танилцуулахыг хүсч байна.

BMG160 нь үндсэндээ өнцгийн түвшинг хэмжих боломжтой 16 бит, дижитал, гурван тэнхлэгтэй, гироскоп мэдрэгч юм. Энэ нь x-, y- ба z-тэнхлэг гэсэн гурван перпендикуляр өрөөний хэмжээсээр өнцгийн хурдыг тооцоолох, холбогдох гаралтын дохиог өгөх чадвартай. Энэ нь I2C холбооны протокол ашиглан бөөрөлзгөнө pi самбартай харилцах боломжтой. Энэхүү тусгай модуль нь хэрэглэгчийн хэрэглээ болон үйлдвэрлэлийн зориулалтаар тавигдах шаардлагыг хангахад зориулагдсан болно.

Мэдрэгчийн ажилладаг холбооны протокол нь I2C юм. I2C нь нэгдсэн хэлхээний товчлол юм. Энэ бол SDA (цуваа өгөгдөл) ба SCL (цуваа цаг) шугамаар дамжуулан харилцаа холбоо явагддаг харилцаа холбооны протокол юм. Энэ нь олон төхөөрөмжийг нэгэн зэрэг холбох боломжийг олгодог. Энэ бол хамгийн энгийн бөгөөд үр дүнтэй харилцааны протоколын нэг юм.

Алхам 2: Танд хэрэгтэй зүйл..

Чамд юу хэрэгтэй вэ..!!
Чамд юу хэрэгтэй вэ..!!
Чамд юу хэрэгтэй вэ..!!
Чамд юу хэрэгтэй вэ..!!
Чамд юу хэрэгтэй вэ..!!
Чамд юу хэрэгтэй вэ..!!

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

1. BMG160

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

3. I2C кабель

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

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

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

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

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

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

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

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

Алхам 4: 3 тэнхлэгтэй гироскопын хэмжих ширхэгийн код:

3 тэнхлэгтэй гироскопын хэмжилтийн ширхэгийн код
3 тэнхлэгтэй гироскопын хэмжилтийн ширхэгийн код
3 тэнхлэгтэй гироскопын хэмжилтийн ширхэгийн код
3 тэнхлэгтэй гироскопын хэмжилтийн ширхэгийн код

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

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

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

#оруулах

#оруулах

// BMG160 I2C хаяг нь 0x68 (104)

#Тодорхойлох Addr 0x68

int xGyro = 0, yGyro = 0, zGyro = 0;

хүчингүй тохиргоо ()

{

// Хувьсагчийг тохируулах

Particle.variable ("i2cdevice", "BMG160");

Particle.variable ("xGyro", xGyro);

Particle.variable ("yGyro", yGyro);

Particle.variable ("zGyro", zGyro);

// I2C холболтыг MASTER болгон эхлүүлэх

Wire.begin ();

// Цуваа холбоог эхлүүлэх

Цуваа эхлэх (9600);

// I2C дамжуулалтыг эхлүүлэх

Wire.beginTransmission (Addr);

// Range register -ийг сонгоно уу

Wire.write (0x0F);

// 2000 dps -ийг бүрэн хэмжээгээр тохируулах

Wire.write (0x80);

// I2C дамжуулалтыг зогсоох

Wire.endTransmission ();

// I2C дамжуулалтыг эхлүүлэх

Wire.beginTransmission (Addr);

// Bandwidth register -ийг сонгоно уу

Wire.write (0x10);

// Bandwidth = 200 Гц -ийг тохируулна уу

Wire.write (0x04);

// I2C дамжуулалтыг зогсоох

Wire.endTransmission ();

саатал (300);

}

хоосон давталт ()

{

гарын үсэг зураагүй int өгөгдөл [6];

// I2C дамжуулалтыг эхлүүлэх

Wire.beginTransmission (Addr);

// Өгөгдлийн бүртгэлийг сонгоно уу

Wire.write (0x02);

// I2C дамжуулалтыг зогсоох

Wire.endTransmission ();

// 6 байтын өгөгдөл хүсэх

Wire.requestFrom (Addr, 6);

// 6 байтын өгөгдлийг уншина уу

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

хэрэв (Утас. боломжтой () == 6)

{

өгөгдөл [0] = Wire.read ();

өгөгдөл [1] = Wire.read ();

өгөгдөл [2] = Wire.read ();

өгөгдөл [3] = Wire.read ();

өгөгдөл [4] = Wire.read ();

өгөгдөл [5] = Wire.read ();

}

саатал (300);

// Өгөгдлийг хөрвүүлэх

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 ("Эргэлтийн тэнхлэг:", String (xGyro));

Particle.publish ("Эргэлтийн Y тэнхлэг:", String (yGyro));

Particle.publish ("Z-тэнхлэгийн эргэлт:", String (zGyro));

саатал (1000);

}

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

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

BMG160 нь гар утас, хүний машины интерфейс гэх мэт төхөөрөмжүүдэд олон төрлийн програмуудтай. Энэхүү мэдрэгчийн модуль нь дүрс тогтворжуулах (DSC ба камер-утас), тоглоом, заагч төхөөрөмж гэх мэт хэрэглэгчийн хэрэглээний шаардлагыг хангахад зориулагдсан болно. Энэ нь дохио зангаа таних шаардлагатай систем, дотор навигацид ашигладаг системд ашиглагддаг.

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