رسم اختبار المستشعر المشترك لـ ARDUINO GY87
مقدمة
إذا كنت صانعًا متعطشًا أو متحمسًا للروبوتات، فقد صادفت هذه الوحدة الصغيرة والقوية في الوقت نفسه. إذا كنت صانعًا متعطشًا أو متحمسًا للروبوتات، فقد صادفت هذه الوحدة الصغيرة والقوية بمقياس BMP085. تعد وحدة GY-87 IMU طريقة رائعة لإضافة استشعار الحركة إلى مشاريعك، مثل روبوت ذاتي التوازن أو كوادكوبتر.
ولكن قبل أن تتمكن من البدء في تجربة وحدة GY-87 IMU، عليك أن تعرف كيفية ربطها بلوحة Arduino الخاصة بك. هذا هو المكان الذي تأتي فيه هذه المدونة! في الفقرات التالية سنغطي أساسيات وحدة GY-87 IMU وكيفية إعدادها وكيفية كتابة كود الاردوينو لقراءة بيانات المستشعر. سنقدم أيضًا بعض النصائح والموارد لاستكشاف المشكلات الشائعة وإصلاحها.
لذا، إذا كنت مستعدًا للبدء، فلنتعمق ونتعرف على كيفية ربط وحدة GY-87 IMU مع Arduino!
ما هو GY-87 IMU MPU6050
تجمع وحدات قياس القصور الذاتي (IMU) مثل GY-87 بين العديد من أجهزة الاستشعار في حزمة واحدة، مثل مقياس التسارع/الجيروسكوب MPU6050، ومقياس المغناطيسية HMC5883L، ومستشعر الضغط الجوي BMP085. ومن ثم، فإن GY-87 IMU MPU6050 عبارة عن وحدة تتبع حركة ذات 9 محاور متكاملة تجمع بين جيروسكوب ثلاثي المحاور ومقياس تسارع ثلاثي المحاور ومقياس مغناطيسي ثلاثي المحاور ومعالج حركة رقمي. يتم استخدامه كثيرًا في المشاريع الروبوتية، مثل المروحيات الرباعية وغيرها من المركبات الجوية بدون طيار (UAVs)، لأنه يمكنه قياس وتتبع الاتجاه والحركة بدقة. كما يتم استخدامه في تطبيقات أخرى، مثل الملاحة والألعاب والواقع الافتراضي.
مكونات الأجهزة
سوف تحتاج إلى الأجهزة التالية لربط وحدة GY-87 IMU MPU6050 HMC5883L BMP085 مع Arduino.
عناصر | قيمة | الكمية |
اردوينو اونو | – | 1 |
MPU6050 وحدة الاستشعار | GY-87 | 1 |
لوحة التوصيل | – | 1 |
أسلاك التوصيل | – | 1 |
GY-87 مع اردوينو
الآن بعد أن فهمت GY-87، حان الوقت للتواصل مع Arduino. للقيام بذلك، اتبع الآن بعد أن فهمت GY-87، حان الوقت للتواصل مع Arduino. للقيام بذلك، اتبع
تخطيطي
قم بإجراء الاتصالات وفقًا لمخطط الدائرة الموضح أدناه
GY-87 IMU MPU6050 HMC5883L BMP085 اردوينوالأسلاك / الاتصالات
أردوينو | مستشعر MPU6050 |
5V | بطاقة في سي سي |
أرضي | أرضي |
A4 | السبتيون |
A5 | إس سي أيه |
تثبيت اردوينو IDE
أولاً، تحتاج إلى تثبيت برنامج Arduino IDE من موقعه الرسمي webموقع اردوينو. فيما يلي دليل بسيط خطوة بخطوة حول "كيفية تثبيت Arduino IDE".
تثبيت المكتبات
قبل البدء في تحميل التعليمات البرمجية، قم بتنزيل المكتبات التالية وفك ضغطها على /Program Files (x86)/Arduino/Libraries (افتراضي) لاستخدام المستشعر مع لوحة Arduino. فيما يلي دليل بسيط خطوة بخطوة حول "كيفية إضافة مكتبات في Arduino IDE".
- MPU6050
- ادافروت_BMP085
- HMC5883L_بسيط
شفرة
الآن انسخ الكود التالي وقم بتحميله على برنامج Arduino IDE.
#include "I2Cdev.h" #include "MPU6050.h" #include #يشمل MPU085 تسارع. Adafruit_BMP5883 bmp; HMC6050L_بوصلة بسيطة؛ int085_t الفأس، المنعم يوسف، من الألف إلى الياء؛ int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; إعداد باطل () {Serial.begin (16)؛ Wire.begin(); // تهيئة الأجهزة Serial.println("تهيئة أجهزة I13C..."); // تهيئة bmp9600 if (!bmp.begin()) { Serial.println("تعذر العثور على مستشعر BMP2 صالح، تحقق (!bmp.begin()) { Serial.println("تعذر العثور على مستشعر BMP085 صالح، تحقق من Serial.println(accelgyro.testConnection() ? "نجاح اتصال MPU085" : "فشل اتصال MPU085"); accelgyro.setI6050CBypassEnabled(true);// تعيين وضع التجاوز للبوابة إلى hmc6050L // تهيئة hmc2l Compass.SetDeclination(5883, 5883، 'E')؛ البوصلة.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // تكوين Arduino LED لفحص النشاط pinMode(LED_PIN, OUTPUT); } حلقة فارغة() {
Serial.print("درجة الحرارة ="); Serial.print(bmp.readTemperature());
Serial.println("*C"); Serial.print("الضغط =");
Serial.print(bmp.readPressure()); Serial.println("باسكال"); // حساب الارتفاع بافتراض الضغط الجوي "القياسي" 1013.25 مليبار = 101325 باسكال Serial.print("Altitude = "); Serial.print(bmp.readAltitude()); Serial.println("متر"); Serial.print("الضغط عند مستوى سطح البحر (محسوب) =");
Serial.print(bmp.readSealevelPressure()); Serial.println("باسكال");
Serial.print("الارتفاع الحقيقي ="); Serial.print(bmp.readAltitude(101500));
Serial.println("متر"); // قراءة قياسات التسارع/الجيروسكوب الأولية من الجهاز accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // عرض قيم التسارع/الجيروسكوب 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); عنوان تعويم =
Compass.GetHeadingDegrees(); Serial.print("العنوان: \t"); Serial.println (العنوان)؛ // يومض مؤشر LED للإشارة إلى النشاط blinkState = !blinkState;
الكتابة الرقمية (LED_PIN، blinkState)؛ تأخير (500)؛ }
دعونا نختبره
بمجرد تحميل الكود، حان الوقت لاختبار الدائرة! يتفاعل الكود الموجود في برنامج Arduino مع المستشعرات باستخدام مكتباتها، مما يسمح له بقراءة بيانات المستشعر وضبط التكوينات المختلفة للمستشعرات. ثم يقوم بطباعة بيانات المستشعر عبر المنفذ التسلسلي. يتم استخدام مؤشر LED لإظهار أن الدائرة تفعل شيئًا ما. وهذا يعني أن مؤشر LED يومض في كل مرة يتم فيها تشغيل وظيفة الحلقة، مما يشير إلى أن الكود يقرأ قيم المستشعر بشكل نشط.
شرح العمل
الكود هو الشيء الرئيسي الذي يعتمد عليه عمل الدائرة. لذلك، دعونا نفهم الكود:.
- أولاً، يتضمن عدة مكتبات للتفاعل مع أجهزة الاستشعار:
- "I2Cdev.h" و"MPU6050.h" عبارة عن مكتبات لمستشعر التسارع/الجيروسكوب MPU6050 ذو 6 محاور
- "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 عن طريق استدعاء طريقة begin(). إذا أعاد هذا خطأ، مما يشير إلى تعذر العثور على المستشعر، يدخل البرنامج في حلقة لا نهائية ويطبع رسالة خطأ عبر المنفذ التسلسلي.
- تتم تهيئة مستشعر MPU6050 عن طريق استدعاء طريقة التهيئة () والتحقق مما إذا كان يعمل بشكل صحيح. وقام بضبط تجاوز I2C الممكّن لـ MPU6050.
- تتم تهيئة مستشعر HMC5883L عن طريق استدعاء بعض الوظائف، مثل SetDeclination وSetSamplingMode، وSetScale، وSetOrientation، لإعداد تكوينات مختلفة للمستشعر.
- في وظيفة ()loop، يقرأ الكود البيانات من المستشعرات الثلاثة ويطبعها عبر المنفذ التسلسلي:
- يقرأ درجة الحرارة والضغط والارتفاع والضغط عند مستوى سطح البحر من المستشعر.
- يقرأ قياسات التسارع والجيروسكوب الأولية من مستشعر MPU6050.
- يقرأ العنوان من مستشعر HMC5883L، وهي الزاوية بين الاتجاه الذي يشير إليه المستشعر والاتجاه الذي يقع فيه الشمال المغناطيسي.
- وأخيرًا، يومض مؤشر LED للإشارة إلى النشاط وينتظر لحظة قبل إعادة قراءة المستشعرات.
المستندات / الموارد
![]() |
رسم اختبار المستشعر المشترك لـ ARDUINO GY87 [بي دي اف] دليل المستخدم GY87 رسم اختبار المستشعر المشترك، GY87، رسم اختبار المستشعر المدمج، رسم اختبار المستشعر، رسم الاختبار |