تشخیص حرکت و ژست بدن با سنسور PIR و آردوینو

مقدمه

در این آموزش، شما با نحوه ی راه اندازی و تشخیص حرکت با استفاده از سنسور PIR و آردوینو آشنا می شوید. در انتهای این آموزش قادر خواهید بود که:

  • نحوه ی عملکرد و راه اندازی سنسور PIR را توضیح دهید.
  • سنسور TPA81 را راه اندازی کنید. (8-Pixel PIR)
  • از PIR برای تشخیص حرکت استفاده کنید.
  • یک حسگر جذاب برای کم و زیاد کردن صدای بلندگو بسازید.

سنسور PIR چیست و چگونه کار می کند؟

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

سنسور مادون قرمز پسیو (passive infrared sensor) یا همان PIR یک سنسور الکتریکی برای اندازه گیری امواج مادون قرمز (IR) است. معمولا از این سنسور ها برای تشخیص حرکت استفاده می شود.

عبارت “پسیو” در PIR به این موضوع اشاره می کند که این سنسور انرژی و امواجی از خود ساطع نمی کند و فقط امواج منتشر شده توسط اجسامی که در محیط قرار دارند را دریافت می کند.

سنسور TPA81 یک آرایه ی حرارتی برای تشخیص امواج مادون قرمز در بازه ی 2 تا 22 میکرومتر (محدوده ی طول موج امواج مادون قرمز) است. این سنسورها قادر به تشخیص تغییرات دما هستند و از این قابلیت برای تشخیص حرکت استفاده می کنند.

سنسور TPA81 به دلیل داشتن آرایه ای از مقاومت های دمایی مادون قرمز، دقت بیشتری نسبت به PIR های معمولی در تشخیص حرکت دارند. به همین دلیل، این سنسورها مناسب برای تشخیص حرکات بدن (gesture) نیز می باشند.

زاویه دید این سنسور حدود 100 درجه و گستره ی دید آن حدود 2 متر است.

رابط ارتباطی سنسور I2C، TPA81 است. پس به راحتی می توانید با بردهای آردوینو آن را راه اندازی کنید.

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

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

آردوینو نانو × 1
سنسور حرارتی آرایه ایTPA81 × 1
نمایشگر OLED 0.96 اینچ × 1
برد بورد کوچک × 1
سیم جامپر × 1
سنسور PIR HC-SR505 × 8

نرم افزارهای مورد نیاز

Arduino IDE

سیم بندی

اگر می خواهید به جای استفاده از TPA81، از 8 سنسور PIR استفاده کنید، باید هر 8 سنسور را به آردوینو متصل کرده و خروجی آن ها را یکی پس از دیگری اندازه گیری کنید.

کد

برای مدار اول (مدار TPA81)، ابتدا باید کتابخانه را نصب کرده و سپس کد زیر را در نرم افزار Arduino IDE کپی کنید.

دانلود کتابخانه ی TPA81:


بعد از بستن مدار و آپلود کد روی آردوینو، پنجره ی سریال (Serial monitor) را باز کنید. اعداد نشان داده شده، خروجی آرایه ی حرارتی TPA81 هستند.

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

برای تعریف یک حرکت، باید دمای دست خود را به عنوان دمای آستانه در کد تعریف کنید. برای ما این دما 29 درجه بود.

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

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