ARDUINO-lgoo

ARDUINO GY87 ပေါင်းစပ်အာရုံခံစမ်းသပ်မှု ပုံကြမ်း

ARDUINO-GY87-Combined-Sensor-Test-Sketch-ထုတ်ကုန်

နိဒါန်း

အကယ်၍ သင်သည် ဝါသနာပါသော ထုတ်လုပ်သူ သို့မဟုတ် စက်ရုပ်ဝါသနာရှင်တစ်ဦးဖြစ်ပါက၊ သင်သည် ဤသေးငယ်သော်လည်း အစွမ်းထက်သည့် module ကို သင်တွေ့လာရပြီ အကယ်၍ သင်သည် ဝါသနာပါသော ထုတ်လုပ်သူ သို့မဟုတ် စက်ရုပ်ဝါသနာရှင်ဖြစ်ပါက၊ ဤသေးငယ်သော်လည်း အစွမ်းထက်သည့် မော်ဂျူး BMP085 ဘားရိုမီတာကို သင်တွေ့မြင်လာရပြီဖြစ်သည်။ GY-87 IMU မော်ဂျူးသည် မိမိကိုယ်ကို ဟန်ချက်ညီသော စက်ရုပ် သို့မဟုတ် quadcopter ကဲ့သို့ သင့်ပရောဂျက်များသို့ ရွေ့လျားမှုအာရုံခံစနစ်ကို ထည့်သွင်းရန် အကောင်းဆုံးနည်းလမ်းတစ်ခုဖြစ်သည်။
သို့သော်သင် GY-87 IMU module ကိုမစမ်းသပ်မီ၊ သင်၏ Arduino board နှင့်မည်သို့ဆက်သွယ်ရမည်ကိုသင်သိရန်လိုအပ်သည်။ အဲဒီ့ ဘလော့ဂ်က ဝင်လာတာ။ အောက်ဖော်ပြပါစာပိုဒ်များတွင်၊ ကျွန်ုပ်တို့သည် GY-87 IMU module ၏အခြေခံများ၊ ၎င်းကိုသတ်မှတ်ပုံနှင့် အာရုံခံဒေတာကိုဖတ်ရှုရန် Arduino ကုဒ်ကိုရေးနည်းတို့ကို ခြုံငုံဖော်ပြပါမည်။ အဖြစ်များသော ပြဿနာများကို ဖြေရှင်းရန်အတွက် အကြံပြုချက်များနှင့် အရင်းအမြစ်အချို့ကိုလည်း ပေးပါမည်။
ဒီတော့ စတင်ဖို့ အဆင်သင့်ဖြစ်ပြီဆိုရင်၊ Arduino နဲ့ GY-87 IMU module ကို ချိတ်ဆက်ခြင်းအကြောင်း လေ့လာကြည့်ကြရအောင်။

GY-87 IMU MPU6050 ဆိုတာဘာလဲ

GY-87 ကဲ့သို့ Inertial Measurement Unit (IMU) module များသည် MPU6050 accelerometer/gyroscope၊ HMC5883L magnetometer နှင့် BMP085 barometric ဖိအားအာရုံခံကိရိယာများကဲ့သို့သော အာရုံခံကိရိယာများစွာကို အထုပ်တစ်ခုထဲသို့ ပေါင်းစပ်ထားသည်။ ထို့ကြောင့်၊ GY-87 IMU MPU6050 သည် 9-ဝင်ရိုး gyroscope၊ 3-axis accelerometer၊ 3-axis magnetometer နှင့် digital motion processor တို့ ပေါင်းစပ်ထားသည့် all-in-one 3-axis လှုပ်ရှားမှုခြေရာခံ module တစ်ခုဖြစ်သည်။ Quadcopters များနှင့် အခြားသော မောင်းသူမဲ့ လေယာဉ်များ (UAVs) ကဲ့သို့သော စက်ရုပ်ပရောဂျက်များတွင် အများအပြား အသုံးပြုလေ့ရှိသောကြောင့် ၎င်းသည် ဦးတည်ချက်နှင့် ရွေ့လျားမှုကို တိကျစွာ တိုင်းတာနိုင်သည်။ ၎င်းကို လမ်းကြောင်းပြခြင်း၊ ဂိမ်းဆော့ခြင်းနှင့် virtual reality ကဲ့သို့သော အခြားသော အပလီကေးရှင်းများတွင်လည်း အသုံးပြုပါသည်။

Hardware အစိတ်အပိုင်းများ

သင်သည် Arduino ဖြင့် Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Module အတွက် အောက်ပါ ဟာ့ဒ်ဝဲ လိုအပ်ပါသည်။

အစိတ်အပိုင်းများ တန်ဖိုး အရေအတွက်
Arduino UNO 1
MPU6050 အာရုံခံ မော်ဂျူး GY-87 ပါ 1
ပေါင်မုန့်ပြား 1
Jumper ကြိုးများ 1

Arduino ဖြင့် GY-87 

ယခု သင် GY-87 ကို နားလည်ပြီး၊ Arduino နှင့် ဆက်သွယ်ရန် အချိန်ကျရောက်ပြီဖြစ်သည်။ ထိုသို့လုပ်ဆောင်ရန်၊ ယခုသင် GY-87 ကို နားလည်ပြီး လိုက်နာပါ၊ Arduino နှင့် ဆက်သွယ်ရန် အချိန်ကျရောက်ပြီဖြစ်သည်။ ထိုသို့ပြုလုပ်ရန်၊ လိုက်နာပါ။

သိပ္ပံပညာ

အောက်တွင်ပေးထားသော circuit diagram အတိုင်းချိတ်ဆက်ပါ။

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-ပေါင်းစပ်-အာရုံခံ-စမ်းသပ်-ပုံကြမ်း-ပုံ ၁။ဝါယာကြိုး/ချိတ်ဆက်မှုများ

ချိတ်ထားတဲ့ MPU6050 အာရုံခံကိရိယာ
5V VCC
GND GND
A4 SDA
A5 SCA

Arduino IDE ကို ထည့်သွင်းခြင်း။ 

ဦးစွာ၊ သင်သည် ၎င်း၏တရားဝင်မှ Arduino IDE Software ကို ထည့်သွင်းရန် လိုအပ်သည်။ webဆိုက်ဒ်။ ဤသည်မှာ “Arduino IDE ထည့်သွင်းနည်း” ဆိုင်ရာ ရိုးရှင်းသော အဆင့်ဆင့်လမ်းညွှန်ချက်ဖြစ်သည်။

စာကြည့်တိုက်များ ထည့်သွင်းခြင်း။ 

ကုဒ်မတင်မီ၊ /Program တွင် အောက်ပါစာကြည့်တိုက်များကို ဒေါင်းလုဒ်လုပ်ပြီး ဇစ်ဖွင့်ပါ။ FileArduino ဘုတ်နှင့်အတူ အာရုံခံကိရိယာကို အသုံးပြုရန်အတွက် s (x86)/Arduino/Libraries (မူလ)။ ဤသည်မှာ "Arduino IDE တွင် စာကြည့်တိုက်များထည့်နည်း" ဆိုင်ရာ ရိုးရှင်းသော အဆင့်ဆင့်လမ်းညွှန်ချက်ဖြစ်သည်။

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_ရိုးရှင်းသော

ကုတ် 

ယခု အောက်ပါကုဒ်ကို ကူးယူပြီး Arduino IDE Software သို့ အပ်လုဒ်လုပ်ပါ။

#include “I2Cdev.h” #include “MPU6050.h” #ပါဝင်သည် #ပါဝင်ပါတယ်။ MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_ရိုးရှင်းသော သံလိုက်အိမ်မြှောင်; int085_t ပုဆိန်၊ ay၊ az; int5883_t gx၊ gy၊ gz; #define LED_PIN 16 bool blinkState = false; void setup() { 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(true); // hmc6050L သို့ gateway အတွက် ရှောင်ကွင်းမုဒ်ကို သတ်မှတ်ပါ // ကနဦး hmc2l Compass.Set 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // လုပ်ဆောင်ချက် 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”); // 'စံ' ဘားရိုမက်ထရစ် // ဖိအား 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); // တဘ်-ခြားထားသော accel/gyro x/y/z တန်ဖိုးများကို 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); float ခေါင်းစီး =
Compass.GetHeadingDegrees(); Serial.print(“ခေါင်းစီး: \t”); Serial.println(ခေါင်းစဉ် ); လှုပ်ရှားမှုကိုညွှန်ပြရန် // မျက်တောင်ခတ် LED blinkState = !blinkState;
digitalWrite(LED_PIN၊ blinkState); နှောင့်နှေး(500); }

စမ်းသပ်ကြည့်ရအောင် 

ကုဒ်ကို အပ်လုဒ်လုပ်ပြီးသည်နှင့်၊ ဆားကစ်ကို စမ်းသပ်ရန် အချိန်ရောက်ပါပြီ။ Arduino ပရိုဂရမ်ရှိ ကုဒ်သည် အာရုံခံကိရိယာဒေတာကိုဖတ်ရှုနိုင်ပြီး အာရုံခံကိရိယာများ၏ အမျိုးမျိုးသောပုံစံများကို သတ်မှတ်နိုင်စေသည့် ၎င်းတို့၏စာကြည့်တိုက်များကို အသုံးပြု၍ အာရုံခံကိရိယာများနှင့် ချိတ်ဆက်ပေးသည်။ ထို့နောက် serial port မှ sensor data ကို print ထုတ်ပါသည်။ ပတ်လမ်းတစ်ခုခုလုပ်ဆောင်နေကြောင်းပြသရန် LED ကိုအသုံးပြုသည်။ ၎င်းသည် ကုဒ်သည် အာရုံခံကိရိယာတန်ဖိုးများကို တက်ကြွစွာဖတ်နေကြောင်း ညွှန်ပြသော loop လုပ်ဆောင်ချက်ကို လုပ်ဆောင်သည့်အခါတိုင်း LED မှမှိတ်တုတ်မှိတ်တုတ်ဖြစ်သည်။

အလုပ်ရှင်းလင်းချက် 

ကုဒ်သည် circuit ၏အလုပ်လုပ်ပုံကိုအခြေခံသည့်အဓိကအရာဖြစ်သည်။ ဒီတော့ ကုဒ်ကို နားလည်ရအောင်။

  • ပထမဦးစွာ၊ ၎င်းတွင် အာရုံခံကိရိယာများနှင့် ဆက်သွယ်ရန် စာကြည့်တိုက်များစွာ ပါဝင်သည်-
  • “I2Cdev.h” နှင့် “MPU6050.h” တို့သည် MPU6050 6-axis accelerometer/gyroscope အာရုံခံကိရိယာအတွက် စာကြည့်တိုက်များဖြစ်သည်
  • “Adafruit_BMP085.h” သည် BMP085 barometric ဖိအားအာရုံခံကိရိယာအတွက် စာကြည့်တိုက်တစ်ခုဖြစ်သည်။
  • “HMC5883L_Simple.h” သည် HMC5883L သံလိုက်မီတာအာရုံခံကိရိယာအတွက် စာကြည့်တိုက်တစ်ခုဖြစ်သည်။
  • ထို့နောက် MPU6050 accelgyro၊ Adafruit_BMP085 bmp နှင့် HMC5883L_Simple Compass အတွက် ကမ္ဘာလုံးဆိုင်ရာအရာဝတ္ထုများကို ဖန်တီးပေးသည်။
  • ထို့နောက်၊ MPU6050 ၏အရှိန်မြှင့်မီတာအတွက် ax၊ ay နှင့် az ကဲ့သို့သော အာရုံခံကိရိယာတန်ဖိုးများကို သိမ်းဆည်းရန်နှင့် HMC5883L ၏ magnetometer အတွက်ဦးတည်ရန် အချို့သောကိန်းရှင်များကို သတ်မှတ်သည်။ ၎င်းသည် LED_PIN ကိန်းသေနှင့် blinkState ကိန်းရှင်ကို သတ်မှတ်သည်။
  • setup() function သည် serial communication ကို စတင်ပြီး I2C ဆက်သွယ်မှုကို စတင်သည်။ ထို့နောက် အာရုံခံကိရိယာ သုံးခုကို အစပြုသည်။
  • BMP085 အာရုံခံကိရိယာကို start() နည်းလမ်းကိုခေါ်ဆိုခြင်းဖြင့် အစပြုပါသည်။ အာရုံခံကိရိယာကို ရှာမတွေ့ကြောင်း ညွှန်ပြပြီး ၎င်းသည် အမှားပြန်ဖြစ်သွားပါက၊ ပရိုဂရမ်သည် အဆုံးမဲ့ loop တစ်ခုသို့ ဝင်ရောက်ကာ အမှတ်စဉ် ပို့တ်ပေါ်ရှိ အမှားသတင်းကို ပရင့်ထုတ်သည်။
  • MPU6050 အာရုံခံကိရိယာအား initialize() နည်းလမ်းကိုခေါ်ဆိုပြီး မှန်ကန်မှုရှိမရှိ စစ်ဆေးခြင်းဖြင့် အစပြုပါသည်။ ပြီးတော့ MPU2 အတွက် I6050C ရှောင်ကွင်းကို ဖွင့်ပေးထားတယ်။
  • HMC5883L အာရုံခံကိရိယာသည် SetDeclination၊ SetS ကဲ့သို့သော လုပ်ဆောင်ချက်အချို့ကို ခေါ်ဆိုခြင်းဖြင့် အစပြုပါသည်။ampအာရုံခံကိရိယာအတွက် မတူညီသောပုံစံများကို သတ်မှတ်ခြင်းအတွက် lingMode၊ SetScale နှင့် SetOrientation။
  • loop() လုပ်ဆောင်ချက်တွင်၊ ကုဒ်သည် အာရုံခံကိရိယာသုံးခုမှ ဒေတာကိုဖတ်ပြီး နံပါတ်စဉ်အပေါက်တွင် ပရင့်ထုတ်သည်-
  • ၎င်းသည် အာရုံခံကိရိယာမှ ပင်လယ်ရေမျက်နှာပြင်ရှိ အပူချိန်၊ ဖိအား၊ အမြင့်ပေနှင့် ဖိအားများကို ဖတ်ရှုသည်။
  • ၎င်းသည် MPU6050 အာရုံခံကိရိယာမှ အရှိန်အဟုန်နှင့် gyroscope တိုင်းတာမှုများကို ဖတ်သည်။
  • ၎င်းသည် အာရုံခံကိရိယာ ညွှန်ပြနေသည့် ဦးတည်ရာနှင့် သံလိုက်မြောက်ဘက်သို့ ကျရောက်နေသည့် လမ်းကြောင်းကြားထောင့်ဖြစ်သည့် HMC5883L အာရုံခံကိရိယာမှ ခေါင်းစီးကို ဖတ်သည်။
  • နောက်ဆုံးတွင်၊ ၎င်းသည် လှုပ်ရှားမှုကိုညွှန်ပြရန် LED ကို မှိတ်တုတ်မှိတ်တုတ်ထားပြီး အာရုံခံကိရိယာများကို ပြန်လည်မဖတ်မီ ခဏစောင့်ပါ။

စာရွက်စာတမ်းများ / အရင်းအမြစ်များ

ARDUINO GY87 ပေါင်းစပ်အာရုံခံစမ်းသပ်မှု ပုံကြမ်း [pdf] အသုံးပြုသူလက်စွဲ
GY87 ပေါင်းစပ်အာရုံခံစမ်းသပ်ပုံကြမ်း၊ GY87၊ ပေါင်းစပ်အာရုံခံကိရိယာစမ်းသပ်ပုံကြမ်း၊ အာရုံခံစမ်းသပ်ပုံကြမ်း၊ စမ်းသပ်ပုံကြမ်း

ကိုးကား

မှတ်ချက်တစ်ခုချန်ထားပါ။

သင့်အီးမေးလ်လိပ်စာကို ထုတ်ပြန်မည်မဟုတ်ပါ။ လိုအပ်သောအကွက်များကို အမှတ်အသားပြုထားသည်။ *