ARDUINO GY87 Pinagsamang Sensor Test Sketch
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 ArduinoMga 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 |