ʻO ARDUINO GY87 Hoʻohui ʻia ʻo Sensor Test Sketch
Hoʻolauna
Inā ʻoe he mea hana a i ʻole ka robotics enthusiast, ua ʻike ʻoe i kēia module liʻiliʻi akā ikaika inā he hana avid a i ʻole robotics enthusiast, ua ʻike ʻoe i kēia module liʻiliʻi akā ikaika naʻe BMP085 barometer. He ala maikaʻi loa ka module GY-87 IMU e hoʻohui i ka ʻike ʻana i ka neʻe i kāu mau papahana, e like me ka lopako hoʻohālikelike ponoʻī a i ʻole quadcopter.
Akā ma mua o kou hoʻomaka ʻana e hoʻokolohua me ka module GY-87 IMU, pono ʻoe e ʻike pehea e hoʻopili ai me kāu papa Arduino. Ma laila e komo ai kēia blog! Ma nā paukū aʻe, e uhi mākou i nā kumu o ka module GY-87 IMU, pehea e hoʻonohonoho ai, a pehea e kākau ai i ke code Arduino e heluhelu ai i ka ʻikepili sensor. E hāʻawi pū mākou i kekahi mau ʻōlelo aʻoaʻo a me nā kumuwaiwai no ka hoʻoponopono ʻana i nā pilikia maʻamau.
No laila, inā mākaukau ʻoe e hoʻomaka, e luʻu kākou a aʻo e pili ana i ka hoʻopili ʻana i ka module GY-87 IMU me Arduino!
He aha ka GY-87 IMU MPU6050
Hoʻohui pū nā ʻāpana ana inertial (IMU) e like me ka GY-87 i nā mea ʻike he nui i hoʻokahi pūʻolo, e like me ka MPU6050 accelerometer/gyroscope, ka HMC5883L magnetometer, a me ka BMP085 barometric pressure sensor. No laila, ʻo ka GY-87 IMU MPU6050 he kōmike neʻe 9-axis holoʻokoʻa holoʻokoʻa e hoʻohui i kahi gyroscope 3-axis, 3-axis accelerometer, 3-axis magnetometer, a me kahi kaʻina hana kikohoʻe. Hoʻohana nui ʻia ia i nā papahana robotic, e like me quadcopters a me nā kaʻa mokulele unmanned ʻē aʻe (UAVs), no ka mea hiki iā ia ke ana pololei a nānā i ka orientation a me ka neʻe. Hoʻohana ʻia i nā noi ʻē aʻe, e like me ka hoʻokele, ka pāʻani, a me ka ʻoiaʻiʻo maoli.
Nā mea lako lako
Pono ʻoe i kēia hāmeʻa no ka Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Module me Arduino.
Nā ʻāpana | Waiwai | Qty |
Arduino UNO | – | 1 |
MPU6050 Module ʻIkepili | GY-87 | 1 |
Papa palaoa | – | 1 |
Uea Jumper | – | 1 |
GY-87 me Arduino
I kēia manawa ua hoʻomaopopo ʻoe i ka GY-87, ʻo ia ka manawa e launa pū me ka Arduino. No ka hana ʻana i kēlā, e hahai i kēia manawa ua hoʻomaopopo ʻoe i ka GY-87, ʻo ia ka manawa e launa pū me ka Arduino. No ka hana ʻana i kēlā, e hahai
ʻKea
E hoʻohui e like me ke kiʻi kaapuni i hāʻawi ʻia ma lalo nei
GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoWiring / Hoʻohui
Arduino | ʻO MPU6050 Sensor |
5V | VCC |
GND | GND |
A4 | SDA |
A5 | SCA |
Ke hoʻokomo nei i ka Arduino IDE
ʻO ka mea mua, pono ʻoe e hoʻokomo iā Arduino IDE Software mai kāna luna webkahua ʻo Arduino. Eia kahi alakaʻi maʻalahi i kēlā me kēia pae ma "Pehea e hoʻokomo ai iā Arduino IDE."
Ke hoʻokomo nei i nā hale waihona puke
Ma mua o kou hoʻomaka ʻana i ka hoʻouka ʻana i ke code, e hoʻoiho a wehe i nā waihona ma lalo nei ma /Program Files (x86)/Arduino/Libraries (default) i mea e hoʻohana ai i ka ʻike me ka papa Arduino. Eia kahi alakaʻi maʻalahi i kēlā me kēia pae ma "Pehea e hoʻohui ai i nā hale waihona puke ma Arduino IDE."
- MPU6050
- Adafruit_BMP085
- HMC5883L_Maʻalahi
Code
E kope i kēia code a hoʻouka iā Arduino IDE Software.
#include “I2Cdev.h” #include “MPU6050.h” #include #hoʻokomo MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Paniani maʻalahi; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = wahaheʻe; void setup() { Serial.begin(16); Wire.begin(); // hoʻomaka i nā polokalamu Serial.println ("Hoʻomaka i nā mea I13C ..."); // hoʻomaka i ka bmp9600 inā (!bmp.begin()) { Serial.println("ʻAʻole hiki ke loaʻa i kahi ʻike BMP2 kūpono, nānā (! e nānā i Serial.println(accelgyro.testConnection() ? "Ua kūleʻa ka pilina MPU085" : "Holo ka pilina MPU085"); accelgyro.setI085CBypassEnabled(ʻoiaʻiʻo); // hoʻonohonoho i ke ʻano bypass no ka ʻīpuka i hmc6050L // hoʻomaka i ka hmc6050l Compass.SetDeclination. 2, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // hoʻonohonoho Arduino LED no ka nānā ʻana i ka hana pinMode (LED_PIN, OUTPUT); } puka puka ʻole () {
Serial.print(“Temperature = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“Pressure = “);
Serial.print(bmp.readPressure()); Serial.println(”Pa”); // E helu i ke kiʻekiʻe e manaʻo ana i ka barometric 'maʻamau' // kaomi o 1013.25 millibar = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“mika”); Serial.print(“Pihi ma ka ʻilikai (helu ʻia) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print(“Kiʻekiʻe maoli = “); Serial.print(bmp.readAltitude(101500));
Serial.println(”mika”); // heluhelu i nā ana accel/gyro maka mai ka mea hana accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // hōʻike i nā koina accel/gyro x/y/z i hoʻokaʻawale ʻia tab Serial.print(“a/g:\t”); Serial.print(ax);
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); poʻomanaʻo lana =
Compass.GetHeadingDegrees(); Serial.print(“Heading: \t”); Serial.println( poʻomanaʻo ); // blink LED e hōʻike i ka hana blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); lohi(500); }
E hoao kakou
Ke hoʻouka ʻoe i ke code, ʻo ia ka manawa e hoʻāʻo ai i ke kaapuni! Hoʻopili ke code i ka papahana Arduino me nā mea ʻike e hoʻohana ana i kā lākou hale waihona puke, kahi e hiki ai iā ia ke heluhelu i ka ʻikepili sensor a hoʻonohonoho i nā ʻano hoʻonohonoho like ʻole o nā mea ʻike. A laila paʻi ʻo ia i ka ʻikepili sensor ma luna o ke awa serial. Hoʻohana ʻia ka LED e hōʻike e hana ana ke kaapuni i kekahi mea. ʻO ia ke ʻano o ke kukui uila i kēlā me kēia manawa e holo ai ka hana loop, e hōʻike ana e heluhelu ikaika ana ke code i nā waiwai sensor.
Wehewehe Hana
ʻO ke code ka mea nui i hoʻokumu ʻia ai ka hana o ke kaapuni. No laila, e hoʻomaopopo kākou i ke code:.
- ʻO ka mea mua, loaʻa iā ia kekahi mau hale waihona puke e launa pū me nā mea ʻike:
- ʻO "I2Cdev.h" a me "MPU6050.h" nā hale waihona puke no ka MPU6050 6-axis accelerometer/gyroscope sensor.
- ʻO "Adafruit_BMP085.h" kahi waihona no ka BMP085 barometric pressure sensor.
- "HMC5883L_Simple.h" kahi waihona no ka HMC5883L magnetometer sensor.
- A laila hana ʻo ia i nā mea honua no nā mea ʻike ʻekolu: MPU6050 accelgyro, Adafruit_BMP085 bmp, a me HMC5883L_Simple Compass.
- A laila, wehewehe ia i kekahi mau mea hoʻololi no ka mālama ʻana i nā waiwai sensor, e like me ke koʻi, ay, a me ka az no ka accelerometer o MPU6050 a no ke poʻo no ka magnetometer o HMC5883L. A wehewehe ʻo ia i kahi mau LED_PIN a me kahi loli blinkState.
- Hoʻomaka ka hana hoʻonohonoho () i kahi kamaʻilio serial a hoʻomaka i ke kamaʻilio I2C. A laila hoʻomaka ʻo ia i nā sensor ʻekolu:
- Hoʻomaka ʻia ka sensor BMP085 ma ke kāhea ʻana i ke ala hoʻomaka (). Inā hoʻihoʻi hewa kēia, e hōʻike ana ʻaʻole i ʻike ʻia ka mea ʻike, komo ka papahana i kahi loop palena ʻole a paʻi i kahi leka hewa ma luna o ke awa serial.
- Hoʻomaka ʻia ka sensor MPU6050 ma ke kāhea ʻana i ke ala initialize () a nānā i ka hana pololei. A ua hoʻonohonoho i ka I2C bypass i hiki no MPU6050.
- Hoʻomaka ʻia ka sensor HMC5883L ma ke kāhea ʻana i kekahi mau hana, e like me SetDeclination, SetSamplingMode, SetScale, a me SetOrientation, no ka hoʻonohonoho ʻana i nā hoʻonohonoho like ʻole no ka ʻike.
- Ma ka hana loop (), heluhelu ke code i ka ʻikepili mai nā mea ʻike ʻekolu a paʻi ʻia ma luna o ke awa serial:
- Heluhelu ia ka mahana, ke kaomi, ke kiʻekiʻe, a me ke kaomi ma ka ʻilikai mai ka mea ʻike.
- Heluhelu ia i ka wikiwiki a me nā ana gyroscope mai ka MPU6050 sensor.
- Heluhelu ia i ke poʻomanaʻo mai ka ʻike HMC5883L, ʻo ia ka huina ma waena o ka ʻaoʻao e kuhikuhi ana ka mea ʻike a me ke ala e moe ai ka magnetic akau.
- ʻO ka mea hope loa, hoʻopio ia i ka LED e hōʻike i ka hana a kali i kahi manawa ma mua o ka heluhelu hou ʻana i nā mea ʻike.
Palapala / Punawai
![]() |
ʻO ARDUINO GY87 Hoʻohui ʻia ʻo Sensor Test Sketch [pdf] Palapala Hoʻohana GY87 Hui Pū ʻIa Hoʻāʻo, GY87, Hui Pū ʻIa hoʻāʻo ʻana, ʻAiʻi Hoʻāʻo ʻia, ʻĀpana hoʻāʻo. |