آرڊينو-لوگو

ARDUINO GY87 گڏيل سينسر ٽيسٽ اسڪيچ

ARDUINO-GY87-گڏيل-سينسر-ٽيسٽ-خاڪا-پراڊڪٽ

تعارف

جيڪڏهن توهان هڪ شوقين ٺاهيندڙ آهيو يا هڪ روبوٽڪس جو شوقين، توهان هن ننڍڙن ۽ طاقتور ماڊل ۾ اچي چڪا آهيو جيڪڏهن توهان هڪ شوق ٺاهيندڙ آهيو يا روبوٽڪس جو شوقين آهيو، توهان هن ننڍڙن اڃا طاقتور ماڊل BMP085 بيروميٽر ۾ آيا آهيو. GY-87 IMU ماڊل توهان جي پروجيڪٽ ۾ موشن سينسنگ شامل ڪرڻ جو هڪ بهترين طريقو آهي، جهڙوڪ هڪ خود توازن روبوٽ يا ڪواڊ ڪاپٽر.
پر ان کان اڳ جو توھان GY-87 IMU ماڊل سان تجربو شروع ڪري سگھو ٿا، توھان کي ڄاڻڻ گھرجي ته ان کي پنھنجي Arduino بورڊ سان ڪيئن انٽرفيس ڪجي. اهو آهي جتي هي بلاگ اچي ٿو! هيٺ ڏنل پيراگرافن ۾، اسين GY-87 IMU ماڊل جي بنيادي ڳالهين کي ڍڪينداسين، ان کي ڪيئن سيٽ ڪيو وڃي، ۽ سينسر ڊيٽا کي پڙهڻ لاء Arduino ڪوڊ ڪيئن لکجي. اسان عام مسئلن کي حل ڪرڻ لاءِ ڪجهه تجويزون ۽ وسيلا پڻ فراهم ڪنداسين.
تنهن ڪري، جيڪڏهن توهان شروع ڪرڻ لاءِ تيار آهيو، اچو ته اندر وڃو ۽ GY-87 IMU ماڊل کي Arduino سان مداخلت ڪرڻ جي باري ۾ سکو!

GY-87 IMU MPU6050 ڇا آهي؟

اندروني ماپ يونٽ (IMU) ماڊلز جهڙوڪ GY-87 ڪيترن ئي سينسر کي هڪ واحد پيڪيج ۾ گڏ ڪن ٿا، جهڙوڪ MPU6050 accelerometer/gyroscope، HMC5883L magnetometer، ۽ BMP085 باروميٽرڪ پريشر سينسر. انهيءَ ڪري، GY-87 IMU MPU6050 هڪ آل-ان-ون 9-محور موشن ٽريڪنگ ماڊل آهي جيڪو 3-محور گيروسکوپ، 3-محور ايڪسيلروميٽر، 3-محور ميگنيٽو ميٽر، ۽ هڪ ڊجيٽل موشن پروسيسر کي گڏ ڪري ٿو. اهو روبوٽ پروجيڪٽ ۾ تمام گهڻو استعمال ڪيو ويندو آهي، جهڙوڪ ڪواڊڪوپٽرز ۽ ٻيون غير پائلٽ فضائي گاڏيون (UAVs)، ڇاڪاڻ ته اهو درست طريقي سان ماپ ڪري سگهي ٿو ۽ واقفيت ۽ حرڪت کي ٽريڪ ڪري سگهي ٿو. اهو ٻين ايپليڪيشنن ۾ پڻ استعمال ٿيندو آهي، جهڙوڪ نيويگيشن، گیمنگ، ۽ مجازي حقيقت.

هارڊويئر اجزاء

توھان کي ھيٺ ڏنل هارڊويئر جي ضرورت پوندي GY-87 IMU MPU6050 HMC5883L BMP085 Module Arduino سان انٽرفيس ڪرڻ لاءِ.

اجزاء قدر مقدار
Arduino UNO 1
ايم پي يو 6050 سينسر ماڊل GY-87 1
مانيءَ جو تختو 1
جمپر تار 1

GY-87 Arduino سان 

هاڻي ته توهان سمجهي ورتو آهي GY-87، اهو وقت آهي Arduino سان انٽرفيس ڪرڻ جو. انهي کي ڪرڻ لاء، پيروي ڪريو هاڻي ته توهان سمجهي ورتو آهي GY-87، اهو وقت آهي Arduino سان انٽرفيس ڪرڻ جو. ائين ڪرڻ لاء، پيروي ڪريو

اسڪيمي

ھيٺ ڏنل سرڪٽ ڊراگرام جي مطابق ڪنيڪشن ٺاھيو

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-گڏيل-سينسر-ٽيسٽ-خاڪا-انجير 1وائرنگ / ڪنيڪشن

آرڊينو MPU6050 سينسر
5V وي سي سي
جي اين ڊي جي اين ڊي
A4 ايس ڊي اي
A5 SCA

انسٽال ڪرڻ Arduino IDE 

پهرين، توهان کي ان جي سرڪاري مان Arduino IDE سافٽ ويئر انسٽال ڪرڻ جي ضرورت آهي webسائيٽ Arduino. هتي "Arduino IDE کي ڪيئن انسٽال ڪجي" تي هڪ سادي قدم قدم گائيڊ آهي.

لائبريريون لڳائڻ 

ان کان اڳ جو توھان ڪوڊ اپلوڊ ڪرڻ شروع ڪريو، ھيٺ ڏنل لائبريرين کي ڊائون لوڊ ۽ ان زپ ڪريو /Program Files (x86)/Arduino/Libraries (default) Arduino بورڊ سان سينسر استعمال ڪرڻ لاءِ. هتي "Arduino IDE ۾ لائبريريون ڪيئن شامل ڪرڻ" تي هڪ سادي قدم قدم گائيڊ آهي.

  • ايم پي يو 6050
  • Adafruit_BMP085
  • HMC5883L_Simple

ڪوڊ 

ھاڻي ھيٺ ڏنل ڪوڊ ڪاپي ڪريو ۽ ان کي اپلوڊ ڪريو Arduino IDE سافٽ ويئر تي.

#شامل "I2Cdev.h" #شامل "MPU6050.h" #شامل #شامل MPU085 accelgyro؛ Adafruit_BMP5883 bmp; HMC6050L_Simple Compass؛ int085_t ax, ay, az; int5883_t gx, gy, gz; # define LED_PIN 16 bool blinkState = غلط؛ void سيٽ اپ () { 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 (سچو)؛ // hmc6050L ڏانهن گيٽ وي لاءِ بائي پاس موڊ مقرر ڪريو // شروعات ڪريو hmc2L.com 5883، 'اي')؛ Compass.SetSamplingMode(COMPASS_SINGLE)؛
Compass.SetScale(COMPASS_SCALE_130)؛
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH)؛ // ترتيب ڏيو Arduino LED سرگرمي کي چيڪ ڪرڻ لاءِ پن موڊ (LED_PIN، OUTPUT)؛ } void loop() {
Serial.print("درجه حرارت =")؛ Serial.print(bmp.readTemperature());
Serial.println("*C")؛ Serial.print("پريشر =")؛
Serial.print(bmp.readPressure()); Serial.println("پا")؛ // 'معياري' باروميٽرڪ فرض ڪندي اوچائي جي حساب ڪريو // 1013.25 مليبار جو دٻاء = 101325 Pascal Serial.print("اوچائي = ")؛ Serial.print(bmp.readAltitude()); Serial.println("ميٽر")؛ Serial.print ("سمندري سطح تي دٻاء (حساب ٿيل) = ")؛
Serial.print(bmp.readSealevelPressure()); Serial.println("پا")؛
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 heading =
Compass.GetHeadingDegrees(); Serial.print("هيڊنگ: \ t")؛ Serial.println( عنوان )؛ // Blink LED سرگرمي ظاهر ڪرڻ لاءِ blinkState = !blinkState ;
digitalWrite(LED_PIN، blinkState)؛ دير (500)؛ }

اچو ته جانچ ڪريون 

هڪ دفعو توهان ڪوڊ اپ لوڊ ڪيو، اهو سرڪٽ کي جانچڻ جو وقت آهي! Arduino پروگرام ۾ ڪوڊ انهن جي لائبريرين کي استعمال ڪندي سينسر سان انٽرفيس ڪري ٿو، جيڪو ان کي سينسر ڊيٽا پڙهڻ ۽ سينسر جي مختلف ترتيبن کي سيٽ ڪرڻ جي اجازت ڏئي ٿو. پوء اهو سيريل پورٽ تي سينسر ڊيٽا کي پرنٽ ڪري ٿو. LED استعمال ڪيو ويندو آهي اهو ڏيکارڻ لاءِ ته سرڪٽ ڪجهه ڪري رهيو آهي. هن جو مطلب آهي ته LED هر دفعي لوپ فنڪشن کي هلندي آهي، اهو ظاهر ڪري ٿو ته ڪوڊ فعال طور تي پڙهي رهيو آهي سينسر ويلز.

ڪم جي وضاحت 

ڪوڊ وڏي شيءِ آهي جنهن تي سرڪٽ جي ڪم ڪندڙ بنياد آهي. سو، اچو ته سمجھون ڪوڊ:.

  • پهرين، ان ۾ ڪيترن ئي لائبريريون شامل آهن سينسر سان انٽرفيس ڪرڻ لاء:
  • “I2Cdev.h” ۽ “MPU6050.h” لائبريريون آهن MPU6050 6-axis accelerometer/gyroscope sensor لاءِ
  • "Adafruit_BMP085.h" هڪ لائبريري آهي BMP085 باروميٽرڪ پريشر سينسر لاءِ.
  • "HMC5883L_Simple.h" HMC5883L ميگنيٽو ميٽر سينسر لاءِ هڪ لائبريري آهي.
  • پوءِ اهو ٽن سينسر لاءِ عالمي شيون ٺاهي ٿو: MPU6050 accelgyro، Adafruit_BMP085 bmp، ۽ HMC5883L_Simple Compass.
  • اڳيون، اهو ڪجهه متغيرن کي بيان ڪري ٿو سينسر جي قيمتن کي ذخيرو ڪرڻ لاءِ، جهڙوڪ ax، ay، ۽ az MPU6050 جي ايڪسيليروميٽر لاءِ ۽ HMC5883L جي مقناطيسي ميٽر لاءِ سر ڪرڻ. ۽ اهو وضاحت ڪري ٿو هڪ LED_PIN مسلسل ۽ هڪ blinkState متغير.
  • سيٽ اپ () فنڪشن سيريل ڪميونيڪيشن شروع ٿئي ٿو ۽ I2C ڪميونيڪيشن شروع ٿئي ٿو. ان کان پوء اهو ٽن سينسر کي شروع ڪري ٿو:
  • BMP085 سينسر شروعاتي () طريقي سان سڏڻ سان شروع ڪيو ويو آهي. جيڪڏهن اهو غلط موٽائي ٿو، اهو ظاهر ڪري ٿو ته سينسر نه ملي سگهيو، پروگرام هڪ لامحدود لوپ ۾ داخل ٿئي ٿو ۽ سيريل پورٽ تي هڪ غلطي پيغام پرنٽ ڪري ٿو.
  • MPU6050 سينسر جي شروعات ڪئي وئي آهي ڪال ڪري شروعاتي () طريقي سان ۽ چيڪ ڪريو ته ڇا اهو صحيح ڪم ڪري رهيو آهي. ۽ اهو سيٽ ڪيو I2C بائي پاس MPU6050 لاءِ فعال.
  • HMC5883L سينسر جي شروعات ڪئي وئي آهي ڪال ڪندي ڪجهه افعال، جهڙوڪ SetDeclination، SetSamplingMode، SetScale، ۽ SetOrientation، سينسر لاءِ مختلف ترتيبن کي ترتيب ڏيڻ لاءِ.
  • لوپ () فنڪشن ۾، ڪوڊ ٽن سينسر مان ڊيٽا پڙهي ٿو ۽ ان کي سيريل پورٽ تي پرنٽ ڪري ٿو:
  • اهو سينسر مان سمنڊ جي سطح تي درجه حرارت، دٻاء، اونچائي، ۽ دٻاء پڙهي ٿو.
  • اهو MPU6050 سينسر مان خام تيز رفتار ۽ گيروسکوپ جي ماپ پڙهي ٿو.
  • اهو HMC5883L سينسر کان هيڊنگ پڙهي ٿو، جيڪو ان طرف جي وچ ۾ زاويه آهي جنهن ۾ سينسر اشارو ڪري رهيو آهي ۽ هدايت جنهن ۾ مقناطيسي اتر آهي.
  • آخرڪار، اها سرگرمي کي ظاهر ڪرڻ لاء LED کي چمڪيندو آهي ۽ سينسر کي ٻيهر پڙهڻ کان اڳ هڪ لمحو انتظار ڪري ٿو.

دستاويز / وسيلا

ARDUINO GY87 گڏيل سينسر ٽيسٽ اسڪيچ [pdf] استعمال ڪندڙ دستياب
GY87 گڏيل سينسر ٽيسٽ اسڪيچ، GY87، گڏيل سينسر ٽيسٽ اسڪيچ، سينسر ٽيسٽ اسڪيچ، ٽيسٽ اسڪيچ

حوالو

تبصرو ڇڏي ڏيو

توهان جو اي ميل پتو شايع نه ڪيو ويندو. گهربل فيلڊ نشان لڳل آهن *