سنسور فاصله سنج | عملکرد، انواع و مدار عملی — به زبان ساده
در آموزشهای قبلی مجله فرادرس، با سنسور دما، سنسور موقعیت، سنسور فشار، سنسور مجاورتی و سنسور نور آشنا شدیم. در این آموزش به سنسور فاصله سنج میپردازیم. سنسور فاصله سنج یا همان سنسور فاصله، همانگونه که از نامش برمیآید، سنسوری است که فاصله یک جسم را تا جایی که سنسور قرار دارد میسنجد. سنسورهای فاصله انواع مختلفی دارند: التراسونیک، فروسرخ، لیزری و مدت پرواز. شاید انتخاب یک سنسور مناسب برای پروژه خاص کار سختی باشد. از این رو، در این آموزش انواع سنسورهای فاصله سنج را بررسی میکنیم و در آخر، روش پیادهسازی مدار عملی یک سنسور فاصله را ارائه میکنیم.
سنسور فاصله چیست؟
«سنسور فاصله» (Distance Sensor)، همانگونه که از نامش پیداست، سنسوری است که برای حس کردن و سنجش اندازه فاصله یک جسم بدون تماس مستقیم با آن به کار میرود.
سنسور فاصله چگونه کار میکند؟
عملکرد سنسور فاصله معمولاً مبتنی بر ارسال یک سیگنال (بسته به فناوری، امواج فراصوت، فروسرخ، LED و غیره) و اندازهگیری تغییر آن در هنگام بازگشت و دریافت سیگنال است.
تغییر سیگنال دریافتی را میتوان به دو صورت اندازه گرفت:
- مدت زمان برگشت سیگنال
- شدت سیگنال برگشتی
تفاوت سنسور فاصله و سنسور مجاورت
از آنجا که سنسورهای فاصله به دلیل همبستگی مشابه میتوانند با سنسورهای مجاورت مرتبط باشند، ممکن است عملکرد هر یک از این سنسورها به راحتی تفکیک نشود. از این رو، در اینجا برای کمک به درک تفاوت سنسورهای فاصله و سنسورهای مجاورت یک مقایسه سریع بیان خواهیم کرد:
- اگر جسمی در محدودهای باشد که سنسور برای کار طراحی شده است، سنسورهای مجاورت تنها آن را حس میکنند. از این رو، سنسورهای مجاورت لزوماً فاصله بین سنسور و جسم را نشان نمیدهند.
- سنسورهای فاصله از طریق خروجی جریان فاصله جسم و دستگاه اندازهگیری را حس میکنند. جریان میتواند به صورت امواج التراسونیک (فراصوت)، لیزر، فروسرخ (IR) و غیره باشد.
انواع سنسورهای فاصله
اکنون که دریافتیم سنسور فاصله چیست، به سراغ سنسورهای مختلف اندازهگیری فاصله موجود در بازار خواهیم رفت که هرکدام فناوریهای سنجش خاص خود را دارند.
سنسور فاصله التراسونیک
متداولترین سنسور اندازهگیری فاصله «سنسور التراسونیک» (Ultrasonic Sensor) است. این سنسور به عنوان سنسور «سونار» (Sonar) نیز شناخته میشود و با انتشار امواج فراصوت با فرکانس بالا، فاصله اشیا را تشخیص میدهد.
عملکرد سنسور فاصله سنج التراسونیک را میتوان در چهار مرحله زیر خلاصه کرد:
- سنسور التراسونیک امواج صوتی با فرکانس بالا را به سمت جسم مورد نظر ساطع میکند.
- جسم هدف امواج صوتی را دریافت میکند.
- سپس امواج صوتی منعکس شده و به سمت سنسور التراسونیک بازتاب میشوند.
- مدت زمان بازگشت موج صوتی برای اندازهگیری فاصله بین استفاده میشود.
اکنون که نحوه کارکرد سنسور التراسونیک را میدانیم، نگاهی خواهیم انداخت به موارد رایجی که این سنسورها در آنها کاربرد دارند:
- اندازهگیری فاصله
- سنسورهای رباتیک
- خودروهای هوشمند (مثلاً شرکت تسلا از سنسورهای التراسونیک به عنوان بخشی از برنامه اتوپایلوت خود استفاده میکند)
- هواپیماهای بدون سرنشین (پهپاد)
از مزایای سنسور التراسونیک میتوان به موارد زیر اشاره کرد:
- تحت تأثیر رنگ و شفافیت جسم قرار نمیگیرد، زیرا فاصله را از طریق امواج صوتی تشخیص میدهد.
- در مکانهایی که کمنور هستند، به خوبی کار میکند.
- مصرف جریان/برق کمتری دارد.
- چندین گزینه رابط برای اتصال با میکروکنترلر و غیره دارد.
چند مورد از معایب سنسور التراسونیک نیز به شرح زیر است:
- محدوده تشخیص محدود
- وضوح پایین و سرعت «تازهسازی» (Refresh) پایین آن که موجب میشود برای تشخیص اهدافی که سریع حرکت میکنند مناسب نباشد.
- عدم توانایی در اندازهگیری فاصله اشیایی که بافت/سطح پیچیده دارند اندازهگیری کند.
سنسور التراسونیک HC-SR04 رایجترین و محبوبترین سنسور التراسونیک است که در موارد بسیاری از آن استفاده میشود.
مشخصات این سنسور به این صورت است: ولتاژ کاری ۵ ولت، محدوده اندازهگیری ۲ تا ۴۰۰ سانتیمتر، تعداد پینهای ورودی/خروجی مورد نیاز ۴، جریان کاری ۱۵ میلیآمپر و ابعاد: 45mm x 20mm x 15mm.
سنسور فاصله مادون قرمز
دومین نوع سنسورهای فاصله، سنسور فاصله مادون قرمز یا «سنسور فروسرخ» (Infrared Sensor) است که به اختصار سنسور IR نامیده میشود. رایجترین سنسور مادون قرمز مدل GP2Y0A21YK0F محصول شرکت شارپ است که سنجش فاصله یا مجاورت را از طریق تابش پرتو مادون قرمز و محاسبه زاویه بازتاب انجام میدهد.
سنسورهای مادون قرمز دو لنز دارند:
- یک عدسی ساطعکننده LED که پرتوی نوری منتشر میکند.
- یک آشکارساز نوری حساس به موقعیت (PSD) که پرتو منعکسشده به داخل آن میرود.
اما سنسورهای فاصله مادون قرمز چگونه کار میکنند؟ سنسورهای مادون قرمز بر اساس اصل مثلثسازی کار میکنند؛ یعنی اندازهگیری فاصله بر اساس زاویه پرتو منعکسشده. شکل زیر، تصویری از نحوه کار سنسورهای فاصله مادون قرمز از طریق مثلثسازی را نشان میدهد.
مراحل اندازهگیری زاویه با سنسور مادون قرمز به صورت زیر است:
- نور مادون قرمز از ساطعکننده LED مادون قرمز ساطع میشود.
- پرتوی نور به جسم (P1) برخورد میکند و از یک زاویه خاص منعکس میشود.
- نور منعکسشده به PSD میرسد (U1).
- سپس سنسور در PSD موقعیت/فاصله جسم بازتابنده را تعیین میکند.
سنسور مادون قرمز در موارد زیر به کار میرود:
- تلویزیون، کامپیوتر، لپتاپ
- اندازهگیری فاصله
- سیستمهای امنیتی و نظارتی، دزدگیرها و غیره
- موارد نظارتی و کنترلی
از مزایای سنسور مادون قرمز میتوان به موارد زیر اشاره کرد:
- «فرم فاکتور» (Form Factor) کوچک سنسورهای IR معمولی مانند سنسورهای شارپ از نظر اندازه کوچکتر است.
- قابل استفاده در روز و شب است.
- ارتباط امن از طریق یک خط دید دارد.
- قادر به اندازهگیری فاصله اجسامی است که برخلاف سنسورهای اولتراسونیک دارای سطوح پیچیده (Complex) هستند.
دو مورد از معایب سنسورهای مادون قرمز نیز عبارتند از:
- محدوده اندازهگیری محدود
- تأثیرپذیری از شرایط محیطی و اجسام سخت عدم قابلیت استفاده از آنها روی در یا دیوار.
اکنون که با هر دو سنسور مادون قرمز و اولتراسونیک آشنا شدیم، میتوانیم تفاوت آنها را بیان کنیم. جدول زیر مقایسه اجمالی این دو سنسور را نشان میدهد.
سنسور فاصله مادون قرمز | سنسور فاصله التراسونیک |
فاصله را از طریق امواج نور منعکسشده اندازهگیری میکند. | فاصله را از طریق امواج صوتی منعکسشده اندازهگیری میکند. |
نحوه اندازهگیری به صورت مثلثسازی است (زاویه پرتوی بازتابیده IR اندازهگیری میشود). | برای اندازهگیری، زمان صرفشده بین ارسال و دریافت امواج صوتی ثبت میشود. |
موج آن با چشم غیرمسلح قابل رؤیت نیست. | موج آن غیر قابل شنیدن است. |
برای برای اندازهگیری اشیاء پیچیده مناسب است. | برای اندازهگیری اشیایی با سطح پیچیده مناسب نیست. |
سنسور فاصله لیزری
«لیدار» (LIDAR) که مخفف سنسور فاصله لیزری است، دامنه اهداف را از طریق امواج نوری لیزر به جای امواج صوتی یا رادیویی اندازهگیری میکند.
اما لیدار چگونه کار میکند؟ نحوه کارکرد لیدار را میتوان با روشهای مختلفی توضیح داد (مثلثسازی، پایه پالس و غیره) اما روش زیر سادهترین روش است:
- فرستنده روی دستگاه لیدار نور لیزر را به جسم مورد نظر ساطع میکند.
- پالس لیزر به هدف برخورد کرده و به عق بازتاب میشود.
- سپس فاصله با استفاده از رابطه بین سرعت ثابت نور در هوا و زمان بین ارسال/دریافت سیگنال محاسبه میشود.
لیدار در موارد زیر استفاده میشود:
- نظارت بر محیط زیست، جنگلداری، نقشه برداری زمین و غیره
- اندازهگیری فاصله
- کنترل و ایمنی ماشین
- رباتیک
از مزایای لیدار میتوان به موارد زیر اشاره کرد:
- دامنه و دقت اندازهگیری بالا
- امکان اندازهگیری ساختارهای سهبعدی
- نرخ بهروزرسانی سریع؛ مناسب برای اجسامی که سریع حرکت میکنند.
- طول موج کوچک در مقایسه با سونار و رادا؛ مناسب برای تشخیص اشیای کوچک
- قابل استفاده برای استفاده در روز و شب
برخی از معایب لیدار نیز به شرح زیر است:
- هزینه بالاتر در مقایسه با اولتراسونیک و مادون قرمز
- برای چشم غیرمسلح مضر است. دستگاههای سطح بالاتر لیدار ممکن است از پالسهای قویتری استفاده کنند که چشم انسان را تحت تأثیر قرار میدهد.
سنسور فاصله مدت پرواز
سنسور فاصله سنج «مدت پرواز ال ای دی» (LED Time-Of-Flight) معمولاً با مدل VL53L0X شناخته میشود که بخشی از طیف گستردهتر لیدار است و از فناوری مدت پرواز در اندازهگیری فاصله استفاده میکند.
اما سنسور فاصله مدت پرواز (ToF) چگونه کار میکند؟ سنسورهای مدت پرواز یکی از سنسورهای اندازهگیری زمان سپری شده برای بازتاب یک پالس موج از یک جسم و بازگشت آن به سنسور هستند. این سنسورها با اندازهگیری زمان لازم برای عبور نور از فرستنده به گیرنده، قادر به تولید یک تصویر سهبعدی Z ،Y ،X هستند.
با استفاده از فناوری مدت پرواز، مزایای قابل توجهی نسبت به سایر روشهای سنجش از راه دور وجود دارد:
- طیف وسیعتر
- قرائت سریعتر
- دقت بیشتر
سنسورهای مدت پرواز مانند سنسورهای لیدار کار میکنند:
- فرستنده دستگاه مدت پرواز، نور الایدی مادون قرمز (IR-LED) را در جسم مورد نظر ساطع میکند.
- پالس LED به هدف رسیده و به عقب بازتاب میشود.
- سپس فاصله با استفاده از رابطه بین سرعت ثابت نور در هوا و مدت زمان بین ارسال/دریافت سیگنال محاسبه میشود.
کاربردهای اصلی سنسور مدت پرواز در موارد زیر است:
- صنعت
- بینایی ماشین
- رباتیک
- شمارش نفرات
- هواپیماهای بدن سرنشین
از مزایای سنسورهای مدت پرواز میتوان به موارد زیر اشاره کرد:
- این فناوری دامنه اندازهگیری بالایی به همراه دقت خوب دارد.
- قادر به تصویربرداری سهبعدی است.
- به دلیل توانایی در شناسایی اشیای بزرگ در کاربردهای بسیار متنوعی استفاده میشود.
سنسور مدت پرواز معایبی نیز دارد؛ از جمله:
- هزینه بالا
- وضوح عمق Z هنوز کم است و وضوح سیستمهای عمومی 1 سانتی متر در عمق Z است.
با توجه به محبوبیتی که سنسور VL53L0X دارد، یک آرایه SPAD پیشرفته در آن ادغام شده و فناوری FlightSense نسل دوم استیمایکروالکترونیکس (ST) را در خود جای داده است. این فناوری امکان اندازهگیری فاصلههای مطلق تا 2 متر میدهد.
مدار عملی سنسور فاصله با آردوینو
به عنوان یک مثال ساده، میخواهیم با استفاده از آردوینو مداری بسازیم که دو LED را با استفاده از یک سنسور فاصله کنترل کند.
اگر فاصله جسم تا سنسور کمتر از ۲۰ سانتیمتر باشد، LED باید قرمز شود، اما اگر این فاصله کمتر از ۲۰ سانتیمتر باشد، رنگ LED باید سبز شود.
برای ساخت این مدار به قطعات زیر نیاز داریم:
- ۲ عدد LED (یکی سبز و دیگری قرمز)
- ۲ عدد مقاومت ۲۲۰ اهمی
- ۱ عدد سنسور فاصله (التراسونیک)
- بورد Build&Code UNO
- ۱ عدد برد بورد
در بالا نحوه اندازهگیری فاصله را با سنسور التراسونیک به صورت مختصر بیان کردیم. در اینجا با جزئیات بیشتری روش و فرمول آن را برای نوشتن کد در آردوینو بررسی میکنیم.
سنسور فاصله در واقع چیزی شبیه خفاش است که بدون برخورد با هیچ چیزی در شب پرواز میکند. خفاش امواج التراسونیک را در حال پرواز ارسال میکند و اگر این امواج بازگردند یعنی یک جسم در نزدیکی وجود دارد.
سنسور التراسونیک نیز عملکرد مشابهی دارد. این سنسور امواج را میفرستد و اگر آنها بازگردند، آنگاه به این معنی است که جسمی در نزدیکی وجود دارد. فاصله تا جسم با مدت زمانی اندازهگیری میشود که طول میکشد امواج التراسونیک برگردند.
سنسور التراسونیک از دو ماژول تشکیل شده است: فرستنده و گیرنده.
فرستنده امواج التراسونیک را ارسال میکند که انسان قادر به شنیدن آنها نیست (مانند امواجی که خفاش میفرستد). این امواج تا جایی پیش میروند که به یک هدف برخورد کنند. سپس، بعد از آنکه توسط گیرنده دریافت شدند، به سنسور باز میگردند.
از آنجا که امواج صوتی همیشه با سرعت مشخص ۳۴۳ متر بر ثانیه در هوا حرکت میکنند، به سادگی میتوان فاصله جسم را تشخیص داد.
بنابراین، ابتدا باید زمان رفت و برگشت موج را اندازه بگیریم. بعد از آن، زمان را تقسیم بر دو کنیم تا زمان برخورد موج به هدف به دست آید. وقتی زمان (برخورد با هدف) را به دست آوردیم، با ضرب سرعت حرکت امواج در هوا (۳۴۳ متر بر ثانیه) در آن، فاصله به دست خواهد آمد:
(ثانیه) زمان × (متر بر ثانیه) ۳۴۳ = (متر) فاصله
اگر امواج التراسونیک بازنگردند، بدین معنی است که هدفی وجود ندارد یا اینکه سنسور چیزی در مسیرش پیدا نکرده است.
اتصالات مدار
اتصالات مدار سنسور فاصله سنج به صورت زیر است:
۱. تغذیه برد بورد از پین ۵ ولت Build&Code UNO میآید و به پین GND آن برمیگردد. همه زمینهای مدار باید به یکدیگر متصل باشند، به گونهای که GND آنها مشابه باشد. در تصویر زیر، GND با یک سیم سیاه مشخص شده است. همه قطعات به یکدیگر و در نهایت به GND مدار متصل شدهاند. سیم قرمز ۵ ولت را نشان میدهد که سنسور را تغذیه میکند.
۲. برای فعال کردن LED سبز و قرمز باید آنها را به یک پین دیجیتال وصل کنیم. این پینها برق LEDها را برای روشن شدن تأمین میکنند. در تصویر میبینیم که LED قرمز به از طریق سیم سبز به پین دیجیتال ۱۱ و LED سبز با یک سیم بنفش به پین دیجیتال 10 متصل میشود.
۳. سنسور التراسونیک چهار پین دارد. تا حالا دو پین از آنها (5V و GND) را متصل کردهایم. دو پین دیگر پینهای دیجیتال ECHO و TRIG هستند که یکی از آنها اطلاعات را به بورد Build&Code UNO میفرستد. همانطور که در تصویر مدار میبینیم، پین TRIG با سیم زرد به پین دیجیتال ۷ و پین ECHO با سیم نارنجی به پین دیجیتال ۸ متصل شدهاند.
کد برنامه در آردوینو
این مدار را میتوانیم با برنامه آردوینو یا یک نرمافزار برنامهنویسی بصری با بلوکهای سازگار پیاده کنیم.
باید برنامهای بنویسیم که به طور پیوسته اطلاعات سنسور التراسونیک را بخواند. بر اساس فاصله اندازهگیری شده توسط سنسور الایدی سبز یا قرمز روشن خواهد شد. برای این کار از این شرط استفاده میکنیم: اگر فاصله کمتر از ۲۰ سانتیمتر باشد، الایدی قرمز روشن میشود و اگر فاصله بیشتر از ۲۰ سانتیمتر باشد، الایدی قرمز خاموش و الایدی سبز روشن خواهد شد.
برای اندازهگیری فاصله باید پین TRIG را به عنوان یک خروجی و پین ECHO را به عنوان ورودی تعریف کنیم. TRIG امواج التراسونیک را ارسال میکند و ECHO منتظر میماند تا امواج برگردند.
سپس، هر زمانی که موج بازگشت، فاصله جسم را محاسبه میکنیم. پیشتر گفتیم که سرعت صدا در هوا ۳۴۳ متر بر ثانیه است.
بنابراین، اگر بدانیم که چه زمانی طول میکشد موج برگردد، میتوانیم فاصله را محاسبه کنیم. برای این کار، باید کل زمان رفت و برگشت موج را بر ۲ تقسیم کنیم. سپس این مقدار را در سرعت صوت در هوا ضرب کنیم.
برای رزولوشن بهتر، واحد طول را سانتیمتر و واحد زمان را میکروثانیه در نظر میگیریم. بنابراین، سرعت صوت برحسب cm/µs به صورت زیر محاسبه میشود:
وقتی فاصله را محاسبه کردیم، باید یکی از دو الایدی سبز یا قرمز را روشن کنیم. برای این کار، باید پینهایی را که به این الایدیها متصل هستند، به عنوان خروجی تعریف کنیم. وقتی میخواهیم یکی از این دو الایدی را روشن کنیم، مقدار HIGH یا 1 را به آن اختصاص میدهیم و وقتی بخواهیم آنها را خاموش کنیم، مقدار LOW یا 0 را اختصاص میدهیم.
۱. ابتدا برنامه Arduino IDE را از این لینک (+) دانلود کنید. این برنامه برای ویندوز، مک و لینوکس در دسترس است.
۲. برنامه آردوینو را باز کنید و کد زیر را در آن بنویسید:
1int trigPin = 7; //Define the pins that you will work with
2int echoPin = 8;
3int LEDR = 10;
4int LEDV = 11;
5float Speed = 0.0343; // Sound speed at cm/us
6long duration, distance;
7
8void setup()
9{
10 pinMode(trigPin, OUTPUT); //Define digital pin 7 as an output
11
12 pinMode(echoPin, INPUT); //Define digital pin 8 as an input
13
14 pinMode(LEDR, OUTPUT); //Define digital pin 10 as an output
15
16 pinMode(LEDV, OUTPUT); //Define digital pin 11 as an output
17
18 digitalWrite (LEDR , LOW); // Define digital pin 10 in a low status
19
20 digitalWrite (LEDV , LOW); /Define digital pin 11 in a low status
21}
22void loop()
23 {
24 digitalWrite(trigPin, LOW); // Make sure that the TRIG is deactivated
25
26 delayMicroseconds(2); // Make sure that the TRIG is in LOW
27
28 digitalWrite(trigPin, HIGH); // Activate the output pulse
29 delayMicroseconds(10); // Wait for 10µs, the pulse remains active during this time
30
31 digitalWrite(trigPin, LOW); //Stop the pulse and wait for ECHO
32
33 duration = pulseIn(echoPin, HIGH) ; // pulseIn measures the time since the defined pin (echoPin) changes its status from low to high (from 0 to 1)
34
35 distance = Speed* duration / 2; //Divide by 2 because we want to have only the “go” time, not the “go and back” time
36 // and divide by 29,1 because 1 is divided by the sound speed (1/SpeedSound) at cm/us
37
38 if ( distance < 20){
39 digitalWrite (LEDR , HIGH); //If the sensor detects a distances less than 20 cm the red LED turns on
40
41 digitalWrite (LEDV , LOW); //and turns off the green LED
42
43 }
44 else{ // otherwise
45 digitalWrite (LEDR , LOW); // turn off the red LED
46 digitalWrite (LEDV , HIGH); //turn on the green LED }
47 }
اگر بخواهید از کد نرمافزار برنامهنویسی بصری با بلوکهای سازگار استفاده کنید، به صورت زیر عمل کنید:
- برنامه را دانلود و نصب کنید.
- نرمافزار را باز کنید.
- برنامه را پیکربندی کرده و کد را به بورد Build&Code UNO ذخیره کنید.
- برنامه را باز کنید و کد زیر را بنویسید.
نتیجه عملکرد مدار
با راهاندازی مدار، وقتی سنسور جسمی را تشخیص داد که فاصله آن کمتز از ۲۰ سانتیمتر است، الایدی قرمز روشن میشود و وقتی فاصله بیش از ۲۰ سانتیمتر شود، الایدی سبز روشن خواهد شد.
معرفی فیلم آموزش برد آردوینو (Arduino) با انجام پروژه های عملی
برای آشنایی بیشتر با آردوینو پیشنهاد میکنیم به فیلم آموزش برد آردوینو (Arduino) با انجام پروژه های عملی فرادرس مراجعه کنید که مدت زمان آن ۱۹ ساعت و ۱۰ دقیقه است. در درس اول این آموزش که در ۹ درس تدوین شده، معرفی اجمالی با برد آردوینو (Arduino) بیان شده است. در درس دوم، واحد ارتباط سریال در آردوینو مورد بحث قرار گرفته است. موضوع درس سوم واحد PWM و ADC در آردوینو است. واحد وقفه و SPI در آردوینو نیز در درسهای چهارم و پنجم معرفی شدهاند. به واحد TWI و I2C در آردوینو نیز در درس ششم پرداخته شده است. حافظه EEPROM نیز موضوع درس هفتم است. آرایهها و رشتهها در آردوینو از مباحث مهمی هستند که در درس هشتم گنجانده شدهاند و در نایت، برنامهنویسی پیشرفته برد آردوینو در درس نهم آموزش داده شده است.
- برای مشاهده فیلم آموزش برد آردوینو (Arduino) با انجام پروژه های عملی + اینجا کلیک کنید.
درود بسیار کاربردی بود چنانچه روش تست سنسور التراسونیک با اهم متر را بفرمایید و یا کلا روش تست سلامت سنسور البته نه روی کار سپاس گزار میشوم
توضیحات عالی بود ممنونم
سلام اقا دمت گرم خیلی قشنگ توضیح دادی کارم راه افتاد
ممنون