راه اندازی سنسور LiDAR | ماشین خودران بزرگترین هدیه فناوری به تمدن از زمان تولد اینترنت است. تنها یک مسئله زمان است که این خودروها جادهها را تصاحب کنند.
برای اینکه یک ماشین خودران بتواند بهطور موفقیتآمیزی در یک جاده حرکت کند، باید از اشیاء فیزیکی اطراف خود آگاه باشد. این امر به لطف حسگر LiDAR چرخان نصبشده بر روی سقف است که به ایجاد یک نمای سهبعدی از جاده اطراف وسیله نقلیه کمک میکند.
LiDAR جدید نیست و مدتی است که وجود دارد؛ در واقع، این فناوری بهزودی پس از توسعه لیزر به وجود آمد. کارهای اولیه در زمینه LiDAR در سال ۱۹۶۳ مستند شده است. هزینه بالای تجهیزات لیزر استفاده از LiDAR را به دولتها و نهادهای نظامی محدود کرده بود.
با این حال، کاهش قیمتهای اخیر، LiDAR را برای افرادی مانند ما که به کارهای DIY علاقهمند هستیم، در دسترس قرار داده است و به ما اجازه میدهد که آن را در پروژههای خود بگنجانیم. یکی از حسگرهای LiDAR کمهزینه و در عین حال دقیق که بهطور گسترده استفاده میشود، TFMini-S است.
این آموزش به شما نشان میدهد که چگونه ماژول TFMini-S را با یک آردوینو متصل کنید تا اندازهگیریهای فاصله با دقت بالا انجام دهید، اما ابتدا یک مقدمه کوتاه درباره LiDAR.
LiDAR چیست و چگونه کار میکند؟
LiDAR ترکیبی از کلمات “نور” و “رادار” است یا اگر بخواهید، یک واژهسازی معکوس برای “تشخیص و تعیین فاصله نور” است. LiDAR شبیه رادار است، با این تفاوت که به جای امواج رادیویی از نور استفاده میکند.
در اصل، LiDAR با شلیک لیزر به یک شیء کار میکند. لیزر از شیء بازتاب میشود و به حسگر برمیگردد. با اندازهگیری زمان بازگشت آن نور به حسگر، میتوان فاصله تا شیء را تخمین زد. فاصله اندازهگیریشده ممکن است بسته به محیط و بازتابندگی شیء متفاوت باشد.
با چرخاندن یک حسگر LiDAR، میتوان به سرعت نقشهای سهبعدی از ناحیه ایجاد کرد. معمولاً این اطلاعات به صورت “ابر نقطهای” ارائه میشود تا درک بهتری از آنچه حسگر LiDAR ثبت میکند، به دست آید.
بررسی سختافزار TFMini-S
TFMini-S یک سنسور LiDAR با دقت بالا و نقطهای از نوع ToF (زمان پرواز) از شرکت Benewake (پکن) است. این سنسور برای ادغام اندازهگیری با دقت بالا بر پایه لیزر در هر پروژه رباتیکی یا تعاملی ایدهآل است.
اندازه یک فلش USB، TFMini-S به شما این امکان را میدهد که LiDAR را در پروژههایی که قبلاً برای سنسورهای کوچکتری مانند دوربینهای مادون قرمز سری SHARP اختصاص داده شده بود، ادغام کنید.
TFMini-S میتواند فاصله تا یک شیء را تا ۱۰ سانتیمتر و تا ۱۲ متر اندازهگیری کند.
علاوه بر هزینه پایین، اندازه کوچک و دامنه طولانی، TFMini-S دقت اندازهگیری فاصله بالاتری به میزان ±۶ سانتیمتر تا ۶ متر و ±۱٪ پس از آن دارد.
شایان ذکر است که این سنسور از نور لیزر برای اندازهگیری فاصله استفاده نمیکند. در عوض، از یک LED مادون قرمز متمرکز با طول موج ۸۵۰ نانومتر و اپتیک استفاده میکند. به همین دلیل، این دستگاه نسبتاً ارزان است.
دامنه تشخیص مؤثر سنسور LiDAR
مانند تمام سنسورهای LiDAR، دامنه تشخیص مؤثر به شرایط نوری، آب و هوا و بازتابندگی شیء هدف شما بستگی دارد.
نمودار زیر دامنه عملکرد TFMini-S را تحت شرایط مختلف نشان میدهد.
۰-۱۰ سانتیمتر ناحیه کور TFMini-S است؛ در این محدوده، دادهها غیرقابل اعتماد هستند.
در شرایط شدید، دامنه عملیاتی TFMini-S بین ۰.۱ تا ۳ متر است. شرایط شدید به تابش خیرهکننده در فضای باز (که شدت روشنایی در ظهر تابستان حدود ۱۰۰klux است) و تشخیص هدف سیاه (با بازتابندگی ۱۰%) اشاره دارد.
در شرایط نوری عادی (با شدت روشنایی حدود ۷۰klux)، دامنه عملیاتی TFMini-S بین ۰.۱ تا ۷ متر است.
در یک محیط داخلی یا با نور محیطی کم، دامنه عملیاتی TFMini-S بین ۰.۱ تا ۱۲ متر است.
رابطهای ارتباطی
TFMini-S به طور پیشفرض از طریق رابط UART ارتباط برقرار میکند و پینهای RX و TX معمولی UART با سرعت ۱۱۵۲۰۰bps کار میکنند.
شما همچنین میتوانید سنسور را برای ارتباط از طریق I2C با ارسال دستورات مناسب پیکربندی کنید.
فرکانس تشخیص
بر اساس ورق مشخصات، TFMini-S میتواند تا ۱۰۰۰ اندازهگیری در ثانیه انجام دهد (پیشفرض ۱۰۰ است). این فرکانس میتواند با ارسال دستورات مناسب تغییر کند.
باید توجه داشت که افزایش فرکانس خروجی دقت را کاهش میدهد. بنابراین، بسته به اینکه چقدر میخواهید اندازهگیریها دقیق باشند، باید فرکانس خروجی را تنظیم کنید.
توان ورودی
بر اساس ورق مشخصات، TFMini-S با ولتاژ ۵ ولت کار میکند و در حین یک جمعآوری حدود ۱۴۰ میلیآمپر جریان میکشد. حداکثر جریانی که میتواند بکشد حدود ۲۰۰ میلیآمپر است.
با این حال، در حین آزمایش، سنسور به تنهایی حدود ۷۰ میلیآمپر جریان میکشید. بنابراین، اگر از یک آردوینو ۵ ولتی، یک مبدل سطح منطقی و سنسور استفاده کنید، میتوانید انتظار داشته باشید که حدود ۱۰۰ میلیآمپر مصرف کنید. بنابراین، برای آزمایشهای پایه، سنسور میتواند بدون مشکل از پورت USB (5V/500mA) تغذیه شود.
لطفاً به خاطر داشته باشید که TFMini-S هیچ محافظتی در برابر ولتاژ بیش از حد ندارد، بنابراین نوسانات ولتاژ منبع تغذیه را در محدوده ۰.۱ ولت نگه دارید.
سطوح منطقی
در حالی که TFMini-S میتواند با ۵ ولت تغذیه شود، پینهای I/O تنها ۳.۳ ولت منطقی هستند. بنابراین، توصیه میشود هنگام استفاده از سنسور با یک میکروکنترلر ۵ ولتی از مبدل سطح منطقی استفاده کنید.
با این حال، اگر فقط میخواهید TFMini-S را بخوانید (در حالت UART)، نیازی به مبدل سطح منطقی نیست زیرا دستگاههای ۳.۳ ولتی سطوح منطقی را تولید میکنند که با دستگاههای ۵ ولتی سازگار است.
مشخصات فنی
در اینجا مشخصات آمده است:
دامنه تشخیص: ۱۰ سانتیمتر – ۱۲ متر
دقت: ۱ سانتیمتر
دقت اندازهگیری: ±۶ سانتیمتر تا ۶ متر و ±۱% پس از آن
ولتاژ ورودی: ۵ ولت
ولتاژ TTL UAR ۳.۳
مصرف جریان: ۱۴۰ میلیآمپر (معمولی)، ۸۰۰ میلیآمپر (اوج)
فرکانس تشخیص: ۱ تا ۱۰۰۰ اسکن در ثانیه (قابل تنظیم)
طول موج نور: ۸۵۰ نانومتر
زاویه دید: ۲.۳°
رابطهای ارتباطی: UART و I2C
نرخ باود: ۱۱۵۲۰۰
برای اطلاعات بیشتر درباره سنسور LiDAR TFMini-S، لطفاً به مشخصات زیر مراجعه کنید.
دیتا شیت
پینهای TFMini-S سنسور LiDAR
حال بیایید به پینها نگاه کنیم. TFMini-S دارای چهار پین است.
GND اتصال زمین است.
VCC پین ورودی برق است. فقط آن را به منبع تغذیه ۵ ولت متصل کنید.
RXD/SDA پینی است که میتوانید برای ارسال داده به سنسور (هنگام ارتباط از طریق UART) یا ارسال/دریافت داده (هنگام ارتباط از طریق I2C) از آن استفاده کنید. این پین سطح منطقی ۳.۳ ولت دارد.
TXD/SCL پینی است که دادهها را از سنسور به میکروکنترلر شما منتقل میکند (هنگام ارتباط از طریق UART) یا به عنوان ساعت عمل میکند (هنگام ارتباط از طریق I2C). توجه داشته باشید که این پین نیز سطح منطقی ۳.۳ ولت دارد.
اتصال یک سنسور TFMini-S به آردوینو
اتصال یک سنسور TFMini-S به آردوینو بسیار آسان است. شما فقط نیاز به اتصال چهار سیم دارید.
با اتصال سیم قرمز (VCC) سنسور TFMini-S به پین خروجی ۵ ولت آردوینو و سیم سیاه (GND) به پین GND آردوینو آغاز کنید.
اکنون سیم سفید (RXD/SDA) سنسور TFMini-S را به پین دیجیتال ۳ آردوینو و سیم سبز (TXD/SCL) را به پین دیجیتال ۲ آردوینو متصل کنید، زیرا ما در حال پیادهسازی یک UART نرمافزاری هستیم.
تصویر زیر نشان میدهد که چگونه مدار را بسازید.
کد نمونه آردوینو
اکنون که همه چیز متصل شده است، بیایید یک برنامهی ساده را اجرا کنیم تا قابلیتهای سنسور TFMini-S را نشان دهیم.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴ ۴۵ ۴۶ ۴۷ |
#include "SoftwareSerial.h" //header file of software serial port SoftwareSerial Serial1(۲, ۳); //define software serial port name as Serial1 and define pin2 as RX & pin3 as TX int dist; //actual distance measurements of LiDAR int strength; //signal strength of LiDAR int check; //save check value int i; int uart[۹]; //save data measured by LiDAR const int HEADER = 0x59; //frame header of data package void setup() { Serial.begin(۹۶۰۰); //set bit rate of serial port connecting Arduino with computer Serial1.begin(۱۱۵۲۰۰); //set bit rate of serial port connecting LiDAR with Arduino } void loop() { if (Serial1.available()) //check if serial port has data input { if (Serial1.read() == HEADER) //assess data package frame header 0x59 { uart[۰] = HEADER; if (Serial1.read() == HEADER) //assess data package frame header 0x59 { uart[۱] = HEADER; for (i = ۲; i < ۹; i++) //save data in array { uart[i] = Serial1.read(); } check = uart[۰] + uart[۱] + uart[۲] + uart[۳] + uart[۴] + uart[۵] + uart[۶] + uart[۷]; if (uart[۸] == (check & 0xff)) //verify the received data as per protocol { dist = uart[۲] + uart[۳] * ۲۵۶; //calculate distance value strength = uart[۴] + uart[۵] * ۲۵۶; //calculate signal strength value Serial.print("distance = "); Serial.print(dist); //output measure distance value of LiDAR Serial.print('\t'); Serial.print("strength = "); Serial.print(strength); //output signal strength value Serial.print('\n'); } } } } } |
پس از بارگذاری طرح، مانیتور سریال خود را باز کنید و نرخ Baud را بر روی ۹۶۰۰ bps تنظیم کنید.
سعی کنید حسگر را به سمت اشیایی که در اطراف شما قرار دارند بگیرید. باید ببینید که فاصله اندازهگیری شده شروع به پخش میکند.
اگر هیچ اطلاعاتی نمایش داده نشده است، اطمینان حاصل کنید که TFmini-S به درستی متصل شده است؛ هنگامی که روشن باشد، یک نور قرمز باید درون لنز ارسالکننده نمایان باشد وقتی از جلو به آن نگاه میکنید.
نرمافزار TFMini
نرمافزار TFMini ابزاری قدرتمند برای آزمایش سنسورهای TFMini است. این یک ابزار رایگان است، اما فقط میتوان از آن در پلتفرم ویندوز استفاده کرد.
میتوانید این برنامه را از وبسایت رسمی بنویک دانلود کنید.
اتصال TFMini به نرمافزار
برای استفاده از نرمافزار TFMini، TFMini-S خود را با استفاده از یک مبدل USB به TTL به کامپیوتر خود متصل کنید. فقط مطمئن شوید که ۵ولت برای VCC فراهم میکنید.
استفاده از نرمافزار TFMini
نرمافزار به صورت یک بسته RAR “پرتابل” ارائه میشود. آن را دانلود کرده و در یک فولدر دلخواه استخراج کنید. برنامه WINCC_TF.exe را راهاندازی کنید.
برنامه به صورت زیر شروع به کار خواهد کرد.
بخش تنظیمات را پیدا کنید و TFMiniS را برای نوع محصول انتخاب کنید. سپس پورت COM را که TFMini-S به آن متصل است انتخاب کنید. در نهایت، دکمه اتصال را فشار دهید.
پس از اتصال دستگاه، برنامه شروع به نمایش یک شکل موج فاصله در طول زمان در بخش “نمودار زمان” میکند. در پایین، بخش “دادههای زمان واقعی” فاصله فعلی (فاصله)، تعداد نقاط داده مؤثر در هر ثانیه (نقاط مؤثر) و قدرت سیگنال (قدرت) را نمایش میدهد.