پروژه
۰

آموزش راه اندازی ماژول فاصله سنج شارپ GP2Y0A21YK0F با آردوینو

آموزش راه اندازی ماژول فاصله سنج شارپ GP2Y0A21YK0F با آردوینو

در این مقاله، هدف ما این است که نحوه‌ی کار ماژول فاصله سنج شارپ GP2Y0A21YK0F و راه اندازی آن با آردوینو را یاد بگیرید و با نمونه کدی که در این مقاله برای شما قرار داده‌ایم، کار با این سنسور را شروع کنید. پس تا انتهای مقاله را حتما بخوانید.

سنسور فاصله سنج مادون قرمز GP2Y0A21YK0F چیست؟

حتما شما هم ربات‌های خودرانی را که می‌توانند بدون برخورد به اشیاء محیط حرکت کنند، دیده‎‌اید. اما فک می‌کنید چگونه همچین قابلیتی را می‌توانیم به یک ربات اضافه کنیم؟

جواب این سوال سنسور مادون قرمز شارپ GP2Y0A21YK0F است.

سنسور شارپ GP2Y0A21YK0F ، یک سنسور فاصله سنج مادون قرمز با برد 10 – 80 سانتی‌متر است که استفاده از آن بسیار آسان می‌باشد.

در صورتی‌که به دنبال یک سنسور فاصله‌سنج مقرون به صرفه‌تر یا ضد آب هستید می‌توانید سنسور فاصله سنج آلتراسونیک HC-SR04  یا  سنسور JSN-SR04T را نیز بررسی کنید. اگر می‌خواهید با سنسور فاصله سنج آلتراسونیک HC-SR04 هم بیشتر آشنا شوید، حتما مقاله زیر را مطالعه کنید.

آشنایی با سنسور فاصله سنج آلتراسونیک SR04 و راه اندازی آن با آردوینو

آشنایی با سنسور فاصله سنج آلتراسونیک SR04 و راه اندازی آن با آردوینو

یک ماژول فاصله سنج مادون قرمز چگونه کار می‌کند؟

یک سنسور فاصله سنج مادون قرمز برای اندازه‌گیری فاصله‌ی یک جسم، یک پرتو نور مادون قرمز ارسال می‌کند و از پرتو بازتاب شده از جسم استفاده خواهد کرد تا فاصله آن را تشخیص دهد. فاصله جسم با تشکیل مثلثی از پرتو نور مادون قرمز محاسبه می‌شود.

سنسور فاصله سنج مادون قرمز متشکل از یک ال ای دی مادون قرمز (IR LED) و یک آشکارساز نور یا PSD (دستگاه حسگر موقعیت) می‌باشد. زمانی که پرتو نور مادون قرمز توسط یک جسم بازتاب می‌شود، پرتو بازتاب شده به آشکارساز نور خواهد رسید و اصطلاحاً یک “نقطه‌ی نوری” بر روی PSD تشکیل خواهد شد.  

اجزای سنسور فاصله سنج شارپ GP2Y0A21YK0F که شامل یک LED مادون قرمز و یک آشکارساز نور است.

زمانی‌که موقعیت جسم تغییر می‌کند، زاویه‌ی پرتو مادون قرمز بازتاب شده و موقعیت نقطه‌ی روی PSD نیز تغییر می‌کند. به نقاط A و B در تصویر زیر دقت کنید:

نمودار تغییر زاویه‌ی بازتاب شده پرتو مادون قرمز و موقعیت نقطه بر روی PSD

به تغییر زاویه‌ی پرتو بازتاب شده و موقعیت نقطه‌ی نوری روی PSD توجه کنید.

سنسور فاصله سنج مادون قرمز، یک مدار پردازشگر سیگنال درونی دارد. این مدار موقعیت نقطه‌ی نوری روی PSD را پردازش می‌کند تا موقعیت (فاصله) از جسم بازتابنده را تعیین کند. در واقع این مدار یک سیگنال آنالوگ را که به موقعیت جسم مقابل سنسور بستگی دارد، به عنوان خروجی تولید می‌کند.

در بخش بعدی چگونگی خواندن سنسور را یاد خواهید گرفت.

چگونه خروجی یک سنسور فاصله‌سنج مادون قرمز را بخوانیم؟

خروجی سنسورهای فاصله سنج مادون قرمز، یک سیگنال آنالوگ است که بسته به فاصله‌ی میان سنسور و جسم تغییر می‌کند. ولتاژ خروجی ماژول فاصله سنج شارپ GP2Y0A21YK0F را می‌توانید در دیتاشیت آن مشاهده کنید. این ولتاژ از 2.3 ولت، زمانی که یک جسم در فاصله‌ی 10 سانتی‌متری قرار دارد تا 0.4 ولت، زمانی‌که جسم در فاصله‌ی 80 سانتی‌متری قرار دارد، متغیر است.

در نمودار زیر می‌توانید ببینید که چرا محدوده‌ی تشخیص سنسور از 10 سانتی‌متر آغاز می‌شود. توجه داشته باشید که ولتاژ خروجی جسمی که در فاصله‌ی 2 سانتی‌متری قرار دارد، مشابه ولتاژ خروجی جسمی است که در فاصله‌ی 28 سانتی‌متری قرار دارد. بنابراین، ناحیه‌ی تشخیص قابل استفاده، تقریباً پس از قله نمودار، در 10 سانتی‌متری یا 2.3 ولت آغاز می‌شود.  

نمودار نسبت ولتاژ خروجی به فاصله میان سنسور و جسم

مشخصات اندازه‌گیری ولتاژ (خروجی)

علاوه بر مورد ذکر شده، نمودار بالا مشکل این سنسورها را نیز نشان می‌دهد. مشکل این سنسورها، پاسخ غیرخطی آن‌ها است، به این معنا که یک تغییر بزرگ در ولتاژ خروجی، همواره باعث یک تغییر بزرگ در رنج اندازه‌گیری نمی‌شود. برای تعیین فاصله‌ی بین سنسور و یک جسم، باید تابعی را پیدا کنید که ولتاژ خروجی را به برد سنسور تبدیل کند.

Distance (cm) = 29.988 X POW(Volt , -1.173)

این تابع در کتابخانه‌ی SharpIR استفاده شده است که در ادامه از آن استفاده خواهیم کرد. توجه داشته باشید که این تابع تنها براساس اطلاعات دیتاشیت SHARP است. ویژگی‌های خروجی سنسور در انواع مختلف آن، کمی متفاوت خواهد بود، به همین دلیل، ممکن است داده‌های نادرستی دریافت کنید.

اگر می‌خواهید دقت داده‌هایتان را افزایش دهید، می‌توانید اندازه‌گیری و رسم نقاط داده‌ی بسیاری را در اکسل امتحان کنید و یک منحنی از طریق این نقاط به‌دست آورید. زمانی‌که یک تابع جدید برای سنسور خودتان به دست آوردید، لازم است تا فرمول استفاده شده در فایل SharpIR.cpp را تغییر دهید.

ویژگی‌های ماژول فاصله سنج مادون قرمز شارپ GP2Y0A21YK0F

4.5to 5.5 VOperating voltage
30mAOperating current
80 to 10 cmMeasuring range
AnalogOutput type
29.5x 13 x 13.5 mmDimensions
2x 3.2 mm, 37 mm spacingMounting holes

سیم‌کشی – راه اندازی ماژول فاصله سنج مادون قرمز شارپ GP2Y0A21YK0F با آردوینو

تا این بخش باید به‌خوبی با سنسور فاصله سنج شارپ آشنا شده باشید. اگر این چنین است، بیایید راه اندازی آن را شروع کنیم.

قطعات سخت‌افزاری برای این پروژه:

نرم افزار این پروژه:

  • Arduino IDE

به کمک تصویر زیر می‌توانید راه اندازی ماژول فاصله سنج مادون قرمز شارپ GP2Y0A21YK0F با آردوینو را انجام دهید:

نحوه اتصال ماژول فاصله سنج شارپ GP2Y0A21YK0F به آردوینو

سیم‌کشی سنسور GP2Y0A21YK0F به آردوینو را مانند تصویر انجام دهید.  

این نوع سنسورهای فاصله، کمی نویز می‌گیرند. بنابراین توصیه شده است که بین VCC و GND یک خازن قرار دهید. در دیتاشیت این سنسورها، یک خازن 10 میکروفاراد یا بیشتر پیشنهاد شده است (در این مقاله از 220 میکروفاراد استفاده کردیم).

همان‌طور که در شکل بالا می‌بینید، باید پایه‌ی مثبت خازن را به Vcc و پایه‌ی منفی آن را به GND متصل کنید. معمولا برروی خازن‌های الکترولیتی خطی وجود دارد که پایه منفی را مشخص می‌کند. پایه‌ی مثبت نیز معمولاً بلندتر از پایه‌ی منفی است.

اتصالات سنسور فاصله سنج شارپ GP2Y0A21YK0F

GP2Y0A21YK0FArduino
A01 (Yellow)
GND2 (Black)
5V3 (Red)

اگر سنسور فاصله سنج شما دارای سیم‌هایی با رنگ‌های متفاوت است، پایه‌های آن را با تصویر زیر تطبیق دهید. پایه‌ V0 به پایه‌ی آنالوگ آردوینو متصل می‌شود.  

پایه‌های سنسور فاصله سنج مادون قرمز شارپ GP2Y0A21YK0F


پس از اینکه سیم‌کشی سنسور خود را انجام دادید، زمان بارگذاری کد است که در ادامه نمونه کدی را باهم بررسی خواهیم کرد.

نصب کتابخانه‌ی آردوینو SharoIR

کتابخانه SharpIR که توسط Guillaume Rico و Thibaut Mauon نوشته شده، کار با سنسورهای فاصله‌سنج مادون قرمز SHARP  را آسان‌تر می‌کند. این کتابخانه شامل فرمول‌های مورد نیاز برای تبدیل ولتاژ خروجی اندازه‌گیری شده به فاصله برحسب سانتی‌متر می‌باشد. در حال حاضر این کتابخانه از سنسورهای زیر پشتیبانی می‌کند:

GP2Y0A0YK0F , GP2Y0A21YK0F , GP2Y0A710K0F و GP2YA41SK0F .

آخرین نسخه کتابخانه را می‌توانید از لینک زیر دانلود کنید:

Title of the document دانلود کتابخانه SharpIR 


پس از نصب کتابخانه، از مسیر Sketch > Include Library > Add .ZIP Library  در Arduino IDE  می‌توانید آن را نصب نمائید.

مسیر نصب کتابخانه SharpIR در نرم افزار آردوینو

نویسنده‌ی کتابخانه اظهار کرده است که داده‌های سنسور می‌توانند تا حدودی نوسان داشته باشند. این کتابخانه این مشکل را با گرفتن چندین داده پشت سر هم، حذف داده‌های پرت و محاسبه‌ی میانگین داده‌های باقی‌مانده برای دستیابی به داده‌های پایدارتر حل می‌کند. در حال حاضر، این کتابخانه میانگین 25 داده را محاسبه می‌کند که حدوداً 53 میلی‌ثانیه طول می‌کشد.

کد نمونه برای راه اندازی ماژول فاصله سنج مادون قرمز شارپ GP2Y0A21YK0F با آردوینو

از کد زیر می‌توانید همراه با سنسور شارپ GP2Y0A21YK0F استفاده کنید و فاصله‌ی اندازه‌گیری شده را بر حسب سانتی‌متر در سریال مانیتور نمایش دهید.

/*SHARP GP2Y0A21YK0F IR distance sensor with Arduino and SharpIR library example code. More info: https://www.makerguides.com */

// Include the library:
#include <SharpIR.h>

// Define model and input pin:
#define IRPin A0
#define model 1080

// Create variable to store the distance:
int distance_cm;

/* Model :
  GP2Y0A02YK0F --> 20150
  GP2Y0A21YK0F --> 1080
  GP2Y0A710K0F --> 100500
  GP2YA41SK0F --> 430
*/

// Create a new instance of the SharpIR class:
SharpIR mySensor = SharpIR(IRPin, model);

void setup() {
  // Begin serial communication at a baudrate of 9600:
  Serial.begin(9600);
}

void loop() {
  // Get a distance measurement and store it as distance_cm:
  distance_cm = mySensor.distance();

  // Print the measured distance to the serial monitor:
  Serial.print("Mean distance: ");
  Serial.print(distance_cm);
  Serial.println(" cm");

  delay(1000);
}

توجه داشته باشید که در این مثال، سنسور را ‘mySensor’  نامیده‌ایم. اگر قصد استفاده از چندین سنسور فاصله سنج مادون قرمز را داشته باشید، می‌توانید شیء دیگری، با نام متفاوتی برای سنسور تعریف کنید. مانند:

SharpIR mySensor2 = SharpIR(IRPin2, model);

لازم به ذکر است که در این حالت، شما می‌توانید از پایه‌ی ورودی متفاوتی برای دومین سنسور استفاده کنید.

اکنون باید بتوانید خروجی زیر را در سریال مانیتور مشاهده کنید. (برای باز کردن سریال مانیتور می‌توانید از کلیدهای ترکیبی Ctrl+Shift+M استفاده کنید).

خروجی نمونه کد راه اندازی سنسور فاصله سنج شارپ بر روی سریال مانیتور

حرف آخر

در این مقاله، نحوه‌ی عملکرد ماژول فاصله سنج شارپ GP2Y0A21YK0F و نحوه‌ی راه اندازی آن با آردوینو را برای شما شرح دادیم. امیدواریم این مقاله بتواند برای شما آموزنده و کاربردی باشد.

اگر این پروژه را انجام دادید، حتما از تجربیات خود برای ما بنویسید و اگر به کمکی نیاز داشتید، باز هم می‌توانید در بخش دیدگاه آن را برای ما شرح دهید.

مقالات مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

پر بازدید ترین مقالات