APDS9960، مستشعر الإيماءات وRGB والقرب لأردوينو

APDS9960، مستشعر الإيماءات وRGB والقرب لأردوينو

في هذا الدرس سنستكشف كيفية استخدام وحدة المستشعر APDS9960، التي تجمع بين كشف الإيماءات واستشعار الألوان RGB وقدرات استشعار القرب. هذا المستشعر متعدد الاستخدامات يمكنه اكتشاف الحركات في اتجاهات مختلفة ويمكن دمجه في مشاريع للتحكم بالمحركات أو الأضواء أو أجهزة أخرى بناءً على إيماءات اليد. بنهاية هذا الدرس ستفهم كيفية توصيل أسلاك المستشعر وتنفيذ كشف الإيماءات الأساسي في مشاريع أردوينو الخاصة بك.

APDS-9960 gesture sensor module -1

وحدة APDS9960 صغيرة الحجم وتتطلب توصيلات قليلة، مما يجعلها خيارًا ممتازًا للمشاريع التفاعلية. سنستخدم Arduino IDE لبرمجة المستشعر وعرض الإيماءات المكتشفة على المراقب التسلسلي. للحصول على دليل بصري، راجع الفيديو عند (00:00).

شرح الأجهزة

المكون الرئيسي في هذا المشروع هو وحدة المستشعر APDS9960. تستطيع هذه الوحدة اكتشاف الإيماءات مثل السحب لليسار، السحب لليمين، السحب للأعلى، والسحب للأسفل. كما تقيس قيم ألوان RGB والقرب من الأجسام القريبة. يتواصل المستشعر مع لوحة Arduino عبر واجهة I2C، مما يبسط عملية الأسلاك والبرمجة.

يحتوي APDS9960 على عدة مستشعرات داخلية: مستشعر إيماءات، ومستشعر ألوان RGB، ومستشعر ضوء محيط. يستخدم مستشعر الإيماءات LED بالأشعة تحت الحمراء وكاشفًا ضوئيًا لاكتشاف حركات اليد، بينما يقيس مستشعر RGB شدة الضوء الأحمر والأخضر والأزرق لتحديد الألوان. يحدد مستشعر القرب مدى قرب جسم ما من المستشعر، وهو أمر مفيد في تطبيقات مختلفة.

تفاصيل ورقة البيانات

المصنّعأفاجو تكنولوجيز
رقم القطعةAPDS-9960
جهد المنطق/الإدخال/الإخراج1.8 V إلى 3.6 V
جهد التغذية3.3 فولت
تيار الخرج (لكل قناة)20 mA كحد أقصى
تيار الذروة (لكل قناة)100 ميلي أمبير
إرشادات تردد PWMغير قابل للتطبيق
عتبات الإدخال المنطقية0.3 V (منخفض)، 0.7 V (مرتفع)
هبوط الجهد / Rمقاومة المصرف-المصدر عند التشغيل/ التشبع0.5 V كحد أقصى
الحدود الحرارية-40 إلى 85 °C
حزمةLGA ذو 6 دبابيس
ملاحظات / متغيراتلا شيء

  • زوّد جهاز APDS9960 دائمًا بجهد 3.3V؛ الجهد الأعلى قد يتلف المستشعر.
  • تأكد من وجود مقاومات سحب مناسبة على خطوط I2C عند توصيل عدة أجهزة.
  • أبقِ المستشعر بعيدًا عن أشعة الشمس المباشرة لتجنب التداخل.
  • استخدم مكثف فصل بالقرب من دبابيس الطاقة لتحقيق الاستقرار.
  • كن على دراية بنطاق الاستشعار للكشف عن القرب (عادةً حوالي 20 سم).

تعليمات الأسلاك

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

لتوصيل وحدة المستشعر APDS9960 بلوحة أردوينو الخاصة بك، اتبع الخطوات التالية:

  • قم بتوصيل الـVCCوصل دبوس APDS9960 إلى دبوس 3.3V على لوحة الأردوينو.
  • وصل الـGNDوصل الدبوس بأحد دبابيس GND في لوحة الأردوينو.
  • قم بتوصيل الـSDAدبوس إلى الأردوينوA4دبوس (خط بيانات I2C).
  • قم بتوصيل الـSCLدبوس إلى الأردوينوA5دبوس (خط الساعة لـ I2C).
  • وصل الـINTدبوس إلى دبوس رقمي2على الأردوينو لمعالجة المقاطعات.

لاحظ أنه إذا كنت تستخدم نموذجًا مختلفًا من Arduino، فقد تختلف دبابيس SDA وSCL (على سبيل المثال، على Arduino Mega، استخدمSDAعلى الدبوس رقم 20 وSCLعلى الدبوس 21). تأكد من التحقق من تعيينات الدبابيس المحددة للوحة الخاصة بك. للتكوينات المختلفة، راجع الفيديو عند (02:30).

أمثلة على الكود وشرح خطوة بخطوة

في دالة الإعداد (setup)، نقوم بتهيئة الاتصال التسلسلي ومستشعر APDS9960. تم إعداد دبوس المقاطعة للاستماع إلى أحداث الإيماءات. فيما يلي مقتطف من كود الإعداد:

void setup() {
  pinMode(APDS9960_INT, INPUT);
  Serial.begin(9600);
  Serial.println(F("APDS-9960 initialization..."));
  if (apds.init()) {
    Serial.println(F("Initialization complete"));
  } else {
    Serial.println(F("Initialization failed"));
  }
}

يقوم هذا الكود بإعداد التكوينات اللازمة لضمان أن المستشعر جاهز للاستخدام ويوفر ملاحظات في المراقب التسلسلي.

بعد ذلك، نحدد كيفية التعامل مع الإيماءات التي يكتشفها المستشعر. الـhandleGestureتستخدم الدالة عبارة switch لتحديد اتجاه الإيماءة. فيما يلي مقتطف مُركّز:

void handleGesture() {
  if (apds.isGestureAvailable()) {
    switch (apds.readGesture()) {
      case DIR_UP:
        Serial.println("UP");
        break;
      case DIR_DOWN:
        Serial.println("DOWN");
        break;
      // Additional cases for left, right, near, and far
    }
  }
}

تتحقق هذه الدالة مما إذا كانت هناك إيماءة متاحة وتقرأ اتجاهها، ثم تطبع النتيجة على المراقب التسلسلي لتقديم تغذية راجعة. تأكد من الرجوع إلى الشيفرة الكاملة المرفوعة أسفل المقال للحصول على تفاصيل التنفيذ الكاملة.

عرض توضيحي / ما الذي تتوقعه

عند تشغيل البرنامج، يجب أن ترى الإيماءات المكتشفة مطبوعة على شاشة المراقبة التسلسلية أثناء تحريك يدك في اتجاهات مختلفة. على سبيل المثال، السحب لأعلى يجب أن يعرض UP، بينما السحب لأسفل يعرض DOWN. تأكد من إبقاء يدك ثابتة لمدة ثانية عند أداء إيماءات القرب والبعد (في الفيديو عند 10:00).

كن حذرًا من نظام استشعار القرب؛ إذا حركت يدك بسرعة كبيرة أو بعيدًا جدًا عن المستشعر فقد لا يسجل الإيماءة بدقة. هذه مشكلة شائعة قد تؤثر على الأداء.

الطوابع الزمنية للفيديو

  • 00:00- مقدمة عن مستشعر APDS9960
  • 02:30- تعليمات التوصيل الكهربائي
  • 05:15- شرح الكود
  • 10:00- عرض توضيحي للتعرّف على الإيماءات

الصور

APDS-9960 gesture sensor module -2
APDS-9960 gesture sensor module -2
APDS-9960 gesture sensor module -1
APDS-9960 gesture sensor module -1
Arduino wiring for APDS9960 Gesture sensor
Arduino wiring for APDS9960 Gesture sensor
87-This is code for an APDS9960 gesture, RGB, and proximity sensor module (6-pin).
اللغة: C++
تم النسخ!

الأشياء التي قد تحتاجها

الموارد والمراجع

ملفات📁

Fritzing File

ملفات أخرى