ARDUINO-lgoo

ARDUINO GY87 Pinagsamang Sensor Test Sketch

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

Panimula

Kung ikaw ay isang masugid na gumagawa o isang robotics enthusiast, nakita mo ang maliit ngunit makapangyarihang module na ito Kung ikaw ay isang masugid na gumagawa o isang robotics enthusiast, nakita mo ang maliit ngunit malakas na module na BMP085 barometer. Ang GY-87 IMU module ay isang mahusay na paraan upang magdagdag ng motion sensing sa iyong mga proyekto, tulad ng self-balancing robot o quadcopter.
Ngunit bago ka magsimulang mag-eksperimento sa GY-87 IMU module, kailangan mong malaman kung paano ito i-interface sa iyong Arduino board. Doon papasok ang blog na ito! Sa mga sumusunod na talata, sasakupin namin ang mga pangunahing kaalaman ng GY-87 IMU module, kung paano ito i-set up, at kung paano isulat ang Arduino code upang mabasa ang data ng sensor. Magbibigay din kami ng ilang tip at mapagkukunan para sa pag-troubleshoot ng mga karaniwang isyu.
Kaya, kung handa ka nang magsimula, sumisid tayo at alamin ang tungkol sa interfacing ng GY-87 IMU module sa Arduino!

Ano ang GY-87 IMU MPU6050

Pinagsasama ng mga inertial measurement unit (IMU) modules tulad ng GY-87 ang maraming sensor sa iisang pakete, gaya ng MPU6050 accelerometer/gyroscope, ang HMC5883L magnetometer, at ang BMP085 barometric pressure sensor. Samakatuwid, ang GY-87 IMU MPU6050 ay isang all-in-one na 9-axis motion tracking module na pinagsasama ang isang 3-axis gyroscope, 3-axis accelerometer, 3-axis magnetometer, at isang digital motion processor. Madalas itong ginagamit sa mga robotic na proyekto, tulad ng mga quadcopter at iba pang mga unmanned aerial vehicle (UAV), dahil maaari itong tumpak na sukatin at subaybayan ang oryentasyon at paggalaw. Ginagamit din ito sa iba pang mga application, gaya ng navigation, gaming, at virtual reality.

Mga Bahagi ng Hardware

Kakailanganin mo ang sumusunod na hardware para sa Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Module sa Arduino.

Mga bahagi Halaga Qty
Arduino UNO 1
MPU6050 Sensor Module GY-87 1
Breadboard 1
Jumper Wire 1

GY-87 kasama ang Arduino 

Ngayon na naunawaan mo na ang GY-87, oras na para makipag-interface sa Arduino. Upang gawin iyon, sundin Ngayon na naunawaan mo na ang GY-87, oras na para makipag-interface sa Arduino. Upang gawin iyon, sundin

Eskematiko

Gumawa ng mga koneksyon ayon sa circuit diagram na ibinigay sa ibaba

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-fig 1Mga kable / Koneksyon

Arduino MPU6050 Sensor
5V VCC
GND GND
A4 SDA
A5 SCA

Pag-install ng Arduino IDE 

Una, kailangan mong i-install ang Arduino IDE Software mula sa opisyal nito website Arduino. Narito ang isang simpleng step-by-step na gabay sa "Paano i-install ang Arduino IDE."

Pag-install ng mga Aklatan 

Bago ka magsimulang mag-upload ng code, i-download at i-unzip ang mga sumusunod na library sa /Program Files (x86)/Arduino/Libraries (default) upang magamit ang sensor sa Arduino board. Narito ang isang simpleng step-by-step na gabay sa "Paano Magdagdag ng Mga Aklatan sa Arduino IDE."

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Simple

Code 

Ngayon kopyahin ang sumusunod na code at i-upload ito sa Arduino IDE Software.

#include “I2Cdev.h” #include “MPU6050.h” #include #isama MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Simple Compass; int085_t palakol, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // simulan ang mga device Serial.println("Initializing I13C devices..."); // simulan ang bmp9600 kung (!bmp.begin()) { Serial.println(“Hindi makahanap ng valid BMP2 sensor, check (!bmp.begin()) { Serial.println(“Hindi makahanap ng valid BMP085 sensor, tingnan ang Serial.println(accelgyro.testConnection() ? “Matagumpay ang koneksyon ng MPU085” : “Nabigo ang koneksyon ng MPU085”); accelgyro.setI6050CBypassEnabled(true); // itakda ang bypass mode para sa gateway sa hmc6050L // simulan ang hmc2l Compass.SetDeclination(5883Declination.SetDeclination. 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // i-configure ang Arduino LED para sa pagsuri sa aktibidad ng pinMode (LED_PIN, OUTPUT); } void loop() {
Serial.print(“Temperatura = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Pressure = “);
Serial.print(bmp.readPressure()); Serial.println(”Pa”); // Calculate altitude assuming 'standard' barometric // pressure of 1013.25 millibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println("metro"); Serial.print("Pressure at sealevel (kinakalkula) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print(“Real altitude = “); Serial.print(bmp.readAltitude(101500));
Serial.println(” metro”); // basahin ang mga raw na sukat ng accel/gyro mula sa device accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // display tab-separated accel/gyro x/y/z values ​​Serial.print(“a/g:\t”); Serial.print(palakol);
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); float heading =
Compass.GetHeadingDegrees(); Serial.print("Heading: \t"); Serial.println( heading ); // blink LED upang ipahiwatig ang aktibidad blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); pagkaantala(500); }

Subukan Natin Ito 

Kapag na-upload mo na ang code, oras na para subukan ang circuit! Ang code sa Arduino program ay nakikipag-ugnayan sa mga sensor gamit ang kanilang mga library, na nagbibigay-daan dito na basahin ang data ng sensor at magtakda ng iba't ibang mga configuration ng mga sensor. Pagkatapos ay ipi-print nito ang data ng sensor sa serial port. Ang LED ay ginagamit upang ipakita na ang circuit ay gumagawa ng isang bagay. Nangangahulugan ito na ang LED ay kumukurap sa tuwing gumagana ang loop function, na nagpapahiwatig na ang code ay aktibong nagbabasa ng mga halaga ng sensor.

Paliwanag sa Paggawa 

Ang code ay ang pangunahing bagay kung saan nakabatay ang pagtatrabaho ng circuit. Kaya, unawain natin ang code:.

  • Una, kabilang dito ang ilang mga aklatan upang ma-interface sa mga sensor:
  • Ang “I2Cdev.h” at “MPU6050.h” ay mga library para sa MPU6050 6-axis accelerometer/gyroscope sensor
  • Ang "Adafruit_BMP085.h" ay isang library para sa BMP085 barometric pressure sensor.
  • Ang "HMC5883L_Simple.h" ay isang library para sa HMC5883L magnetometer sensor.
  • Pagkatapos ay lumilikha ito ng mga pandaigdigang bagay para sa tatlong sensor: MPU6050 accelgyro, Adafruit_BMP085 bmp, at HMC5883L_Simple Compass.
  • Susunod, tinutukoy nito ang ilang mga variable upang mag-imbak ng mga halaga ng sensor, tulad ng ax, ay, at az para sa accelerometer ng MPU6050 at upang tumungo sa magnetometer ng HMC5883L. At ito ay tumutukoy sa isang LED_PIN constant at isang blinkState variable.
  • Ang setup() function ay magsisimula ng serial communication at magsisimula ng I2C communication. Pagkatapos ay sinisimulan nito ang tatlong sensor:
  • Ang BMP085 sensor ay sinisimulan sa pamamagitan ng pagtawag sa begin() na paraan. Kung ito ay nagbabalik ng mali, na nagpapahiwatig na ang sensor ay hindi matagpuan, ang programa ay papasok sa isang walang katapusang loop at nagpi-print ng isang mensahe ng error sa serial port.
  • Ang MPU6050 sensor ay sinisimulan sa pamamagitan ng pagtawag sa initialize() na paraan at pagsuri kung ito ay gumagana nang tama. At itinakda nito ang I2C bypass na pinagana para sa MPU6050.
  • Ang HMC5883L sensor ay sinisimulan sa pamamagitan ng pagtawag sa ilang function, gaya ng SetDeclination, SetSamplingMode, SetScale, at SetOrientation, para sa pagtatakda ng iba't ibang configuration para sa sensor.
  • Sa loop() function, binabasa ng code ang data mula sa tatlong sensor at ini-print ito sa serial port:
  • Binabasa nito ang temperatura, presyon, altitude, at presyon sa antas ng dagat mula sa sensor.
  • Nagbabasa ito ng raw acceleration at mga sukat ng gyroscope mula sa MPU6050 sensor.
  • Binabasa nito ang heading mula sa HMC5883L sensor, na siyang anggulo sa pagitan ng direksyon kung saan nakaturo ang sensor at ang direksyon kung saan matatagpuan ang magnetic north.
  • Sa wakas, kumukurap ito sa LED upang ipahiwatig ang aktibidad at maghintay ng ilang sandali bago muling basahin ang mga sensor.

Mga Dokumento / Mga Mapagkukunan

ARDUINO GY87 Pinagsamang Sensor Test Sketch [pdf] User Manual
GY87 Pinagsamang Sensor Test Sketch, GY87, Pinagsamang Sensor Test Sketch, Sensor Test Sketch, Test Sketch

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *