Агуулгын хүснэгт:
- Алхам 1: BMG160 -ийн тойм:
- Алхам 2: Танд хэрэгтэй зүйл..
- Алхам 3: Тоног төхөөрөмжийн холболт:
- Алхам 4: 3 тэнхлэгтэй гироскопын хэмжилт Arduino код:
- Алхам 5: Өргөдөл:
Видео: 3 тэнхлэгтэй гироскопын BMG160 мэдрэгчийг Arduino Nano-той холбох: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Өнөөгийн ертөнцөд залуучууд, хүүхдүүдийн талаас илүү хувь нь тоглоом тоглох дуртай байдаг бөгөөд тоглоомын техникийн талаас нь сонирхдог бүх хүмүүс энэ чиглэлээр хөдөлгөөн мэдрэхийн ач холбогдлыг мэддэг. Бид мөн адил зүйлийг гайхаж, самбар дээр байрлуулахын тулд аливаа объектын өнцгийн хурдыг хэмжих гироскоп мэдрэгч дээр ажиллах талаар бодож үзсэн. Тиймээс даалгаврыг шийдвэрлэхийн тулд бидний авсан мэдрэгч бол 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 код:
Одоо 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 ба камер-утас), тоглоом, заагч төхөөрөмж гэх мэт хэрэглэгчийн хэрэглээний шаардлагыг хангахад зориулагдсан болно. Энэ нь дохио зангаа таних шаардлагатай систем, дотор навигацид ашигладаг системд ашиглагддаг.
Зөвлөмж болгож буй:
Олон тооны мэдрэгчийг нэг ARDUINO UNO серийн порт руу холбох: 4 алхам
Олон тооны мэдрэгчийг ARDUINO UNO SERIAL PORT руу холбох: Энэхүү гарын авлагад бид Arduino UNO UART (Rx/Tx) цуваа портыг өргөтгөх бөгөөд ингэснээр олон Атлас мэдрэгчийг холбох боломжтой болно. Өргөтгөлийг 8: 1 цуваа порт өргөтгөгч хавтан ашиглан хийдэг. Arduino боомт нь өргөтгөгчтэй холбогдсоны дараа
Бөөрөлзгөнө Pi-тай BMG160 3 тэнхлэгтэй гироскоп мэдрэгчийн интерфейс: 5 алхам
Гурван тэнхлэгтэй гироскоп мэдрэгч BMG160-ийг Raspberry Pi-тай холбох: Орчин үеийн ертөнцөд залуучууд, хүүхдүүдийн талаас илүү хувь нь тоглоом тоглох дуртай байдаг бөгөөд тоглоомын техникийн тал дээр дурладаг хүмүүс хөдөлгөөн мэдрэхийн ач холбогдлыг мэддэг. энэ домэйнд. Бид мөн ижил зүйлийг гайхаж байсан
3 тэнхлэгтэй гироскоп мэдрэгч BMG160-ийн тоосонцортой холбох: 5 алхам
3 тэнхлэгтэй гироскоп мэдрэгч BMG160-ийн тоосонцортой харилцах: Өнөөгийн ертөнцөд залуучууд, хүүхдүүдийн талаас илүү хувь нь тоглоом тоглох дуртай байдаг бөгөөд тоглоомын техникийн талаас нь сонирхдог бүх хүмүүс хөдөлгөөн мэдрэхийн ач холбогдлыг мэддэг. энэ домэйн. Бид мөн ижил зүйлийг гайхаж байсан
DHT11/DHT22 мэдрэгчийг үүлэнд ESP8266 суурилсан самбар ашиглан холбох: 9 алхам
DHT11/DHT22 мэдрэгчийг үүлэнд ESP8266 дээр суурилсан самбараар холбох: Өмнөх нийтлэлд би ESP8266 дээр суурилсан NodeMCU хавтангаа Cloud4RPi үйлчилгээнд холбосон. Одоо жинхэнэ төсөл хэрэгжүүлэх цаг боллоо
Олон тооны мэдрэгчийг залгагдсан PI -тэй холбох: 6 алхам (зурагтай)
PASPBERRY PI -д олон тооны мэдрэгчийг холбох: Энэхүү төсөлд бид Atlas Scientific -ийн EZO мэдрэгч (pH, ууссан хүчилтөрөгч ба температур) -ын гурван мэдрэгчийг Raspberry Pi 3B+-тэй холбох болно. Raspberry Pi -д хэлхээ холбохын оронд бид Whitebox Labs Tentacle T3 бамбайг ашиглах болно. Т