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

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

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

سنسور های داخلی آردوینو

برد Arduino Nano 33 BLE Sense دقیقاً برای چنین شرایطی طراحی شده است. این برد بسیار کوچک، ارزان، سریع و دارای هشت قابلیت سنسوری مختلف است که توسط مجموعه‌ای از قطعات داخلی روی برد فراهم شده‌اند. جدول 1، قابلیت‌های این قطعات و نام کتابخانه‌های مربوطه را فهرست کرده است. پیش از استفاده از Nano 33 BLE Sense، ابتدا در بخش «مدیر بردهای آردوینو» پکیج Arduino nRF528x Boards (Mbed OS) را نصب کنید. سپس با استفاده از «مدیر کتابخانه‌ها»، هر یک از کتابخانه‌های ذکرشده در ستون نام کتابخانه را نصب نمایید.

 

نام کتابخانهخصوصیاتقطعه
Arduino_APDS9960تشخیص ژست (Gesture)، مجاورت (Proximity)، رنگ RGBBroadcom APDS-9960
Arduino_HTS221دما، رطوبت نسبیST HTS221
Arduino_LPS22HBفشار بارومتریکST LPS22HB
Arduino_LSM9DS1واحد اندازه‌گیری اینرسی 9 محوره (IMU): شتاب‌سنج، ژیروسکوپ، مغناطیس‌سنجST LSM9DS1
(نصب‌شده به‌طور پیش‌فرض با بسته برد Nano 33 BLE)میکروفون دیجیتالST MP34DT05

 

جدول 1: سنسورهای داخلی برد Nano

پس از نصب پشتیبانی از برد Nano 33 BLE Sense و کتابخانه‌های مربوطه، از منوی Tools در محیط Arduino IDE استفاده کنید تا برد Nano 33 BLE را انتخاب کرده و پورت صحیح را تنظیم نمایید. در زمان نگارش این متن، هر دو برد Nano 33 BLE و Nano 33 BLE Sense  از تنظیم برد یکسانی در IDE استفاده می‌کنند. در واقع، Nano 33 BLE  همان Nano 33 BLE Sense است، فقط بدون سنسورهای پیشرفته. سپس کد زیر را روی برد آپلود کرده و Serial Monitor را باز کنید.

در Serial Monitor پیامی نمایش داده می‌شود که نحوه تعامل با Arduino Nano 33 BLE Sense را توضیح می‌دهد. برای انجام حرکت کشیدن (swipe) در یک جهت خاص، دست خود را بالای برد نگه دارید و حرکتی مانند پاک‌کردن انجام دهید. برای کشیدن به سمت بالا، دست خود را از سمت پورت USB برد به سمت ماژول u-blox در انتهای مقابل حرکت دهید.

کد این برنامه از چندین سنسور داخلی بورد Nano 33 BLE Sense استفاده می‌کند:

  • سنسور حرکت (APDS-9960)
  • سنسور دما و رطوبت (HTS221)
  • فشارسنج (LPS22HB)
  • ژیروسکوپ (LSM9DS1)

تابع setup منتظر می‌ماند تا درگاه سریال (Serial Port) باز شود، سپس هر یک از این سنسورها را مقداردهی اولیه می‌کند. اگر هنگام راه‌اندازی هرکدام از سنسورها خطایی رخ دهد، یک پیام خطا در Serial Monitor نمایش داده می‌شود و برنامه با ورود به یک حلقه بی‌پایان (while(1);) متوقف می‌ماند.

در پایان تابع setup، برنامه تابع prompt را فراخوانی می‌کند و پیام‌هایی را در Serial Monitor نمایش می‌دهد. درون حلقه loop، برنامه بررسی می‌کند که آیا سنسور APDS-9960 حرکتی را تشخیص داده یا نه. اگر حرکتی شناسایی شده باشد، اجرای برنامه به تابعی منتقل می‌شود که مربوط به سنسور موردنظر است.

هر یک از این توابع، وضعیت سنسور مربوطه را می‌خواند و در Monitor Serial نمایش می‌دهد.

برای ژیروسکوپ، برنامه از شما می‌خواهد که بورد را بچرخانید، سپس وارد یک حلقه می‌شود که در آن ۱۰ بار داده‌های ژیروسکوپ را با کمی تأخیر می‌خواند تا بتوانید تغییر مقادیر را همراه با حرکت خود ببینید.

تشخیص حرکت

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

این اسکچ از یک کلید استفاده می‌کند که هنگام کج‌شدن، مدار را می‌بندد؛ این قطعه سنسور شیب (Tilt Sensor) نام دارد.

اسکچ زیر (مدار آن در شکل 1 نشان داده شده) زمانی که سنسور شیب به یک سمت خم شود، LED متصل به پایه ۱۱ را روشن می‌کند و وقتی به سمت دیگر خم شود، LED متصل به پایه ۱۲ را روشن می‌کند.

سنسور تمایل (Tilt Sensor) و LEDها

شکل 1: سنسور شیب (Tilt Sensor) و LEDها

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

سنسورهای شیب نسبت به حرکت‌های کوچک حدود ۵ تا ۱۰ درجه حساس هستند، به‌ویژه زمانی که طوری قرار گیرند که ساچمه فقط کمی با کانتکت‌ها تماس داشته باشد.

اگر سنسور را طوری قرار دهید که ساچمه دقیقاً بالای کانتکت‌ها باشد، وضعیت LED تنها زمانی تغییر می‌کند که سنسور کاملاً برعکس شود. از این ویژگی می‌توان برای تشخیص ایستاده بودن یا وارونه بودن یک شیء استفاده کرد.

برای تشخیص اینکه یک جسم در حال تکان‌خوردن (لرزش) است یا نه، باید بررسی کنید که چه مدت از آخرین تغییر وضعیت سنسور شیب گذشته است.

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

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

بسیاری از سنسورهای سوئیچی مکانیکی را می‌توان به روش‌های مشابه استفاده کرد.

برای مثال، سوئیچ شناور (Float Switch) زمانی فعال می‌شود که سطح آب در یک مخزن به حد مشخصی برسد. همچنین، پد فشاری (Pressure Pad) مانند آنچه در ورودی فروشگاه‌ها استفاده می‌شود، می‌تواند تشخیص دهد که کسی روی آن ایستاده است یا خیر.

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

اطلاعات
32
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

نویسنده شو !

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

ارسال مقاله