สารบัญ:
- ขั้นตอนที่ 1: ภาพรวม BMG160:
- ขั้นตอนที่ 2: สิ่งที่คุณต้องการ..!
- ขั้นตอนที่ 3: การเชื่อมต่อฮาร์ดแวร์:
- ขั้นตอนที่ 4: รหัสอนุภาคการวัด Gyroscope 3 แกน:
- ขั้นตอนที่ 5: การใช้งาน:
วีดีโอ: การเชื่อมต่อเซ็นเซอร์ไจโรสโคป 3 แกน BMG160 กับอนุภาค: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ในโลกปัจจุบัน มากกว่าครึ่งของเยาวชนและเด็กชื่นชอบการเล่นเกม และทุกคนที่ชื่นชอบการเล่นเกม ซึ่งหลงใหลในด้านเทคนิคของเกมทราบถึงความสำคัญของการตรวจจับการเคลื่อนไหวในโดเมนนี้ เรายังรู้สึกทึ่งกับสิ่งเดียวกันนี้ และเพียงแค่นำมันมาวางบนกระดาน เราคิดว่าการทำงานกับเซ็นเซอร์ไจโรสโคปซึ่งสามารถวัดอัตราเชิงมุมของวัตถุใดๆ ก็ได้ ดังนั้น เซ็นเซอร์ที่เราใช้จัดการกับงานนี้คือ BMG160 BMG160 เป็นเซ็นเซอร์ไจโรสโคปแบบดิจิตอล 16 บิต สามแกน ซึ่งสามารถวัดอัตราเชิงมุมในสามขนาดห้องตั้งฉาก
ในบทช่วยสอนนี้ เราจะสาธิตการทำงานของ BMG160 ด้วยอนุภาคโฟตอน
ฮาร์ดแวร์ที่คุณต้องการเพื่อการนี้มีดังนี้:
1. BMG160
2. อนุภาคโฟตอน
3. สายเคเบิล I2C
4. I2C Shield สำหรับอนุภาคโฟตอน
ขั้นตอนที่ 1: ภาพรวม BMG160:
ก่อนอื่น เราต้องการทำความคุ้นเคยกับคุณสมบัติพื้นฐานของโมดูลเซ็นเซอร์ นั่นคือ BMG160 และโปรโตคอลการสื่อสารที่ใช้งาน
BMG160 นั้นเป็นเซ็นเซอร์ไจโรสโคปแบบดิจิตอล 16 บิต สามแกน ซึ่งสามารถวัดอัตราเชิงมุมได้ มันสามารถคำนวณอัตราเชิงมุมในสามมิติห้องตั้งฉาก แกน x, y- และ z และให้สัญญาณเอาท์พุตที่สอดคล้องกัน สามารถสื่อสารกับบอร์ด Raspberry Pi โดยใช้โปรโตคอลการสื่อสาร I2C โมดูลเฉพาะนี้ได้รับการออกแบบมาเพื่อตอบสนองความต้องการสำหรับการใช้งานของผู้บริโภคและเพื่อวัตถุประสงค์ทางอุตสาหกรรม
โปรโตคอลการสื่อสารที่เซ็นเซอร์ทำงานคือ I2C I2C ย่อมาจากวงจรรวม เป็นโปรโตคอลการสื่อสารที่การสื่อสารเกิดขึ้นผ่านสาย SDA (ข้อมูลอนุกรม) และ SCL (นาฬิกาอนุกรม) อนุญาตให้เชื่อมต่ออุปกรณ์หลายเครื่องพร้อมกัน เป็นหนึ่งในโปรโตคอลการสื่อสารที่ง่ายและมีประสิทธิภาพมากที่สุด
ขั้นตอนที่ 2: สิ่งที่คุณต้องการ..!
วัสดุที่เราต้องการเพื่อให้บรรลุเป้าหมายประกอบด้วยส่วนประกอบฮาร์ดแวร์ต่อไปนี้:
1. BMG160
2. อนุภาคโฟตอน
3. สายเคเบิล I2C
4. I2C Shield สำหรับอนุภาคโฟตอน
ขั้นตอนที่ 3: การเชื่อมต่อฮาร์ดแวร์:
ส่วนการเชื่อมต่อฮาร์ดแวร์โดยทั่วไปจะอธิบายการเชื่อมต่อสายไฟที่จำเป็นระหว่างเซ็นเซอร์และอนุภาค ตรวจสอบให้แน่ใจว่าการเชื่อมต่อถูกต้องเป็นสิ่งจำเป็นพื้นฐานในขณะที่ทำงานกับระบบใด ๆ สำหรับเอาต์พุตที่ต้องการ ดังนั้น การเชื่อมต่อที่จำเป็นมีดังนี้:
BMG160 จะทำงานบน I2C นี่คือตัวอย่างไดอะแกรมการเดินสาย ซึ่งสาธิตวิธีเชื่อมต่อแต่ละอินเทอร์เฟซของเซ็นเซอร์
นอกกรอบ บอร์ดได้รับการกำหนดค่าสำหรับอินเทอร์เฟซ I2C ดังนั้นเราขอแนะนำให้ใช้การเชื่อมต่อนี้หากคุณไม่เชื่อเรื่องพระเจ้า
สิ่งที่คุณต้องมีคือสี่สาย! ต้องใช้พิน Vcc, Gnd, SCL และ SDA เพียงสี่การเชื่อมต่อเท่านั้น และเชื่อมต่อด้วยสายเคเบิล I2C
การเชื่อมต่อเหล่านี้แสดงให้เห็นในภาพด้านบน
ขั้นตอนที่ 4: รหัสอนุภาคการวัด Gyroscope 3 แกน:
เริ่มต้นด้วยรหัสอนุภาคตอนนี้
ในขณะที่ใช้โมดูลเซ็นเซอร์กับ Arduino เราได้รวมไลบรารี application.h และ spark_wiring_i2c.h "application.h" และไลบรารี spark_wiring_i2c.h มีฟังก์ชันที่อำนวยความสะดวกในการสื่อสาร i2c ระหว่างเซ็นเซอร์และอนุภาค
รหัสอนุภาคทั้งหมดได้รับด้านล่างเพื่อความสะดวกของผู้ใช้:
#รวม
#รวม
// ที่อยู่ BMG160 I2C คือ 0x68 (104)
#define แอดเดอร์ 0x68
int xGyro = 0, yGyro = 0, zGyro = 0;
การตั้งค่าเป็นโมฆะ ()
{
// ตั้งค่าตัวแปร
Particle.variable("i2cdevice", "BMG160");
ตัวแปรอนุภาค ("xGyro", xGyro);
Particle.variable("yGyro", yGyro);
Particle.variable("zGyro", zGyro);
// เริ่มต้นการสื่อสาร I2C เป็น MASTER
Wire.begin();
// เริ่มต้นการสื่อสารแบบอนุกรม
Serial.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);
// ตั้งค่าแบนด์วิดท์ = 200 Hz
Wire.write(0x04);
// หยุดการส่ง I2C
Wire.endTransmission();
ล่าช้า (300);
}
วงเป็นโมฆะ ()
{
ข้อมูล int ที่ไม่ได้ลงนาม[6];
// เริ่มการส่ง I2C
Wire.beginTransmission(Addr);
// เลือก data register
Wire.write(0x02);
// หยุดการส่ง I2C
Wire.endTransmission();
// ขอข้อมูล 6 ไบต์
Wire.requestFrom(Addr, 6);
// อ่านข้อมูลขนาด 6 ไบต์
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
if(Wire.available() == 6)
{
data[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)
{
ไจโร -= 65536;
}
zGyro = ((ข้อมูล[5] * 256) + ข้อมูล[4]);
ถ้า (zGyro > 32767)
{
zGyro -= 65536;
}
// ส่งออกข้อมูลไปยังแดชบอร์ด
Particle.publish("แกน X ของการหมุน:", String(xGyro));
Particle.publish("แกน Y ของการหมุน:", String(yGyro));
Particle.publish("แกน Z ของการหมุน:", สตริง (zGyro));
ล่าช้า (1000);
}
ขั้นตอนที่ 5: การใช้งาน:
BMG160 มีแอพพลิเคชั่นมากมายในอุปกรณ์ต่างๆ เช่น โทรศัพท์มือถือ อุปกรณ์เชื่อมต่อระหว่างเครื่องกับมนุษย์ โมดูลเซ็นเซอร์นี้ได้รับการออกแบบมาเพื่อตอบสนองความต้องการสำหรับการใช้งานของผู้บริโภค เช่น ระบบป้องกันภาพสั่นไหว (DSC และกล้องโทรศัพท์) เกมและอุปกรณ์ชี้ตำแหน่ง นอกจากนี้ยังใช้ในระบบที่ต้องการการจดจำท่าทางและระบบที่ใช้ในการนำทางภายในอาคาร
แนะนำ:
การเชื่อมต่อ Gyroscope Sensor แบบ 3 แกน BMG160 กับ Arduino Nano: 5 ขั้นตอน
การเชื่อมต่อ Gyroscope Sensor แบบ 3 แกน BMG160 กับ Arduino Nano: ในโลกปัจจุบัน เยาวชนและเด็กมากกว่าครึ่งชื่นชอบการเล่นเกมและผู้ที่ชื่นชอบเกมนี้ ต่างหลงใหลในด้านเทคนิคของการเล่นเกม ทราบถึงความสำคัญของการตรวจจับการเคลื่อนไหว ในโดเมนนี้ เรายังประหลาดใจกับสิ่งเดียวกัน
การควบคุมการเคลื่อนไหวด้วย Raspberry Pi และ LIS3DHTR, มาตรความเร่ง 3 แกน, โดยใช้ Python: 6 ขั้นตอน
การควบคุมการเคลื่อนไหวด้วย Raspberry Pi และ LIS3DHTR, มาตรความเร่งแบบ 3 แกน, การใช้ Python: ความงามอยู่รอบตัวเรา แต่โดยปกติเราต้องเดินอยู่ในสวนถึงจะรู้ - Rumiในฐานะกลุ่มการศึกษาที่ดูเหมือนเราเป็น เราทุ่มเทพลังงานส่วนใหญ่ในการทำงานก่อนพีซีและโทรศัพท์มือถือของเรา เราจึงมักปล่อยให้สุขภาพของเรา
หุ่นยนต์คู่ขนาน Tensegrity หรือ Double 5R 5 แกน (DOF) ราคาไม่แพง ทนทาน ระบบควบคุมการเคลื่อนไหว: 3 ขั้นตอน (พร้อมรูปภาพ)
Tensegrity หรือ Double 5R Parallel Robot, 5 Axis (DOF) ราคาไม่แพง, ทนทาน, ระบบควบคุมการเคลื่อนไหว: ฉันหวังว่าคุณจะคิดว่านี่เป็นแนวคิดที่ยิ่งใหญ่สำหรับวันของคุณ! นี่คือรายการในการแข่งขัน Instructables Robotics ปิดวันที่ 2 ธันวาคม 2019 โปรเจ็กต์ผ่านเข้าสู่รอบสุดท้ายของการตัดสินแล้ว และฉันไม่มีเวลาทำการอัปเดตที่ต้องการ! ฉันเคย
มาตรความเร่งแบบ 3 แกน ADXL345 พร้อม Raspberry Pi โดยใช้ Python: 6 ขั้นตอน
มาตรความเร่งแบบ 3 แกน ADXL345 พร้อม Raspberry Pi โดยใช้ Python: คิดถึงแกดเจ็ตที่สามารถตรวจสอบจุดที่รถ Offroader ของคุณเอียงไปทางค้างอยู่ จะเป็นเรื่องที่น่ายินดีหรือไม่หากมีคนปรับเปลี่ยนเมื่อมีโอกาสพลิกคว่ำ เห็นได้ชัดว่าใช่ มันจะตรู
การเชื่อมต่อ Gyroscope Sensor แบบ 3 แกน BMG160 กับ Raspberry Pi: 5 ขั้นตอน
การเชื่อมต่อ Gyroscope Sensor แบบ 3 แกน BMG160 กับ Raspberry Pi: ในโลกปัจจุบัน เยาวชนและเด็กมากกว่าครึ่งชื่นชอบการเล่นเกมและผู้ที่ชื่นชอบเกมนี้ ต่างหลงใหลในด้านเทคนิคของการเล่นเกม ทราบถึงความสำคัญของการตรวจจับการเคลื่อนไหว ในโดเมนนี้ เรายังประหลาดใจกับสิ่งเดียวกัน