حساس(حس کننده) ژست APDS-9960 با آردوینو

حساس(حس کننده) ژست APDS-9960 با آردوینو

حساس(حس کننده) ژست APDS-9960 امکان تشخیص حرکات دست مانند کشیدن انگشت و مجاورت را فراهم می کند. در این آموزش نحوه اتصال APDS-9960 به آردوینو و برنامه ریزی آن برای تشخیص حرکات را نشان خواهیم داد. نتیجه یک راه اندازی ساده خواهد بود که می تواند حرکات را تشخیص داده و آنها را از طریق نمایشگر مسلسل گزارش دهد. این راهنما به شما کمک می کند سیم کشی و شِفر (کود) مورد نیاز برای شروع کار با حساس(حس کننده) ژست را درک کنید. (در ویدیو ساعت 00:30)

APDS-9960 gesture sensor module -1

سخت افزار توضیح داده شده است

APDS-9960 یک حساس(حس کننده) همه کاره است که ترکیبی از حساس(حس کننده) رنگ RGB، حساس(حس کننده) نور محیط، حساس(حس کننده) مجاورت و قابلیت های تشخیص ژست است. از طریق I2C با آردوینو ارتباط برقرار می کند ، که امکان ادغام آسان با حداقل سیم کشی را فراهم می کند. حساس(حس کننده) فقط با فرکانس 3.3 ولت کار می کند و اطمینان از سطوح ولتاژ مناسب برای جلوگیری از آسیب رساندن به دستگاه ضروری است. در این بیلد، ما از آردوینو برای خواندن داده های ژست استفاده خواهیم کرد. این حساس(حس کننده) اطلاعات ژست را از طریق وقفه ها خروجی می دهد، که به آردوینو اجازه می دهد تا به سرعت به حرکات دست پاسخ دهد. ادغام APDS-9960 با آردوینو امکانات زیادی را برای پروژه های تعاملی از جمله دستگاه های کنترل شده با ژست باز می کند.

جزئیات برگه داده

تولید کنندهBroadcom
شماره قطعهAPDS-9960
ولتاژ منطق / IO2.7 - 3.6 ولت
ولتاژ منبع تغذیه3.3 ولت
جریان خروجی (در هر کانال)1 میلی آمپر
حداکثر جریان (در هر کانال)10 میلی آمپر
هدایت فرکانس PWM100 هرتز
آستانه های منطق ورودی0.3 x ولتDd(کم)، 0.7 x VDd(بالا)
افت ولتاژ / RDS(روشن)/اشباعحداکثر 0.5 ولت
محدودیت های حرارتی-40 تا +85 درجه سانتی گراد
بستهLGA 6 پایه
یادداشت ها / انواعپشتیبانی از ارتباطات I2C

  • اطمینان حاصل کنید که ولتاژ منبع تغذیه از 3.6 ولت تجاوز نمی کند تا از آسیب جلوگیری شود.
  • برای برقراری ارتباط قابل اعتماد از مقاومت های کششی در خطوط I2C استفاده کنید.
  • حساس(حس کننده) را از نور مستقیم خورشید دور نگه دارید تا قرائت دقیق داشته باشید.
  • مطمئن شوید که حساس(حس کننده) را به درستی در شِفر (کود) مقداردهی اولیه کنید.
  • اتصالات سیم کشی را بررسی کنید تا از ورودی های شناور جلوگیری کنید.

دستورالعمل سیم کشی

Arduino wiring for APDS9960 Gesture sensor
Arduino wiring for APDS9960 Gesture sensor

برای سیم کشی APDS-9960 به آردوینو ، با اتصال برق شروع کنید. از یک سیم قرمز برای اتصال پایه VCC APDS-9960 به پایه 3.3 ولت آردوینو استفاده کنید. در مرحله بعد، پایه GND روی حساس(حس کننده) را با استفاده از یک سیم سیاه به یک پایه زمین روی آردوینو وصل کنید. اکنون، برای ارتباط I2C، پایه SDA APDS-9960 را به پایه A4 آردوینو وصل کنید. به طور مشابه، پایه SCL را به پایه A5 روی آردوینو وصل کنید. در نهایت، پایه INT حساس(حس کننده) را به پایه 2 روی آردوینو وصل کنید. این به آردوینو اجازه می دهد تا به وقفه های ایجاد شده توسط حساس(حس کننده) پاسخ دهد.

مثال های شِفر (کود) و بررسی

شِفر (کود) ارائه شده حساس(حس کننده) APDS-9960 را مقداردهی اولیه می کند و آردوینو را برای خواندن حرکات تنظیم می کند. در اینجا گزیده ای کوتاه از عملکرد راه اندازی آورده شده است:

void setup() {
  pinMode(APDS9960_INT, INPUT);
  Serial.begin(9600);
  attachInterrupt(0, interruptRoutine, FALLING);
  if ( apds.init() ) {
    Serial.println(F("APDS-9960 initialization complete"));
  }
}

در این قطعه ، نمایشگر مسلسل را مقداردهی اولیه می کنیم و پایه وقفه را تنظیم می کنیم. حساس(حس کننده) مقداردهی اولیه می شود و یک پیام تأیید در کنسول چاپ می شود. در مرحله بعد، حرکات موجود در تابع حلقه را بررسی می کنیم:

void loop() {
  if( isr_flag == 1 ) {
    detachInterrupt(0);
    handleGesture();
    isr_flag = 0;
    attachInterrupt(0, interruptRoutine, FALLING);
  }
}

در اینجا، حلقه به طور مداوم حرکات را بررسی می کند. هنگامی که حرکتی شناسایی می شود، وقفه غیرفعال می شود و تابع "handleGesture" برای پردازش ژست فراخوانی می شود. در نهایت، تابع 'handleGesture' حرکات شناسایی شده را پردازش می کند:

void handleGesture() {
  if ( apds.isGestureAvailable() ) {
    switch ( apds.readGesture() ) {
      case DIR_UP:
        Serial.println("UP");
        break;
      case DIR_DOWN:
        Serial.println("DOWN");
        break;
      // Additional cases...
    }
  }
}

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

APDS-9960 gesture sensor -3

تظاهرات / چه انتظاری باید داشت

پس از اتمام راه اندازی، می توانید انتظار داشته باشید که آردوینو حرکات را بخواند و جهت شناسایی شده را روی نمایشگر مسلسل نمایش دهد. امتحان های ساده شامل حرکت دادن دست به بالا، پایین، چپ یا راست جلوی حساس(حس کننده) است. اگر همه چیز به درستی سیم کشی شده باشد، باید خروجی مربوطه را روی نمایشگر مسلسل ببینید که تشخیص ژست را تأیید می کند. مراقب ورودی های شناور باشید، زیرا می توانند منجر به خوانش های متناقض شوند (در ویدیو در ساعت 05:20).

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

  • 00:00-مقدمه
  • 01:15- بررسی اجمالی سخت افزار
  • 03:00- دستورالعمل سیم کشی
  • 04:30- راهنمای شِفر (کود)
  • 06:15-تظاهرات

تصاویر

APDS-9960 gesture sensor module -2
APDS-9960 gesture sensor module -2
APDS-9960 gesture sensor module -1
APDS-9960 gesture sensor module -1
APDS-9960 gesture sensor -3
APDS-9960 gesture sensor -3
Arduino wiring for APDS9960 Gesture sensor
Arduino wiring for APDS9960 Gesture sensor
1-Code for an APDS-9960 gesture sensor for Arduino
زبان: C++
2-Source code for controlling a servo with your hand
زبان: C++
کپی شد!

منابع و مراجع

هنوز هیچ منبعی موجود نیست.

فایل‌ها📁

سایر فایل‌ها