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

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

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

Видео: 3 тэнхлэгтэй гироскопын BMG160 мэдрэгчийг Arduino Nano-той холбох: 5 алхам
Видео: Возведение перегородок санузла из блоков. Все этапы. #4 2024, Арваннэгдүгээр
Anonim
Image
Image

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

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

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

1. BMG160

2. Ардуино Нано

3. I2C кабель

4. Arduino Nano -д зориулсан I2C бамбай

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

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

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

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

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

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

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

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

1. BMG160

2. Ардуино Нано

3. I2C кабель

4. Arduino Nano -д зориулсан I2C бамбай

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

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

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

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

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

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

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

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

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

Одоо arduino кодоос эхэлье.

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

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

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

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

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

{

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

Wire.begin ();

// Цуваа холбоог эхлүүлэх, дамжуулах хурд = 9600

Цуваа эхлэх (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);

// Зурвасын өргөнийг тохируулах = 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);

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

int xGyro = ((өгөгдөл [1] * 256) + өгөгдөл [0]);

int yGyro = ((өгөгдөл [3] * 256) + өгөгдөл [2]);

int zGyro = ((өгөгдөл [5] * 256) + өгөгдөл [4]);

// Цуваа монитор руу өгөгдөл гаргана

Serial.print ("Эргэлтийн тэнхлэг:");

Serial.println (xGyro); Serial.print ("Y-тэнхлэгийн эргэлт:");

Serial.println (yGyro); Serial.print ("Z-тэнхлэгийн эргэлт:");

Serial.println (zGyro);

саатал (500);

}

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

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

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

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