تشخیص نور + تشخیص حرکت موجودات زنده | قسمت سی و سوم آموزش آردوینو

تشخیص نور + تشخیص حرکت موجودات زنده | قسمت سی و سوم آموزش آردوینو
24 بازدید
۱۴۰۴-۰۵-۱۳
6 دقیقه
  • نویسنده: Arduino captain
  • درباره نویسنده: من کاپیتان آردوینو، اسمم میلاده و اینجا هستم تا تجربیاتم در رابطه با آردوینو رو با شما به اشتراک بزارم!

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

تشخیص نور

اگر شما می‌خواهید تغییرات سطح نور را تشخیص دهید. مثلاً وقتی چیزی از جلوی سنسور نور عبور می‌کند یا اگر بخواهید میزان نور محیط را اندازه بگیرید—برای نمونه، تشخیص دهید چه زمانی یک اتاق بیش از حد تاریک شده است، ساده‌ترین روش برای تشخیص سطح نور، استفاده از فوتوسنسور یا مقاومت نوری (LDR) است. این قطعه با تغییر میزان نور، مقاومتش را تغییر می‌دهد. وقتی طبق مدار شکل 1 به سیستم متصل شود، ولتاژی متغیر تولید می‌کند که پایه‌های ورودی آنالوگ آردوینو می‌توانند آن را حس کنند.

کدی که برای این کاربرد نوشته می‌شود نیز ساده است:

فوتوترانزیستور

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

فوتوترانزیستور ظاهری شبیه به LED دارد و دارای یک پایه بلند و یک پایه کوتاه است. می‌توانید آن را مانند شکل 1 به مدار متصل کنید، با این تفاوت که باید پایه بلند را به ولتاژ ۵ ولت و پایه کوتاه را به مقاومت و پایه ۰ آردوینو متصل کنید.

حتماً فوتوترانزیستوری تهیه کنید که بتواند نور مرئی را تشخیص دهد—مثل مدل 2831 از Adafruit— تا بتوانید آن را با یک منبع نوری معمولی (مثلاً چراغ یا نور اتاق) آزمایش کنید.

تشخیص نور + تشخیص حرکت موجودات زنده | قسمت سی و سوم آموزش آردوینو

شکل 1: نحوه اتصال یک مقاومت نوری (LDR) به مدار

مدار تقسیم ولتاژ و عملکرد آن

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

در مدار نشان‌داده‌شده در شکل 1، ولتاژ ورودی در پایه‌ی آنالوگ شماره ۰ آردوینو با تغییر مقاومت فوتوسنسور (مقاومت نوری) یا فوتوترانزیستور تغییر می‌کند که این تغییر مقاومت به میزان نور محیط بستگی دارد.

مداری مانند این، تمام بازه‌ی ممکن ورودی آنالوگ (از ۰ تا ۱۰۲۳) را تولید نمی‌کند، چون ولتاژ مدار بین ۰ تا ۵ ولت نوسان کامل نخواهد داشت.

علت این است که همیشه در هر مقاومت، مقداری افت ولتاژ وجود دارد، بنابراین ولتاژی که در نقطه‌ی اتصال مقاومت‌ها (مثلاً بین مقاومت نوری و مقاومت ثابت) اندازه‌گیری می‌شود، هیچ‌گاه به طور کامل به صفر یا ۵ ولت نمی‌رسد.

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

فوتورزیستور (مقاومت نوری) نوع ساده‌ای از سنسور است که به آن سنسور مقاومتی گفته می‌شود. مجموعه‌ای از سنسورهای مقاومتی وجود دارند که به تغییرات در ویژگی‌های فیزیکی مختلف واکنش نشان می‌دهند.

نحوه انتخاب مقاومت مناسب

آردوینو نمی‌تواند مقاومت را به طور مستقیم اندازه‌گیری کند، بنابراین در این راه‌حل، از یک مقاومت با مقدار ثابت همراه با یک سنسور مقاومتی (مثل مقاومت نوری) استفاده می‌شود تا با هم یک تقسیم‌کننده‌ی ولتاژ بسازند.

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

در مدار تقسیم ولتاژ، از دو مقاومت استفاده می‌شود تا ولتاژ خروجی‌ای تولید شود که به نسبت بین ولتاژ ورودی و مقدار این دو مقاومت بستگی دارد؛ بنابراین، اگر یک مقاومت ثابت را با یک قطعه‌ی دارای مقاومت متغیر (مثل فوتورزیستور) ترکیب کنید، پایه آنالوگ آردوینو ولتاژی را می‌بیند که بسته به شدت نور محیط (یعنی چیزی که فوتورزیستور حس می‌کند) تغییر می‌کند.

مدارهای مشابهی را می‌توان برای انواع دیگر سنسورهای مقاومتی ساده نیز استفاده کرد، هرچند ممکن است لازم باشد مقدار مقاومت ثابت را بسته به نوع سنسور تغییر دهید.

انتخاب بهترین مقدار مقاومت ثابت به نوع فوتورزیستوری که استفاده می‌کنید و همچنین به بازه‌ی نوری‌ای که قصد دارید اندازه‌گیری کنید، بستگی دارد.

مهندسان معمولاً از نورسنج و دیتاشیت فوتورزیستور برای انتخاب مقدار دقیق مقاومت استفاده می‌کنند.

اما اگر شما یک مولتی‌متر دارید، می‌توانید مقاومت فوتورزیستور را در شرایط نوری‌ای که تقریباً وسط بازه‌ی موردنظر شماست اندازه‌گیری کنید. سپس مقدار اندازه‌گیری‌شده را یادداشت کرده و نزدیک‌ترین مقدار مقاومت استاندارد را برای استفاده در مدار انتخاب کنید.

بررسی داده‌ها با Serial Plotter

همچنین، می‌توانید خروجی فوتورزیستور را از طریق آردوینو بخوانید، آن را روی پورت سریال چاپ کنید و با استفاده از Serial Plotter تغییرات ولتاژ (بالاترین و پایین‌ترین مقادیر) را به‌صورت نمودار مشاهده کنید.

تأثیر نورهای مصنوعی و راه‌حل میانگین‌گیری متحرک

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

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

برای جبران این مشکل، می‌توانید از میانگین‌گیری متحرک (moving average) روی داده‌های خوانده‌شده استفاده کنید.

تشخیص حرکت موجودات زنده

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

سنسورهایی مانند سنسور PIR آدافروت (Adafruit) با شماره قطعه ۱۸۹ و سنسور PIR پارالاکس (Parallax) با شماره 555-28027 به‌راحتی قابل اتصال به پایه‌های آردوینو هستند، همان‌طور که در شکل 2 نشان‌داده‌شده است.

برخی سنسورهای PIR، مانند سنسور حرکت PIR اسپارک‌فان (SparkFun) مدل SEN-13285، نیاز به مقاومت پول‌آپ (pull-up resistor) در خروجی سنسور دارند.

اگر از مقاومت پول‌آپ استفاده کنید، باید پایه مربوطه را در حالت INPUT_PULLUP تنظیم کنید و منطق برنامه (اسکچ) را مطابق توضیحات بخش “Discussion” معکوس کنید.

تشخیص نور + تشخیص حرکت موجودات زنده | قسمت سی و سوم آموزش آردوینو

شکل 2: اتصال سنسور حرکت PIR

برای شناسایی پایه‌های صحیح، دیتاشیت سنسور خود را بررسی کنید.

پیکربندی پایه‌ها و کدنویسی اولیه

برای مثال، سنسور Adafruit پایه‌هایی با برچسب‌های “OUT”، “–” و “+” دارد (به ترتیب خروجی، زمین و ۵ ولت) و سنسور Parallax با پایه‌های GND،VCC  و OUT علامت‌گذاری شده است. برنامه‌ی زیر (اسکچ) وقتی سنسور حرکت را تشخیص دهد، LED داخلی برد آردوینو را روشن می‌کند.

این کد شبیه مثال‌های استفاده از دکمه فشار در قسمت‌های قبلی است، چون سنسور مانند یک کلید عمل می‌کند وقتی حرکتی شناسایی می‌شود.

انواع مختلفی از سنسورهای PIR وجود دارد و بهتر است اطلاعات مربوط به سنسوری که به کار برده‌اید را بررسی کنید.

توجه به تنوع در سنسورهای PIR

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

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

اسکچ نمونه‌ای که در این بخش آمده، در هر دو حالت کار می‌کند.

برخی سنسورها هنگام تشخیص حرکت، خروجی‌شان به حالت LOW می‌رود.

اگر خروجی سنسور شما هنگام حرکت LOW می‌شود، باید خطی که مقدار ورودی را بررسی می‌کند تغییر کند تا LED وقتی مقدار ورودی LOW بود روشن شود:

اگر در داکیومنت سنسور شما ذکر شده که به مقاومت پول‌آپ (pull-up resistor) نیاز دارد، باید در قسمت setup کد، تنظیم پایه ورودی (inputPin) را تغییر دهید:

تنظیم حساسیت در سنسورهای PIR

سنسورهای PIR در انواع مختلفی عرضه می‌شوند و هر کدام حساسیت‌شان نسبت به فاصله و زاویه‌ی دید متفاوت است.

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

برخی سنسورهای PIR دارای یک پتانسیومتر هستند که با پیچ‌گوشتی می‌توانید حساسیت آن‌ها را تنظیم کنید.

اطلاعات
24
0
0
لینک و اشتراک
profile

نویسنده: Arduino captain

متخصص الکترونیک

من کاپیتان آردوینو، اسمم میلاده و اینجا هستم تا تجربیاتم در رابطه با آردوینو رو با شما به اشتراک بزارم!


ویراستار: محمد کبیر
مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ
سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله