کوڈ تلاش کریں

آردوینو کے ساتھ CJMCU VL53L0X لیزر فاصلہ میٹر استعمال کرنا

آردوینو کے ساتھ CJMCU VL53L0X لیزر فاصلہ میٹر استعمال کرنا

یہ ٹیوٹوریل ظاہر کرتا ہے کہ Arduino کے ساتھ CJMCU VL53L0X لیزر فاصلہ میٹر کیسے استعمال کیا جائے۔ یہ ماجیول، جس میں Texas Instruments کا VL53L0X ٹائم-آف-فلائٹ سینسر اور TXS0108E بائی ڈائریکشنل لیول شفٹر شامل ہے (ویڈیو میں 00:06 پر)، دو میٹر تک درست فاصلہ پیمائش فراہم کرتا ہے (ویڈیو میں 00:52 پر)۔ مختلف منطقی سطحوں (3.3V، 1.8V، 5V) کے ساتھ اس کی مطابقت مختلف مائیکرو کنٹرولرز کے ساتھ انضمام کو آسان بناتی ہے (ویڈیو میں 00:21 پر)۔ یہ پروجیکٹ وسیع امکانات کی ایک رینج کھولتا ہے۔

پروجیکٹ آئیڈیاز:

  • روبوٹکس: روبوٹس میں رکاوٹ سے بچنے کا نظام نافذ کریں۔
  • آٹومیشن: قربت کی بنیاد پر مشینری کو کنٹرول کریں۔
  • سمارٹ ہوم: فاصلے کی بنیاد پر خودکار روشنی بنائیں۔
  • سیکیورٹی: قربت پر مبنی الارم سسٹم تیار کریں۔

ہارڈویئر/اجزاء

اس پروجیکٹ کو بنانے کے لیے، آپ کو درج ذیل اجزاء کی ضرورت ہوگی:

  • Arduino بورڈ (کوئی بھی ماڈل کام کرے گا)
  • CJMCU VL53L0X لیزر فاصلہ میٹر ماجیول
  • جمپر تار

وائرنگ گائیڈ

VL53L0X ماجیول Arduino سے درج ذیل طریقے سے جڑتا ہے:

ماجیول کے VCC پن کو Arduino کے 5V پن سے جوڑیں۔ ماجیول کا اندرونی ریگولیٹر سینسر کے لیے درکار 3.3V کو سنبھالتا ہے۔ (ویڈیو میں 01:50 پر)

ماجیول کے GND پن کو Arduino کے GND پن سے جوڑیں۔

ماجیول کے SDA پن کو Arduino کے A4 پن سے جوڑیں۔

ماجیول کے SCL پن کو Arduino کے A5 پن سے جوڑیں۔

XSHUT پن کو غیر منسلک چھوڑ دیں جب تک کہ آپ کو شٹ ڈاؤن کنٹرول کے لیے اسے استعمال کرنے کی ضرورت نہ ہو۔ (ویڈیو میں 03:50 پر)

کوڈ کی وضاحت

فراہم کردہ کوڈ VL53L0X لائبریری استعمال کرتا ہے۔ یہاں اہم قابل ترتیب حصوں کی وضاحت ہے:


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

VL53L0X sensor;

void setup()
{
  Serial.begin(9600);
  // ... دیگر سیٹ اپ کوڈ ...
  sensor.setTimeout(500); // ٹائم آؤٹ 500ms پر سیٹ کریں (ویڈیو میں 06:40 پر)
  sensor.startContinuous(); // مسلسل پیمائش موڈ شروع کریں (ویڈیو میں 06:50 پر)
}

void loop()
{
  Serial.print(sensor.readRangeContinuousMillimeters()); // فاصلہ ملی میٹر میں پڑھیں (ویڈیو میں 07:01 پر)
  // ... دیگر لوپ کوڈ ...
}

sensor.setTimeout(500) لائن فاصلہ پیمائش کے لیے ٹائم آؤٹ 500 ملی سیکنڈ پر سیٹ کرتی ہے۔ اگر آپ کی ایپلیکیشن کے لیے ضروری ہو تو اس قدر کو ایڈجسٹ کریں (ویڈیو میں 06:40 پر)۔ sensor.startContinuous() فنکشن مسلسل رینجنگ شروع کرتا ہے، جو جلد از جلد فاصلہ ریڈنگ فراہم کرتا ہے (ویڈیو میں 06:50 پر)۔ sensor.readRangeContinuousMillimeters() فنکشن ناپا گیا فاصلہ ملی میٹر میں واپس کرتا ہے (ویڈیو میں 07:01 پر)۔

لائیو پروجیکٹ/ڈیموسٹریشن

ویڈیو سینسر کے آپریشن کو ظاہر کرتی ہے، جس میں دکھایا گیا ہے کہ فاصلہ ریڈنگ کیسے بدلتی ہے جب سینسر کا ہدف سے فاصلہ تبدیل ہوتا ہے۔ ریڈنگز چند ملی میٹر کے اندر درست ہیں، خاص طور پر 10 ملی میٹر سے زیادہ فاصلے پر (ویڈیو میں 08:20 پر)۔ بہت قریبی رینج میں (10 ملی میٹر سے کم)، درستگی کم ہو جاتی ہے (ویڈیو میں 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++
/* This example shows how to use continuous mode to take
range measurements with the VL53L0X. It is based on
vl53l0x_ContinuousRanging_Example.c from the VL53L0X API.

The range readings are in units of mm. 
Updated by Ahmad Shamshiri for Robojax.com on July 23, 2018 in Ajax, Ontario, Canada.
Watch video instructions for this code: https://youtu.be/0PnAyt51IU4
Download the library and get other resources for this code at http://robojax.com
*/

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

VL53L0X sensor;

void setup()
{
  Serial.begin(9600);
  Serial.println("Robojax CJMCU VL523L0X laser distance test");
  Wire.begin();

  sensor.init();
  sensor.setTimeout(500);

  // Start continuous back-to-back mode (take readings as
  // fast as possible).  To use continuous timed mode
  // instead, provide a desired inter-measurement period in
  // ms (e.g. sensor.startContinuous(100)).
  sensor.startContinuous();
}

void loop()
{
  Serial.print(sensor.readRangeContinuousMillimeters());// print distance

  if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }

  Serial.println();
}

وسائل اور حوالہ جات

فائلیں📁

فریٹزنگ فائل

  • Adafruit VL6180X Time of Flight Distance Sensor
    Fritzing part for the Adafruit VL6180X Time of Flight distance sensor. This sensor measures absolute distance up to 100mm and ambient light, communicating via I2C. Includes the sensor breakout board and pin connections for use in Fritzing projects.
    Adafruit VL6180X Time of Flight Distance Sensor-1.fzpz 0.02 MB