สารบัญ:
วีดีโอ: MPU6050-มาตรความเร่ง+เซ็นเซอร์ไจโรสโคปเบื้องต้น: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
MPU6050 เป็นเซ็นเซอร์ที่มีประโยชน์มาก
mpu 6050 เป็น IMU: หน่วยวัดแรงเฉื่อย (IMU) เป็นอุปกรณ์อิเล็กทรอนิกส์ที่วัดและรายงานแรงจำเพาะของร่างกาย อัตราเชิงมุม และบางครั้งการวางแนวของร่างกายโดยใช้เครื่องวัดความเร่ง ไจโรสโคปร่วมกัน
เป็นอุปกรณ์ 6 แกน
แกน 3 ตัวสามารถวัดความเร่งได้ และอีก 3 แกนใช้สำหรับวัดความเร่งเชิงมุม
การใช้ความเร่งและความเร่งเชิงมุมทำให้สามารถประมาณค่ามุมได้อย่างแม่นยำ
ในบทช่วยสอนนี้ เราจะมาสำรวจว่าเราจะใช้ MPU6050 กับไลบรารี่เพื่อทำให้สิ่งต่างๆ ง่ายขึ้นได้อย่างไร
เสบียง
- บอร์ด Arduino
- MPU6050
- สายจัมเปอร์
- เขียงหั่นขนม
ขั้นตอนที่ 1: ทำวงจรให้สมบูรณ์
เซ็นเซอร์ใช้โปรโตคอลที่เรียกว่า I2c เพื่อสื่อสารกับ Arduino เพื่อส่งค่า
พิน A4 ใช้สำหรับนาฬิกาอนุกรม SCL และควรเชื่อมต่อกับ SCL ของเซ็นเซอร์และ, A5 ถึง SDA-Serial data line
Vcc เชื่อมต่อกับ 5v และ Gnd เชื่อมต่อกับกราวด์
ขั้นตอนที่ 2: การเข้ารหัส
#รวม #รวม
ก่อนที่ฉันจะเริ่มต้น ห้องสมุดนี้ไม่ได้เขียนโดยฉัน ฉันคิดว่ามันง่ายที่สุดที่นั่นและชอบที่จะใช้มัน
นี่คือไฟล์ส่วนหัว ^^, wire.h ใช้เพื่อสร้างการสื่อสาร i2c
MPU6050 mpu6050 (สาย);
ที่นี่เราตั้งชื่อไจโรสโคปของเราหรือสร้างวัตถุสำหรับผู้ที่คุ้นเคยกับ OOP
การตั้งค่าเป็นโมฆะ () {
Serial.begin(9600); Wire.begin(); mpu6050.begin(); mpu6050.calcGyroOffsets(จริง); }
เริ่มแรกเราคำนวณค่าออฟเซ็ตเนื่องจากการอ่านค่ามุมทั้งหมดจะสัมพันธ์กับการวางแนวเริ่มต้น
วงเป็นโมฆะ () {
mpu6050.update(); Serial.print("angleX: "); Serial.print(mpu6050.getAngleX()); Serial.print("\tangleY : "); Serial.print(mpu6050.getAngleY()); Serial.print("\tangleZ: "); Serial.println(mpu6050.getAngleZ()); }
แต่ละอันทำให้เราวัดมุมได้
ขั้นตอนที่ 3: ฟังก์ชันอื่นๆ
ห้องสมุดมีฟังก์ชั่นอื่น ๆ
ชอบ:
mpu6050.getTemp()//ให้อุณหภูมิ (ไม่ค่อยแม่นยำ)
mpu6050.getAccX()//การเร่งความเร็วเชิงเส้นในทิศทาง X
(ฟังก์ชันที่คล้ายกันคือ mpu6050.getAccY(), mpu6050.getAccZ())
mpu6050.getGyroX()//การเร่งความเร็วเชิงมุมรอบแกน x
(ฟังก์ชันที่คล้ายกันคือ mpu6050.getGyroY(), mpu6050.getGyroZ())