ARDUINO-lgoo

ARDUINO GY87 Combined Sensor Test Sketch

ARDUINO-GY87-Combined-Sensor-Test-Sketch-product

ແນະນຳ

ຖ້າທ່ານເປັນຜູ້ສ້າງຕົວຢາກ ຫຼືຜູ້ທີ່ມັກຫຸ່ນຍົນ, ທ່ານໄດ້ພົບກັບໂມດູນຂະໜາດນ້ອຍແຕ່ມີພະລັງນີ້ແລ້ວ ຖ້າເຈົ້າເປັນຜູ້ສ້າງຕົວຢາກ ຫຼືຜູ້ທີ່ມັກຫຸ່ນຍົນ, ເຈົ້າໄດ້ພົບກັບໂມດູນຂະໜາດນ້ອຍແຕ່ມີພະລັງ BMP085 barometer ນີ້. ໂມດູນ GY-87 IMU ເປັນວິທີທີ່ດີທີ່ຈະເພີ່ມການຮັບຮູ້ການເຄື່ອນໄຫວໃຫ້ກັບໂຄງການຂອງທ່ານ, ເຊັ່ນ: ຫຸ່ນຍົນປັບສົມດຸນຕົນເອງ ຫຼື quadcopter.
ແຕ່ກ່ອນທີ່ທ່ານຈະສາມາດເລີ່ມຕົ້ນການທົດລອງກັບໂມດູນ GY-87 IMU, ທ່ານຈໍາເປັນຕ້ອງຮູ້ວິທີການໂຕ້ຕອບກັບກະດານ Arduino ຂອງທ່ານ. ນັ້ນແມ່ນບ່ອນທີ່ blog ນີ້ເຂົ້າມາ! ໃນວັກຕໍ່ໄປນີ້, ພວກເຮົາຈະກວມເອົາພື້ນຖານຂອງໂມດູນ GY-87 IMU, ວິທີການຕັ້ງມັນ, ແລະວິທີການຂຽນລະຫັດ Arduino ເພື່ອອ່ານຂໍ້ມູນເຊັນເຊີ. ພວກເຮົາຍັງຈະໃຫ້ຄໍາແນະນໍາ ແລະຊັບພະຍາກອນບາງຢ່າງສໍາລັບການແກ້ໄຂບັນຫາທົ່ວໄປ.
ດັ່ງນັ້ນ, ຖ້າທ່ານພ້ອມທີ່ຈະເລີ່ມຕົ້ນ, ໃຫ້ພວກເຮົາເຂົ້າໄປໃນແລະຮຽນຮູ້ກ່ຽວກັບການຕິດຕໍ່ພົວພັນຂອງໂມດູນ GY-87 IMU ກັບ Arduino!

GY-87 IMU MPU6050 ແມ່ນຫຍັງ

ໂມດູນຫນ່ວຍວັດແທກ inertial (IMU) ເຊັ່ນ GY-87 ລວມເຊັນເຊີຈໍານວນຫຼາຍເຂົ້າໄປໃນຊຸດດຽວ, ເຊັ່ນ: MPU6050 accelerometer/gyroscope, ເຄື່ອງວັດແທກແມ່ເຫຼັກ HMC5883L, ແລະເຊັນເຊີຄວາມກົດດັນ barometric BMP085. ດັ່ງນັ້ນ, GY-87 IMU MPU6050 ແມ່ນໂມດູນຕິດຕາມການເຄື່ອນໄຫວ 9 ແກນແບບທັງໝົດໃນໜຶ່ງດຽວ ທີ່ປະສົມປະສານ 3 ແກນ, ເຄື່ອງວັດຄວາມໄວ 3 ແກນ, 3 ແກນ, ແລະໂຮງງານຜະລິດການເຄື່ອນໄຫວດິຈິຕອນ. ມັນຖືກນໍາໃຊ້ຫຼາຍໃນໂຄງການຫຸ່ນຍົນ, ເຊັ່ນ quadcopters ແລະຍານພາຫະນະທາງອາກາດທີ່ບໍ່ມີຄົນຂັບ (UAVs), ເນື່ອງຈາກວ່າມັນສາມາດວັດແທກແລະຕິດຕາມທິດທາງແລະການເຄື່ອນໄຫວໄດ້ຢ່າງຖືກຕ້ອງ. ມັນຍັງຖືກນໍາໃຊ້ໃນຄໍາຮ້ອງສະຫມັກອື່ນໆ, ເຊັ່ນການນໍາທາງ, ເກມ, ແລະ virtual reality.

ອົງປະກອບຮາດແວ

ທ່ານຈະຕ້ອງການຮາດແວຕໍ່ໄປນີ້ສໍາລັບ Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Module ກັບ Arduino.

ອົງປະກອບ ມູນຄ່າ ຈຳນວນ
Arduino UNO 1
MPU6050 ໂມດູນເຊັນເຊີ ຈີ -87 1
ກະດານເຂົ້າຈີ່ 1
ສາຍ Jumper 1

GY-87 ກັບ Arduino 

ໃນປັດຈຸບັນທີ່ທ່ານໄດ້ເຂົ້າໃຈ GY-87, ມັນເປັນເວລາທີ່ຈະໂຕ້ຕອບກັບ Arduino. ເພື່ອເຮັດສິ່ງນັ້ນ, ປະຕິບັດຕາມຕອນນີ້ທ່ານໄດ້ເຂົ້າໃຈ GY-87, ມັນແມ່ນເວລາທີ່ຈະໂຕ້ຕອບກັບ Arduino. ເພື່ອເຮັດສິ່ງນີ້, ປະຕິບັດຕາມ

ແຜນວາດ

ເຮັດການເຊື່ອມຕໍ່ຕາມແຜນວາດວົງຈອນທີ່ໃຫ້ໄວ້ຂ້າງລຸ່ມນີ້

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-fig 1ສາຍໄຟ / ການເຊື່ອມຕໍ່

Arduino ເຊັນເຊີ MPU6050
5V VCC
GND GND
A4 SDA
A5 SCA

ການຕິດຕັ້ງ Arduino IDE 

ທໍາອິດ, ທ່ານຈໍາເປັນຕ້ອງໄດ້ຕິດຕັ້ງຊອບແວ Arduino IDE ຈາກຢ່າງເປັນທາງການຂອງຕົນ webເວັບໄຊ Arduino. ນີ້ແມ່ນຄໍາແນະນໍາຂັ້ນຕອນໂດຍຂັ້ນຕອນງ່າຍໆກ່ຽວກັບ "ວິທີການຕິດຕັ້ງ Arduino IDE."

ການ​ຕິດ​ຕັ້ງ​ຫ້ອງ​ສະ​ຫມຸດ​ 

ກ່ອນ​ທີ່​ທ່ານ​ຈະ​ເລີ່ມ​ຕົ້ນ​ການ​ອັບ​ໂຫລດ​ລະ​ຫັດ​, ດາວ​ນ​໌​ໂຫລດ​ແລະ unzip ຫ້ອງ​ສະ​ຫມຸດ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ຢູ່ / ໂຄງ​ການ​ Files (x86)/Arduino/Libraries (ຄ່າເລີ່ມຕົ້ນ) ເພື່ອໃຊ້ເຊັນເຊີກັບກະດານ Arduino. ນີ້ແມ່ນຄໍາແນະນໍາຂັ້ນຕອນໂດຍຂັ້ນຕອນງ່າຍໆກ່ຽວກັບ "ວິທີການເພີ່ມຫ້ອງສະຫມຸດໃນ Arduino IDE."

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_ງ່າຍດາຍ

ລະຫັດ 

ຕອນນີ້ສຳເນົາລະຫັດຕໍ່ໄປນີ້ແລ້ວອັບໂຫຼດມັນໃສ່ຊອບແວ Arduino IDE.

#include “I2Cdev.h” #include “MPU6050.h” #include #ລວມທັງ MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // initialize devices Serial.println(“Initializing I13C devices…”); // initialize bmp9600 if (!bmp.begin()) { Serial.println(“ບໍ່ສາມາດຊອກຫາເຊັນເຊີ BMP2 ທີ່ຖືກຕ້ອງ, ກວດເບິ່ງ (!bmp.begin()) { Serial.println(“ບໍ່ສາມາດຊອກຫາເຊັນເຊີ BMP085 ທີ່ຖືກຕ້ອງ, ກວດເບິ່ງ Serial.println(accelgyro.testConnection() ? “ການເຊື່ອມຕໍ່ MPU085 ສຳເລັດ” : “ການເຊື່ອມຕໍ່ MPU085 ລົ້ມເຫລວ”); accelgyro.setI6050CBypassEnabled(true); 6050, 'E');amplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // configure Arduino LED ສໍາລັບການກວດສອບກິດຈະກໍາ pinMode(LED_PIN, OUTPUT); } void loop() {
Serial.print(“ອຸນຫະພູມ = “); Serial.print(bmp.readTemperature());
Serial.println(“*C”); Serial.print(“Pressure = “);
Serial.print(bmp.readPressure()); Serial.println(“Pa”); // ຄິດໄລ່ລະດັບຄວາມສູງສົມມຸດວ່າ 'ມາດຕະຖານ' barometric // ຄວາມກົດດັນຂອງ 1013.25 millibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“ແມັດ”); Serial.print(“ຄວາມກົດດັນຢູ່ລະດັບທະເລ (ຄິດໄລ່) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(“Pa”);
Serial.print(“ລະດັບຄວາມສູງຈິງ = “); Serial.print(bmp.readAltitude(101500));
Serial.println(“ແມັດ”); // ອ່ານການວັດແທກ accel/gyro ດິບຈາກອຸປະກອນ accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // ສະແດງ tab-separated accel/gyro x/y/z ຄ່າ Serial.print(“a/g:\t”); Serial.print(ຂວານ);
Serial.print(“\t”); Serial.print(ay); Serial.print(“\t”); Serial.print(az);
Serial.print(“\t”); Serial.print(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, blinkState); ຊັກຊ້າ(500); }

ໃຫ້ທົດສອບມັນ 

ເມື່ອທ່ານອັບໂຫລດລະຫັດ, ມັນເປັນເວລາທີ່ຈະທົດສອບວົງຈອນ! ລະຫັດໃນໂຄງການ Arduino ພົວພັນກັບເຊັນເຊີໂດຍໃຊ້ຫ້ອງສະຫມຸດຂອງພວກເຂົາ, ເຊິ່ງອະນຸຍາດໃຫ້ມັນອ່ານຂໍ້ມູນເຊັນເຊີແລະກໍານົດການຕັ້ງຄ່າຕ່າງໆຂອງເຊັນເຊີ. ຫຼັງຈາກນັ້ນ, ມັນພິມອອກຂໍ້ມູນເຊັນເຊີຜ່ານພອດ serial. LED ຖືກນໍາໃຊ້ເພື່ອສະແດງໃຫ້ເຫັນວ່າວົງຈອນກໍາລັງເຮັດບາງສິ່ງບາງຢ່າງ. ນີ້ຫມາຍຄວາມວ່າ LED ກະພິບທຸກຄັ້ງທີ່ຟັງຊັນ loop ຖືກແລ່ນ, ສະແດງໃຫ້ເຫັນວ່າລະຫັດກໍາລັງອ່ານຄ່າເຊັນເຊີຢ່າງຫ້າວຫັນ.

ຄໍາອະທິບາຍການເຮັດວຽກ 

ລະຫັດແມ່ນສິ່ງທີ່ສໍາຄັນທີ່ການເຮັດວຽກຂອງວົງຈອນແມ່ນອີງໃສ່. ດັ່ງນັ້ນ, ໃຫ້ເຂົ້າໃຈລະຫັດ:.

  • ກ່ອນອື່ນ ໝົດ, ມັນປະກອບມີຫ້ອງສະ ໝຸດ ຫຼາຍເພື່ອໂຕ້ຕອບກັບເຊັນເຊີ:
  • “I2Cdev.h” ແລະ “MPU6050.h” ແມ່ນຫ້ອງສະໝຸດສຳລັບເຊັນເຊີ MPU6050 6-axis accelerometer/gyroscope.
  • “Adafruit_BMP085.h” ເປັນຫ້ອງສະໝຸດສຳລັບເຊັນເຊີຄວາມດັນບາໂຣແມັດ BMP085.
  • “HMC5883L_Simple.h” ເປັນຫ້ອງສະໝຸດສຳລັບເຊັນເຊີແມ່ເຫຼັກ HMC5883L.
  • ຫຼັງຈາກນັ້ນ, ມັນຈະສ້າງວັດຖຸທົ່ວໂລກສໍາລັບສາມເຊັນເຊີ: MPU6050 accelgyro, Adafruit_BMP085 bmp, ແລະ HMC5883L_Simple Compass.
  • ຕໍ່ໄປ, ມັນກໍານົດຕົວແປບາງຢ່າງເພື່ອເກັບຄ່າຂອງເຊັນເຊີ, ເຊັ່ນ: ax, ay, ແລະ az ສໍາລັບ accelerometer ຂອງ MPU6050 ແລະໄປຫາເຄື່ອງວັດແທກແມ່ເຫຼັກຂອງ HMC5883L. ແລະມັນກໍານົດຄ່າຄົງທີ່ LED_PIN ແລະຕົວແປ blinkState.
  • ຟັງຊັນ setup() ເລີ່ມການສື່ສານ serial ແລະເລີ່ມການສື່ສານ I2C. ຫຼັງຈາກນັ້ນ, ມັນເລີ່ມຕົ້ນສາມເຊັນເຊີ:
  • ເຊັນເຊີ BMP085 ແມ່ນເລີ່ມຕົ້ນໂດຍການໂທຫາວິທີການເລີ່ມຕົ້ນ (). ຖ້າອັນນີ້ສົ່ງຄືນເປັນຜິດ, ຊີ້ບອກວ່າບໍ່ສາມາດຊອກຫາເຊັນເຊີໄດ້, ໂປຣແກຣມຈະເຂົ້າສູ່ວົງວຽນທີ່ບໍ່ມີຂອບເຂດ ແລະພິມຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຜ່ານພອດ serial.
  • ເຊັນເຊີ MPU6050 ຖືກເລີ່ມຕົ້ນໂດຍການໂທຫາວິທີການ initialize() ແລະກວດເບິ່ງວ່າມັນເຮັດວຽກຢ່າງຖືກຕ້ອງຫຼືບໍ່. ແລະມັນຕັ້ງ I2C bypass ເປີດໃຊ້ສໍາລັບ MPU6050.
  • ເຊັນເຊີ HMC5883L ແມ່ນເລີ່ມຕົ້ນໂດຍການໂທຫາບາງຫນ້າທີ່, ເຊັ່ນ SetDeclination, SetSamplingMode, SetScale, ແລະ SetOrientation, ສໍາລັບການຕັ້ງຄ່າທີ່ແຕກຕ່າງກັນສໍາລັບເຊັນເຊີ.
  • ໃນຟັງຊັນ loop() ລະຫັດຈະອ່ານຂໍ້ມູນຈາກສາມເຊັນເຊີແລະພິມອອກຜ່ານພອດ serial:
  • ມັນອ່ານອຸນຫະພູມ, ຄວາມກົດດັນ, ລະດັບຄວາມສູງ, ແລະຄວາມກົດດັນໃນລະດັບນ້ໍາທະເລຈາກເຊັນເຊີ.
  • ມັນອ່ານການເລັ່ງຄວາມໄວດິບແລະການວັດແທກ gyroscope ຈາກເຊັນເຊີ MPU6050.
  • ມັນອ່ານຫົວຂໍ້ຈາກເຊັນເຊີ HMC5883L, ເຊິ່ງເປັນມຸມລະຫວ່າງທິດທາງທີ່ເຊັນເຊີຊີ້ແລະທິດທາງທີ່ແມ່ເຫຼັກຢູ່ເຫນືອ.
  • ສຸດທ້າຍ, ມັນກະພິບໄຟ LED ເພື່ອຊີ້ບອກການເຄື່ອນໄຫວ ແລະລໍຖ້າຈັກໜ່ອຍກ່ອນທີ່ຈະອ່ານເຊັນເຊີຄືນໃໝ່.

ເອກະສານ / ຊັບພະຍາກອນ

ARDUINO GY87 Combined Sensor Test Sketch [pdf] ຄູ່ມືຜູ້ໃຊ້
GY87 Combined Sensor Test Sketch, GY87, Combined Sensor Test Sketch, Sensor ທົດສອບ Sketch, Test Sketch

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *