ARDUINO-lgoo

ร่างการทดสอบเซ็นเซอร์รวม ARDUINO GY87

ARDUINO-GY87-รวม-เซ็นเซอร์-ทดสอบ-ร่าง-ผลิตภัณฑ์

การแนะนำ

หากคุณเป็นนักประดิษฐ์ตัวยงหรือผู้คลั่งไคล้หุ่นยนต์ คุณจะได้พบกับโมดูลขนาดเล็กแต่ทรงพลังนี้ หากคุณเป็นนักประดิษฐ์ตัวยงหรือผู้คลั่งไคล้หุ่นยนต์ คุณจะพบกับบารอมิเตอร์โมดูล BMP085 ที่มีขนาดเล็กแต่ทรงพลังนี้ โมดูล GY-87 IMU เป็นวิธีที่ยอดเยี่ยมในการเพิ่มการตรวจจับการเคลื่อนไหวในโครงการของคุณ เช่น หุ่นยนต์ทรงตัวหรือควอดคอปเตอร์
แต่ก่อนที่คุณจะเริ่มทดลองกับโมดูล GY-87 IMU คุณต้องรู้วิธีเชื่อมต่อกับบอร์ด Arduino ของคุณ นั่นคือที่มาของบล็อกนี้! ในย่อหน้าต่อไปนี้ เราจะกล่าวถึงพื้นฐานของโมดูล GY-87 IMU วิธีตั้งค่า และวิธีการเขียนโค้ด Arduino เพื่ออ่านข้อมูลเซ็นเซอร์ นอกจากนี้ เรายังให้คำแนะนำและแหล่งข้อมูลสำหรับการแก้ไขปัญหาทั่วไป
ดังนั้น หากคุณพร้อมที่จะเริ่มต้น เรามาเจาะลึกและเรียนรู้เกี่ยวกับการเชื่อมต่อโมดูล GY-87 IMU กับ Arduino กันเลย!

GY-87 IMU MPU6050 คืออะไร

โมดูลหน่วยวัดความเฉื่อย (IMU) เช่น GY-87 รวมเซ็นเซอร์จำนวนมากไว้ในแพ็คเกจเดียว เช่น มาตรความเร่ง/ไจโรสโคป MPU6050, แมกนีโตมิเตอร์ HMC5883L และเซ็นเซอร์ความดันบรรยากาศ BMP085 ด้วยเหตุนี้ GY-87 IMU MPU6050 จึงเป็นโมดูลติดตามการเคลื่อนไหวแบบ 9 แกนแบบครบวงจรที่รวมไจโรสโคป 3 แกน มาตรความเร่ง 3 แกน มาตรวัดสนามแม่เหล็ก 3 แกน และตัวประมวลผลการเคลื่อนไหวแบบดิจิตอล มีการใช้มากในโครงการหุ่นยนต์ เช่น ควอดคอปเตอร์และยานพาหนะทางอากาศไร้คนขับ (UAV) อื่นๆ เนื่องจากสามารถวัดและติดตามทิศทางและการเคลื่อนไหวได้อย่างแม่นยำ นอกจากนี้ยังใช้ในแอปพลิเคชันอื่นๆ เช่น การนำทาง เกม และความจริงเสมือน

ส่วนประกอบฮาร์ดแวร์

คุณจะต้องใช้ฮาร์ดแวร์ต่อไปนี้สำหรับการเชื่อมต่อโมดูล GY-87 IMU MPU6050 HMC5883L BMP085 กับ Arduino

ส่วนประกอบ ค่า ปริมาณ
อาร์ดูอิโน UNO 1
MPU6050 โมดูลเซนเซอร์ GY-87 1
แผงวงจร 1
สายจั๊มเปอร์ 1

GY-87 กับ Arduino 

เมื่อคุณเข้าใจ GY-87 แล้ว ก็ถึงเวลาเชื่อมต่อกับ Arduino ในการทำเช่นนั้น ให้ทำตาม เมื่อคุณเข้าใจ GY-87 แล้ว ก็ถึงเวลาเชื่อมต่อกับ Arduino ในการทำเช่นนั้นให้ทำตาม

แผนผัง

ทำการเชื่อมต่อตามแผนภาพวงจรด้านล่าง

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-fig 1สายไฟ / การเชื่อมต่อ

อาร์ดูอิโน่ เซ็นเซอร์ MPU6050
5V วีซีซี
ก.ย.ด. ก.ย.ด.
A4 เอสดีเอ
A5 ส.ก.

การติดตั้ง Arduino IDE 

ก่อนอื่นคุณต้องติดตั้งซอฟต์แวร์ Arduino IDE จากทางการ webเว็บไซต์ Arduino นี่คือคำแนะนำทีละขั้นตอนง่ายๆ เกี่ยวกับ “วิธีการติดตั้ง Arduino IDE”

การติดตั้งห้องสมุด 

ก่อนที่คุณจะเริ่มอัพโหลดโค้ด ให้ดาวน์โหลดและแตกไฟล์ไลบรารีต่อไปนี้ที่ /Program Files (x86)/Arduino/Libraries (ค่าเริ่มต้น) เพื่อใช้เซ็นเซอร์กับบอร์ด Arduino นี่คือคำแนะนำทีละขั้นตอนง่ายๆ เกี่ยวกับ “วิธีเพิ่มไลบรารีใน Arduino IDE”

  • MPU6050
  • อดาฟรุต_BMP085
  • HMC5883L_แบบธรรมดา

รหัส 

ตอนนี้คัดลอกรหัสต่อไปนี้และอัปโหลดไปยังซอฟต์แวร์ Arduino IDE

#รวม “I2Cdev.h” #รวม “MPU6050.h” #รวม #รวม MPU085 แอคเซลไจโร; Adafruit_BMP5883 bmp; HMC6050L_เข็มทิศอย่างง่าย; int085_t ขวาน, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 สถานะการกะพริบบูล = เท็จ; การตั้งค่าเป็นโมฆะ () { Serial.begin (16); Wire.begin(); // เตรียมใช้งานอุปกรณ์ Serial.println(“กำลังเตรียมใช้งานอุปกรณ์ I13C…”); // เริ่มต้น bmp9600 ถ้า (!bmp.begin()) { Serial.println("ไม่พบเซ็นเซอร์ BMP2 ที่ถูกต้อง ตรวจสอบ (!bmp.begin()) { Serial.println("ไม่พบเซ็นเซอร์ BMP085 ที่ถูกต้อง ตรวจสอบ Serial.println(accelgyro.testConnection() ? “การเชื่อมต่อ MPU085 สำเร็จ”: “การเชื่อมต่อ MPU085 ล้มเหลว”); accelgyro.setI6050CBypassEnabled(จริง); // ตั้งค่าโหมดบายพาสสำหรับเกตเวย์เป็น hmc6050L // เริ่มต้น hmc2l Compass.SetDeclination(5883, 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
เข็มทิศ SetScale (COMPASS_SCALE_130);
Compass.SetOrientation (COMPASS_HORIZONTAL_X_NORTH); // กำหนดค่า Arduino LED สำหรับตรวจสอบกิจกรรม pinMode(LED_PIN, OUTPUT); } โมฆะวนซ้ำ () {
Serial.print(“อุณหภูมิ = “); Serial.print (bmp.readTemperature ());
Serial.println(” *C”); Serial.print("ความดัน = ");
Serial.print (bmp.readPressure ()); Serial.println(”พ่อ”); // คำนวณระดับความสูงโดยใช้บรรยากาศ 'มาตรฐาน' // ความดัน 1013.25 มิลลิบาร์ = 101325 Pascal Serial.print(“Altitude = “); Serial.print (bmp.readAltitude ()); Serial.println (“เมตร”); Serial.print (“ความดันที่ระดับน้ำทะเล (คำนวณ) = “);
Serial.print (bmp.readSealevelPressure ()); Serial.println(”พ่อ”);
Serial.print(“ความสูงจริง = “); Serial.print (bmp.readAltitude (101500));
Serial.println(”เมตร”); // อ่านการวัดค่า accel/gyro แบบ raw จากอุปกรณ์ accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // แสดงค่า accel/gyro x/y/z ที่คั่นด้วยแท็บ Serial.print(“a/g:\t”); Serial.print(ขวาน);
Serial.print(“\t”); Serial.print(เอย); Serial.print(“\t”); Serial.print(az);
Serial.print(“\t”); อนุกรม.พิมพ์(gx); Serial.print(“\t”); Serial.print(gy);
Serial.print(“\t”); Serial.println(gz); หัวเรื่องลอย =
Compass.GetHeadingDegrees(); Serial.print(“หัวเรื่อง: \t”); Serial.println( หัวเรื่อง ); // ไฟ LED กะพริบเพื่อระบุกิจกรรม blinkState = !blinkState;
digitalWrite (LED_PIN, สถานะไฟกะพริบ); ล่าช้า (500); }

มาทดสอบกัน 

เมื่อคุณอัปโหลดโค้ดแล้ว ก็ถึงเวลาทดสอบวงจร! โค้ดในโปรแกรม Arduino จะเชื่อมต่อกับเซ็นเซอร์โดยใช้ไลบรารี ซึ่งช่วยให้สามารถอ่านข้อมูลเซ็นเซอร์และตั้งค่าการกำหนดค่าต่างๆ ของเซ็นเซอร์ได้ จากนั้นจะพิมพ์ข้อมูลเซ็นเซอร์ออกมาทางพอร์ตอนุกรม LED ใช้เพื่อแสดงว่าวงจรกำลังทำอะไรอยู่ ซึ่งหมายความว่าไฟ LED จะกะพริบทุกครั้งที่เรียกใช้ฟังก์ชันลูป ซึ่งแสดงว่าโค้ดกำลังอ่านค่าเซ็นเซอร์อยู่

คำอธิบายการทำงาน 

รหัสเป็นสิ่งสำคัญที่ใช้ในการทำงานของวงจร ดังนั้นเรามาทำความเข้าใจกับรหัส:.

  • ประการแรก ประกอบด้วยไลบรารีต่างๆ เพื่อเชื่อมต่อกับเซ็นเซอร์:
  • “I2Cdev.h” และ “MPU6050.h” เป็นไลบรารีสำหรับเซ็นเซอร์วัดความเร่ง/ไจโรสโคปแบบ 6050 แกน MPU6
  • “Adafruit_BMP085.h” เป็นไลบรารีสำหรับเซ็นเซอร์ความดันบรรยากาศ BMP085
  • “HMC5883L_Simple.h” เป็นไลบรารีสำหรับเซ็นเซอร์แมกนิโตมิเตอร์ HMC5883L
  • จากนั้นจะสร้างวัตถุส่วนกลางสำหรับเซ็นเซอร์สามตัว: MPU6050 accelgyro, Adafruit_BMP085 bmp และ HMC5883L_Simple Compass
  • ถัดไป จะกำหนดตัวแปรบางอย่างเพื่อเก็บค่าเซ็นเซอร์ เช่น ax, ay และ az สำหรับมาตรความเร่งของ MPU6050 และมุ่งหน้าไปยังมาตรวัดสนามแม่เหล็กของ HMC5883L และกำหนดค่าคงที่ LED_PIN และตัวแปร blinkState
  • ฟังก์ชัน setup() เริ่มการสื่อสารแบบอนุกรมและเริ่มการสื่อสาร I2C จากนั้นจะเริ่มต้นเซ็นเซอร์สามตัว:
  • เซ็นเซอร์ BMP085 เริ่มต้นได้โดยการเรียกใช้เมธอด start() หากสิ่งนี้ส่งคืนค่าเท็จ แสดงว่าไม่พบเซ็นเซอร์ โปรแกรมจะเข้าสู่ลูปไม่สิ้นสุดและพิมพ์ข้อความแสดงข้อผิดพลาดผ่านพอร์ตอนุกรม
  • เริ่มต้นเซ็นเซอร์ MPU6050 โดยเรียกใช้เมธอด initialize() และตรวจสอบว่าทำงานถูกต้องหรือไม่ และตั้งค่าการเปิดใช้งาน I2C bypass สำหรับ MPU6050
  • เซ็นเซอร์ HMC5883L เริ่มต้นได้โดยการเรียกใช้ฟังก์ชันบางอย่าง เช่น SetDeclination, SetSamplingMode, SetScale และ SetOrientation สำหรับการตั้งค่าการกำหนดค่าต่างๆ สำหรับเซ็นเซอร์
  • ในฟังก์ชัน loop() รหัสจะอ่านข้อมูลจากเซ็นเซอร์สามตัวและพิมพ์ออกมาทางพอร์ตอนุกรม:
  • อ่านอุณหภูมิ ความดัน ระดับความสูง และความดันที่ระดับน้ำทะเลจากเซ็นเซอร์
  • อ่านการวัดความเร่งและไจโรสโคปดิบจากเซ็นเซอร์ MPU6050
  • โดยจะอ่านส่วนหัวจากเซ็นเซอร์ HMC5883L ซึ่งเป็นมุมระหว่างทิศทางที่เซ็นเซอร์ชี้ไปและทิศทางที่ทิศเหนือแม่เหล็กอยู่
  • สุดท้าย ไฟ LED จะกะพริบเพื่อระบุกิจกรรมและรอสักครู่ก่อนที่จะอ่านเซ็นเซอร์อีกครั้ง

เอกสาร / แหล่งข้อมูล

ร่างการทดสอบเซ็นเซอร์รวม ARDUINO GY87 [พีดีเอฟ] คู่มือการใช้งาน
ร่างการทดสอบเซ็นเซอร์แบบรวม GY87, GY87, แบบร่างการทดสอบเซ็นเซอร์แบบรวม, แบบร่างการทดสอบเซ็นเซอร์, แบบร่างการทดสอบ

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *