اندازهگیری فاصله با ماجیول لیزری VL53L0X 6 پایه برای آردوینو
در این آموزش، یاد میگیریم چگونه با استفاده از حساس(حس کننده) فاصلهسنج لیزری VL53L0X با ماجیول 6 پینی فاصله را اندازهگیری کنیم. این حساس(حس کننده) کوچک اما قدرتمند از فناوری زمان پرواز (time-of-flight) استفاده میکند تا اندازهگیریهای فاصله دقیق تا 200 cm را فراهم کند. با دنبال کردن این راهنما، خواهید توانست حساس(حس کننده) را با یک آردوینو راهاندازی کرده و مقادیر فاصله را مستقیماً از نمایشگر مسلسل خود بخوانید.

برای این پروژه از حساس(حس کننده) VL53L0X استفاده خواهیم کرد که جمعوجور است و ادغام آن در کاربردهای مختلف آسان میباشد. این حساس(حس کننده) از طریق I2C ارتباط برقرار میکند که اتصال آن به برد Arduino را ساده میسازد. در ویدیو میتوانید توضیحات و نمایشهای بیشتری از فرایند راهاندازی ببینید (در ویدیو در 04:00).
سختافزار به زبان ساده
VL53L0X یک حساس(حس کننده) فاصله زمانپرواز است که یک پرتو لیزر منتشر میکند و زمان بازگشت نور پس از برخورد با یک جسم را اندازهگیری میکند. این به آن اجازه میدهد تا فاصله تا جسم را بهطور دقیق محاسبه کند. این حساس(حس کننده) در ولتاژی بین 2.6 V تا 3.5 V کار میکند، اما به لطف رگولاتور ولتاژ داخلی میتواند با 5 V تغذیه شود.
ماجیول شش پایه دارد: VCC، GND، SDA (خط داده)، SCL (خط کلاک)، GPIO1 (ورودی/خروجی چندمنظوره) و XSHUT (پایه خاموشسازی). پایه GPIO1 در این پیکربندی استفاده نمیشود اما میتوان آن را بدون اتصال رها کرد. پایه XSHUT به شما امکان میدهد حساس(حس کننده) را خاموش کنید تا هنگام عدم استفاده مصرف انرژی کاهش یابد.
جزئیات دیتاشیت
| تولیدکننده | استی میکروالکترونیکس |
|---|---|
| شماره قطعه | VL53L0X |
| ولتاژ منطق/ورودی-خروجی | ۲٫۶ ولت تا ۳٫۵ ولت (۵ ولت با رگولاتور) |
| دمای کاری | -20 °C تا 70 °C |
| دامنه اندازهگیری | 30 mm تا 2000 mm |
| فرکانس ارتباط I2C | 400 کیلوهرتز |
| اندازه | 4.4 میلیمتر × 2.4 میلیمتر × 1 میلیمتر |
- از تأمین منبع تغذیه مناسب اطمینان حاصل کنید (5 ولت توصیه میشود).
- SDA و SCL را به پایههای مناسب I2C روی آردوینو وصل کنید.
- در صورت نیاز، از مقاومتهای پول-آپ روی خطوط I2C استفاده کنید.
- GPIO1 را بدون اتصال رها نکنید؛ میتوان آن را شناور گذاشت.
- در حین کار، پایه XSHUT را در وضعیت ولتاژ بالا نگه دارید.
- برای دقت بهتر، فاصلهها را در محیطی با نور کافی اندازهگیری کنید.
- حساس(حس کننده) را برای اندازهگیریهای دقیق کالیبره کنید.
- محدوده حساس(حس کننده) را با قرار دادن اشیاء در فواصل مختلف آزمایش کنید.
- خروجی سریال را برای خوانشهای فاصله و پیامهای تایماوت بررسی کنید.
دستورالعملهای سیمکشی

برای سیمکشی حساس(حس کننده) VL53L0X به آردوینو خود، با اتصال پایه VCC حساس(حس کننده) به پایه 5V روی آردوینو شروع کنید. سپس پایه GND را به GND آردوینو وصل کنید. پایه SDA حساس(حس کننده) باید به پایه A4 روی آردوینو متصل شود (یا به پایه SDA اگر برد شما پایههای اختصاصی I2C دارد). به همان ترتیب، پایه SCL حساس(حس کننده) را به پایه A5 وصل کنید (یا به پایه SCL). پایه GPIO1 را بدون اتصال رها کنید چون برای این پروژه لازم نیست.
در نهایت، پایه XSHUT را به پایه دیجیتال 12 روی آردوینو متصل کنید. از این پایه برای کنترل وضعیت خاموششدن حساس(حس کننده) استفاده خواهد شد. مطمئن شوید همه اتصالات محکم باشند تا از بروز هرگونه مشکل در ارتباط جلوگیری شود.
نمونههای شِفر (کود) و راهنمای گامبهگام
در شِفر (کود)، ابتدا کتابخانههای لازم را وارد کرده و حساس(حس کننده) VL53L0X را مقداردهی اولیه میکنیم. تابع setup حساس(حس کننده) را پیکربندی کرده و اندازهگیریهای فاصله پیوسته را آغاز میکند. در اینجا یک قطعه از تابع setup آمده است:
void setup() {
pinMode(12, INPUT_PULLUP);
digitalWrite(12, HIGH);
Serial.begin(9600);
Wire.begin();
sensor.init();
sensor.setTimeout(500);
sensor.startContinuous();
}در این قطعه شِفر (کود)، پایه 12 را بهعنوان ورودی با مقاومت پولآپ تنظیم میکنیم و ارتباط سریال را در 9600 baud مقداردهی اولیه میکنیم. همچنین حساس(حس کننده) را راهاندازی کرده و یک تایماوت برای خوانشها تعیین میکنیم تا اطمینان حاصل شود که بهطور پیوسته کار میکند.
سپس، فاصله را در تابع loop میخوانیم، جایی که مقدار اندازهگیریشده در نمایشگر مسلسل چاپ میشود:
void loop() {
int distance = sensor.readRangeContinuousMillimeters();
Serial.print("Distance: ");
Serial.print(distance);
Serial.print("mm");
if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }
Serial.println();
delay(100);
}این شِفر (کود) فاصله را بر حسب میلیمتر میخواند و آن را در نمایشگر مسلسل چاپ میکند. اگر تایماوت رخ دهد، نشان میدهد که حساس(حس کننده) خوانش معتبری دریافت نکرده است.
نمایش / چه انتظاری داشته باشید
وقتی برنامه را اجرا میکنید، باید شروع به مشاهدهٔ اندازهگیریهای فاصله در نمایشگر مسلسل کنید. خروجی هنگام نزدیک یا دور کردن اجسام نسبت به حساس(حس کننده) نوسان خواهد داشت. ممکن است گهگاهی پیامهای timeout را ببینید اگر حساس(حس کننده) نتواند خوانشی بگیرد (در ویدئو در 10:30). برای افزایش دقت، میانگین چندین اندازهگیری را در نظر بگیرید.
مواردی که ممکن است به آنها نیاز داشته باشید
-
ایبیخرید VL53l0x از eBayebay.us
-
علیاکسپرس1 تا 10 عدد از VL53L0X را از علیاکسپرس خریداری کنیدs.click.aliexpress.com
-
بنگ گود1 تا 10 عدد از VL53L0X را از بنگود خریداری کنید.banggood.com
منابع و مراجع
-
خارجی1 تا 10 عدد از VL53L0X را از بنگود خریداری کنید.banggood.com
-
خارجی1 تا 10 عدد از VL53L0X را از علیاکسپرس خریداری کنیدs.click.aliexpress.com
-
خارجیخرید VL53l0x از eBayebay.us
-
خارجیخرید VL53L0X از اَمه زونamzn.to
فایلها📁
فایل Fritzing
-
VL53L0X_Distance_sensor_Squares
application/zip0.02 MB
سایر فایلها
-
VL53L0X_Distance_sensor_purple
application/zip0.01 MB