ARDUINO GY87 مشترکہ سینسر ٹیسٹ خاکہ
تعارف
اگر آپ ایک شوقین بنانے والے یا روبوٹکس کے شوقین ہیں، تو آپ اس چھوٹے سے لیکن طاقتور ماڈیول کو دیکھ چکے ہیں اگر آپ ایک شوقین بنانے والے یا روبوٹکس کے شوقین ہیں، تو آپ اس چھوٹے لیکن طاقتور ماڈیول BMP085 بیرومیٹر کو دیکھ چکے ہیں۔ GY-87 IMU ماڈیول آپ کے پروجیکٹس میں موشن سینسنگ شامل کرنے کا ایک بہترین طریقہ ہے، جیسا کہ خود توازن رکھنے والا روبوٹ یا کواڈ کاپٹر۔
لیکن اس سے پہلے کہ آپ GY-87 IMU ماڈیول کے ساتھ تجربہ شروع کر سکیں، آپ کو یہ جاننا ہوگا کہ اسے اپنے Arduino بورڈ کے ساتھ کیسے انٹرفیس کرنا ہے۔ یہ وہ جگہ ہے جہاں یہ بلاگ آتا ہے! مندرجہ ذیل پیراگراف میں، ہم GY-87 IMU ماڈیول کی بنیادی باتوں کا احاطہ کریں گے، اسے کیسے ترتیب دیا جائے، اور سینسر ڈیٹا کو پڑھنے کے لیے Arduino کوڈ کیسے لکھا جائے۔ ہم عام مسائل کو حل کرنے کے لیے کچھ تجاویز اور وسائل بھی فراہم کریں گے۔
لہذا، اگر آپ شروع کرنے کے لیے تیار ہیں، آئیے اس میں غوطہ لگائیں اور GY-87 IMU ماڈیول کو Arduino کے ساتھ انٹرفیس کرنے کے بارے میں سیکھیں!
GY-87 IMU MPU6050 کیا ہے؟
Inertial پیمائشی یونٹ (IMU) ماڈیولز جیسے GY-87 بہت سارے سینسر کو ایک ہی پیکج میں جوڑتے ہیں، جیسے MPU6050 accelerometer/gyroscope، HMC5883L میگنیٹومیٹر، اور BMP085 بیرومیٹرک پریشر سینسر۔ لہذا، GY-87 IMU MPU6050 ایک آل ان ون 9-axis موشن ٹریکنگ ماڈیول ہے جو 3-axis gyroscope، 3-axis accelerometer، 3-axis magnetometer، اور ایک ڈیجیٹل موشن پروسیسر کو یکجا کرتا ہے۔ یہ روبوٹک پروجیکٹس میں بہت زیادہ استعمال ہوتا ہے، جیسے کواڈ کوپٹرز اور دیگر بغیر پائلٹ کے فضائی گاڑیاں (UAVs)، کیونکہ یہ درست طریقے سے سمت اور حرکت کی پیمائش اور ٹریک کر سکتا ہے۔ یہ دیگر ایپلی کیشنز، جیسے نیویگیشن، گیمنگ، اور ورچوئل رئیلٹی میں بھی استعمال ہوتا ہے۔
ہارڈ ویئر کے اجزاء
آپ کو GY-87 IMU MPU6050 HMC5883L BMP085 ماڈیول Arduino کے ساتھ انٹرفیس کرنے کے لیے درج ذیل ہارڈویئر کی ضرورت ہوگی۔
اجزاء | قدر | مقدار |
Arduino UNO | – | 1 |
MPU6050۔ سینسر ماڈیول | GY-87 | 1 |
بریڈ بورڈ | – | 1 |
جمپر وائرز | – | 1 |
GY-87 Arduino کے ساتھ
اب جب کہ آپ GY-87 کو سمجھ چکے ہیں، یہ Arduino کے ساتھ انٹرفیس کرنے کا وقت ہے۔ ایسا کرنے کے لیے، فالو کریں اب جب کہ آپ GY-87 کو سمجھ چکے ہیں، یہ Arduino کے ساتھ انٹرفیس کرنے کا وقت ہے۔ ایسا کرنے کے لیے، پیروی کریں۔
یوجنابدق
نیچے دیے گئے سرکٹ ڈایاگرام کے مطابق کنکشن بنائیں
GY-87 IMU MPU6050 HMC5883L BMP085 Arduinoوائرنگ / کنکشن
Arduino | MPU6050 سینسر |
5V | وی سی سی |
جی این ڈی | جی این ڈی |
A4 | ایس ڈی اے |
A5 | ایس سی اے |
Arduino IDE انسٹال کرنا
سب سے پہلے، آپ کو اس کے آفیشل سے Arduino IDE سافٹ ویئر انسٹال کرنے کی ضرورت ہے۔ webسائٹ Arduino. یہاں "Arduino IDE کو انسٹال کرنے کا طریقہ" پر ایک سادہ مرحلہ وار گائیڈ ہے۔
لائبریریوں کی تنصیب
اس سے پہلے کہ آپ کوڈ اپ لوڈ کرنا شروع کریں، مندرجہ ذیل لائبریریوں کو /پروگرام پر ڈاؤن لوڈ اور ان زپ کریں۔ Files (x86)/Arduino/Libraries (پہلے سے طے شدہ) سینسر کو Arduino بورڈ کے ساتھ استعمال کرنے کے لیے۔ یہاں "Arduino IDE میں لائبریریوں کو کیسے شامل کیا جائے" کے بارے میں ایک آسان مرحلہ وار گائیڈ ہے۔
- MPU6050۔
- Adafruit_BMP085
- HMC5883L_Simple
کوڈ
اب درج ذیل کوڈ کو کاپی کریں اور اسے Arduino IDE سافٹ ویئر پر اپ لوڈ کریں۔
#شامل "I2Cdev.h" #شامل "MPU6050.h" #شامل #شامل MPU085 accelgyro؛ Adafruit_BMP5883 bmp; HMC6050L_Simple کمپاس؛ int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; باطل سیٹ اپ () { 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 کے گیٹ وے کے لیے بائی پاس موڈ سیٹ کریں 2، 'E')؛ Compass.SetSamplingMode(COMPASS_SINGLE)؛
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // سرگرمی پن موڈ (LED_PIN، OUTPUT) کو چیک کرنے کے لیے Arduino LED کو ترتیب دیں؛ } void loop() {
سیریل پرنٹ ("درجہ حرارت = ")؛ Serial.print(bmp.readTemperature());
Serial.println("*C")؛ سیریل پرنٹ ("دباؤ = ")؛
Serial.print(bmp.readPressure())؛ Serial.println("پا")؛ // 'معیاری' بیرومیٹرک // دباؤ 1013.25 ملی بار = 101325 Pascal Serial.print ("اونچائی = ") فرض کرتے ہوئے اونچائی کا حساب لگائیں۔ Serial.print(bmp.readAltitude())؛ Serial.println("میٹر")؛ سیریل پرنٹ ("سیل سطح پر دباؤ (حساب شدہ) = ")؛
Serial.print(bmp.readSealevelPressure())؛ Serial.println("پا")؛
سیریل پرنٹ ("حقیقی اونچائی = ")؛ Serial.print(bmp.readAltitude(101500))؛
Serial.println("meters"); // ڈیوائس سے خام accel/gyro پیمائش پڑھیں accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // ڈسپلے ٹیب سے الگ کردہ accel/gyro x/y/z اقدار Serial.print("a/g:\t")؛ سیریل پرنٹ (کلہاڑی)؛
سیریل پرنٹ ("\t")؛ Serial.print(ay); سیریل پرنٹ ("\t")؛ Serial.print(az);
سیریل پرنٹ ("\t")؛ Serial.print(gx)؛ سیریل پرنٹ ("\t")؛ سیریل پرنٹ (جی)؛
سیریل پرنٹ ("\t")؛ Serial.println(gz)؛ فلوٹ سرخی =
Compass.GetHeadingDegrees(); سیریل پرنٹ ("ہیڈنگ: \t")؛ Serial.println( سرخی ); // Blink LED سرگرمی کی نشاندہی کرنے کے لیے blinkState = !blinkState;
ڈیجیٹل رائٹ (LED_PIN، blinkState)؛ تاخیر (500)؛ }
آئیے اس کی جانچ کریں۔
ایک بار جب آپ کوڈ اپ لوڈ کرتے ہیں، تو یہ سرکٹ کی جانچ کرنے کا وقت ہے! Arduino پروگرام میں کوڈ ان کی لائبریریوں کا استعمال کرتے ہوئے سینسر کے ساتھ انٹرفیس کرتا ہے، جو اسے سینسر کے ڈیٹا کو پڑھنے اور سینسر کی مختلف کنفیگریشنز سیٹ کرنے کی اجازت دیتا ہے۔ پھر یہ سیریل پورٹ پر سینسر ڈیٹا کو پرنٹ کرتا ہے۔ ایل ای ڈی کو یہ دکھانے کے لیے استعمال کیا جاتا ہے کہ سرکٹ کچھ کر رہا ہے۔ اس کا مطلب ہے کہ جب بھی لوپ فنکشن چلایا جاتا ہے تو ایل ای ڈی پلک جھپکتی ہے، اس بات کا اشارہ ہے کہ کوڈ فعال طور پر سینسر کی اقدار کو پڑھ رہا ہے۔
کام کی وضاحت
کوڈ وہ اہم چیز ہے جس پر سرکٹ کا کام ہوتا ہے۔ تو، آئیے کوڈ کو سمجھتے ہیں:.
- سب سے پہلے، اس میں سینسر کے ساتھ انٹرفیس کرنے کے لیے کئی لائبریریاں شامل ہیں:
- "I2Cdev.h" اور "MPU6050.h" MPU6050 6-axis accelerometer/gyroscope سینسر کے لیے لائبریریاں ہیں
- "Adafruit_BMP085.h" BMP085 بیرومیٹرک پریشر سینسر کے لیے ایک لائبریری ہے۔
- "HMC5883L_Simple.h" HMC5883L میگنیٹومیٹر سینسر کے لیے ایک لائبریری ہے۔
- پھر یہ تین سینسروں کے لیے عالمی اشیاء بناتا ہے: MPU6050 accelgyro، Adafruit_BMP085 bmp، اور HMC5883L_Simple Compass۔
- اس کے بعد، یہ سینسر کی قدروں کو ذخیرہ کرنے کے لیے کچھ متغیرات کی وضاحت کرتا ہے، جیسے کہ MPU6050 کے ایکسلرومیٹر کے لیے ax، ay، اور az اور HMC5883L کے میگنیٹومیٹر کی طرف جانا۔ اور یہ ایک LED_PIN مستقل اور ایک blinkState متغیر کی وضاحت کرتا ہے۔
- سیٹ اپ() فنکشن سیریل کمیونیکیشن شروع کرتا ہے اور I2C کمیونیکیشن شروع کرتا ہے۔ پھر یہ تین سینسر شروع کرتا ہے:
- BMP085 سینسر begin() طریقہ کو کال کرکے شروع کیا جاتا ہے۔ اگر یہ غلط لوٹتا ہے، اس بات کی نشاندہی کرتا ہے کہ سینسر نہیں مل سکا، پروگرام ایک لامحدود لوپ میں داخل ہوتا ہے اور سیریل پورٹ پر غلطی کا پیغام پرنٹ کرتا ہے۔
- MPU6050 سینسر کو ابتدائیہ () طریقہ کو کال کرکے اور یہ چیک کرکے شروع کیا جاتا ہے کہ آیا یہ صحیح طریقے سے کام کر رہا ہے۔ اور اس نے MPU2 کے لیے فعال I6050C بائی پاس سیٹ کیا۔
- HMC5883L سینسر کچھ فنکشنز کو کال کرکے شروع کیا جاتا ہے، جیسے SetDeclination، SetSamplingMode، SetScale، اور SetOrientation، سینسر کے لیے مختلف کنفیگریشنز ترتیب دینے کے لیے۔
- لوپ() فنکشن میں، کوڈ تین سینسر سے ڈیٹا پڑھتا ہے اور اسے سیریل پورٹ پر پرنٹ کرتا ہے۔
- یہ سینسر سے سطح سمندر پر درجہ حرارت، دباؤ، اونچائی اور دباؤ پڑھتا ہے۔
- یہ MPU6050 سینسر سے خام سرعت اور گائروسکوپ کی پیمائش کو پڑھتا ہے۔
- یہ HMC5883L سینسر سے سرخی پڑھتا ہے، جو اس سمت کے درمیان زاویہ ہے جس میں سینسر اشارہ کر رہا ہے اور اس سمت جس میں مقناطیسی شمال واقع ہے۔
- آخر میں، یہ سرگرمی کی نشاندہی کرنے کے لیے ایل ای ڈی کو جھپکتا ہے اور سینسر کو دوبارہ پڑھنے سے پہلے ایک لمحہ انتظار کرتا ہے۔
دستاویزات / وسائل
![]() |
ARDUINO GY87 مشترکہ سینسر ٹیسٹ خاکہ [پی ڈی ایف] یوزر مینوئل GY87 مشترکہ سینسر ٹیسٹ خاکہ، GY87، مشترکہ سینسر ٹیسٹ خاکہ، سینسر ٹیسٹ خاکہ، ٹیسٹ خاکہ |