استخدام مقياس مسافة الليزر VL53L0X مع Arduino

استخدام مقياس مسافة الليزر VL53L0X مع Arduino

في هذا البرنامج التعليمي ، سوف نستكشف كيفية استخدام مقياس مسافة الليزر VL53L0X مع اردوينو. يتيح لك هذا الجهاز قياس المسافات بدقة باستخدام الليزر ، مما يجعله مثاليا لمختلف التطبيقات مثل الروبوتات والأتمتة. بنهاية هذا البرنامج التعليمي ، سيكون لديك إعداد وظيفي يمكنه قياس المسافات وعرضها في الشاشة التسلسلية.

VL53L0X 200cm range sensor-blue

بالنسبة لمشروعنا ، سنستخدم مكتبة Adafruit VL53L0X ، والتي تبسط عملية التفاعل مع المستشعر. توفر هذه المكتبة الوظائف اللازمة لتهيئة المستشعر وقراءة القياسات والتعامل مع أي أخطاء قد تنشأ. يمكنك الرجوع إلى الفيديو للحصول على دليل مرئي حول الإعداد (في الفيديو الساعة 02:15).

شرح الأجهزة

تشمل المكونات الرئيسية لهذا المشروع مقياس مسافة الليزر VL53L0X ولوحة Arduino. VL53L0X عبارة عن مستشعر لوقت الرحلة يستخدم الليزر لقياس مسافات تصل إلى 2 متر بدقة عالية. يعمل عبر بروتوكول I2C ، مما يسمح بسهولة الاتصال ب Arduino.

تعمل لوحة Arduino كمتحكم دقيق يعالج البيانات من VL53L0X. يرسل الأوامر إلى المستشعر ويستقبل قياسات المسافة ، والتي يمكن بعد ذلك عرضها أو استخدامها في تطبيقات أخرى. الأسلاك المناسبة أمر بالغ الأهمية لضمان قراءات دقيقة من المستشعر.

تفاصيل ورقة البيانات

الشركه المصنعهSTMicroelectronics
رقم الجزءVL53L0X
جهد التشغيل2.6 فولت إلى 3.5 فولت
نطاق30 مم إلى 2000 مم
دقة±3٪ نموذجي
واجههط2 ج
نطاق درجة الحرارة-40 درجة مئوية إلى +85 درجة مئوية
الاستهلاك الحالي<1 مللي أمبير (وضع الاستعداد)، 20 مللي أمبير (نشط)
حزمةVFLGA-8

  • تأكد من تشغيل المستشعر بشكل صحيح (2.6 فولت إلى 3.5 فولت).
  • حافظ على إعدادات عنوان I2C الصحيحة لتجنب التعارضات.
  • حافظ على نظافة المستشعر لقياسات المسافة بدقة.
  • استخدم مقاومات السحب المناسبة على خطوط I2C إذا لزم الأمر.
  • تجنب أشعة الشمس المباشرة على المستشعر للحصول على قراءات موثوقة.

تعليمات الأسلاك

Arduino Wiring for VL53L0X
Arduino Wiring for VL53L0X

لتوصيل مستشعر VL53L0X ب Arduino ، قم بتوصيل دبوس VCC الخاص بالمستشعر بدبوس 5V الموجود على Arduino. يجب توصيل دبوس GND بالأرض (GND) من Arduino. بالنسبة للاتصال I2C ، قم بتوصيل دبوس SDA الخاص ب VL53L0X بدبوس A4 على Arduino ، وقم بتوصيل دبوس SCL بدبوس A5. إذا كنت تستخدم نموذج Arduino مختلفا ، فراجع تعيينات دبوس SDA و SCL المحددة لتلك اللوحة.

على سبيل المثال ، في Arduino Mega ، يمكنك توصيل SDA بالدبوس 20 و SCL بالدبوس 21. تأكد من أن جميع الاتصالات آمنة لتجنب مشكلات الاتصال. إذا لم يستجب المستشعر ، فتحقق جيدا من الأسلاك وتأكد من تشغيل Arduino بشكل صحيح.

أمثلة على التعليمات البرمجية والإرشادات التفصيلية

يوجد أدناه مقتطف من وظيفة الإعداد التي تقوم بتهيئة مستشعر VL53L0X:

void setup() {
  Serial.begin(9600);
  while (! Serial) {
    delay(1);
  }
  Serial.println("Robojax Test");
  if (!lox.begin()) {
    Serial.println(F("Failed to boot VL53L0X"));
    while(1);
  }
}

يقوم هذا الرمز بتهيئة الاتصال التسلسلي ويحاول بدء تشغيل مستشعر VL53L0X. إذا فشل المستشعر في التمهيد ، فسيطبع رسالة خطأ ويوقف البرنامج.

بعد ذلك ، إليك مقتطف من وظيفة الحلقة التي تقرأ قياس المسافة:

void loop() {
  VL53L0X_RangingMeasurementData_t measure;
  lox.rangingTest(&measure, false);
  if (measure.RangeStatus != 4) {
    Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter);
  } else {
    Serial.println(" out of range ");
  }
  delay(100);
}

تقرأ هذه الكتلة باستمرار قياس المسافة من المستشعر وتطبعه على الشاشة التسلسلية. إذا كان القياس خارج النطاق ، فإنه يشير إلى ذلك وفقا لذلك.

مظاهرة / ماذا تتوقع

عند تشغيل البرنامج ، يجب أن ترى قياسات المسافة معروضة في الشاشة التسلسلية. يجب تحديث القراءات كل 100 مللي ثانية. إذا كان المستشعر يشير إلى جسم ما ، فسيعرض المسافة بالمليمترات. إذا كان الكائن خارج النطاق ، فسيشير ذلك أيضا. تأكد من اختبار المستشعر ضمن نطاقه المحدد للحصول على أفضل النتائج (في الفيديو الساعة 10:00).

الطوابع الزمنية للفيديو

  • 00:00-مقدمة
  • 02:15- إعداد الأسلاك
  • 05:30- شرح الكود
  • 10:00-مظاهره

الصور

VL53L0X 200cm range sensor-blue
VL53L0X 200cm range sensor-blue
Arduino Wiring for VL53L0X
Arduino Wiring for VL53L0X
15-Using a VL53L0X laser distance meter in Arduino
اللغة: C++
تم النسخ!

الموارد والمراجع

ملفات📁

لا توجد ملفات متاحة.