استخدام مقياس مسافة ليزري CJMCU VL53L0X مع أردوينو

استخدام مقياس مسافة ليزري CJMCU VL53L0X مع أردوينو

يوضح هذا الدرس التعليمي كيفية استخدام مقياس المسافة الليزري CJMCU VL53L0X مع أردوينو. تتضمن هذه الوحدة مستشعر وقت الطيران VL53L0X من Texas Instruments ومحوّل مستويات ثنائي الاتجاه TXS0108E (في الفيديو عند :06)، وتوفّر قياس مسافات دقيقًا يصل إلى مترين (في الفيديو عند :52). توافُقها مع مستويات منطقية مختلفة (3.3V، 1.8V، 5V) يُبسّط التكامل مع متحكمات دقيقة مختلفة (في الفيديو عند :21). يفتح هذا المشروع آفاقًا واسعة من الإمكانيات.

أفكار مشاريع:

  • الروبوتات: تنفيذ آلية لتجنّب العوائق في الروبوتات.
  • الأتمتة: التحكم في الآلات بناءً على القرب.
  • المنزل الذكي: أنشئ إضاءة تلقائية بناءً على المسافة.
  • الأمن: طوّر نظام إنذار قائم على القرب.

الأجهزة/المكونات

لبناء هذا المشروع، ستحتاج إلى المكونات التالية:

  • لوحة أردوينو (أي طراز سيعمل)
  • CJMCU VL53L0X وحدة قياس المسافة بالليزر
  • أسلاك التوصيل

دليل الأسلاك

تتصل وحدة VL53L0X بالأردوينو كما يلي:

وصل دبوس VCC في الوحدة إلى دبوس 5V في الأردوينو. يتولى المنظم الداخلي للوحدة توفير 3.3V اللازمة للمستشعر. (في الفيديو عند 01:50)

قم بتوصيل دبوس GND في الوحدة بدبوس GND على الأردوينو.

وصل دبوس SDA الخاص بالوحدة إلى دبوس A4 على الأردوينو.

وصل دبوس SCL في الوحدة إلى دبوس A5 على لوحة الأردوينو

اترك دبوس XSHUT غير موصول ما لم تكن بحاجة إلى استخدامه للتحكم في إيقاف التشغيل. (في الفيديو عند 03:50)

شرح الشيفرة

يستخدم الكود المقدم مكتبة VL53L0X. فيما يلي شرح للأجزاء الرئيسية القابلة للتهيئة:


#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;

void setup()
{
  Serial.begin(9600);
  // ... other setup code ...
  sensor.setTimeout(500); // Set timeout to 500ms (in video at 06:40)
  sensor.startContinuous(); // Start continuous measurement mode (in video at 06:50)
}

void loop()
{
  Serial.print(sensor.readRangeContinuousMillimeters()); // Read distance in mm (in video at 07:01)
  // ... other loop code ...
}

الsensor.setTimeout(500)يحدد السطر مهلة قياسات المسافة إلى 500 مللي ثانية. اضبط هذه القيمة إذا لزم الأمر لتطبيقك (في الفيديو عند 06:40).sensor.startContinuous()تقوم الدالة ببدء القياس المستمر للمسافة، وتوفّر قراءات المسافة بأسرع ما يمكن (في الفيديو عند 06:50). الـsensor.readRangeContinuousMillimeters()تُعيد الدالة المسافة المقاسة بالمليمترات (في الفيديو عند 07:01).

مشروع مباشر/عرض توضيحي

يعرض الفيديو عمل المستشعر، موضحًا كيف تتغير قراءات المسافة مع تغير بُعد المستشعر عن الهدف. القراءات دقيقة في حدود بضعة مليمترات، خاصة عند مسافات أكبر من 10mm (في الفيديو عند 08:20). عند النطاقات القريبة جدًا (أقل من 10mm) تقل الدقة (في الفيديو عند 09:50). كما تُظهر التجربة أن الأسطح العاكسة يمكن أن تؤثر على القراءات، لا سيما إذا لم يكن الليزر عموديًا على السطح (في الفيديو عند 10:32).

الفصول

  • [00:00] مقدمة ونظرة عامة على المشروع
  • [00:48] تفاصيل مستشعر VL53L0X
  • [01:41] نظرة عامة على الوحدة والمواصفات
  • [02:55] التطبيقات والمعايير
  • [03:35] مخطط الأطراف والتوصيلات
  • [05:29] شرح الكود
  • [07:45] الأسلاك والتوصيلات
  • [08:18] عرض توضيحي مباشر
136-Source code for the VL523L0X distance measurement module for Arduino
اللغة: C++
تم النسخ!

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

ملفات📁

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