المستشعر أبس-9960، جوهرة صغيرة من الهندسة، وهو مكون مذهل يتيح اكتشاف الإيماءات والقرب، بالإضافة إلى قياس الضوء المحيط واللون. يُستخدم في الأجهزة الإلكترونية المتطورة مثل Samsung Galaxy S5، وهو اليوم في متناول أي متحمس للإلكترونيات يعمل مع منصات مثل Arduino. بفضل قدرته على اكتشاف الإيماءات في نطاق يتراوح من 5 إلى 20 سم وتكامله السهل مع الأجهزة الأخرى، فهو الخيار المثالي لأولئك الذين يتطلعون إلى دمج التحكم بالإيماءات في مشاريعهم.
في هذه المقالة سوف نستكشف بعمق كيفية عمل هذا المستشعر وكيفية توصيله بـ Arduino، مع الانتباه إلى الاستخدامات العديدة التي يمكن أن يتمتع بها ونقدم أمثلة التعليمات البرمجية التي ستسمح لك ببدء العمل معه بسرعة.
ما هو مستشعر APDS-9960؟
El أبس-9960 إنه مستشعر يجمع بين أربع وظائف رئيسية: اكتشاف الإيماءات والقرب واللون والإضاءة المحيطة. وهو جهاز يقوم بتوصيل قراءاته باستخدام بروتوكول الاتصال I2C مما يسهل بشكل كبير استخدامه مع المتحكمات الدقيقة مثل اردوينو. ومن بين فضائله، تبرز قدرته على قياس اللون والضوء المحيط واكتشاف الإيماءات دون اتصال، والتعرف على الحركات مثل اليسار واليمين والأعلى والأسفل والقريب والبعيد.
يعمل هذا المستشعر بفضل دمج أ باعث الأشعة تحت الحمراء وأربعة الثنائيات الضوئية الاتجاهيةوالتي تسمح باكتشاف وحساب اتجاه حركة الأجسام القريبة. بالإضافة إلى ذلك، فهو يتمتع بالقدرة على قياس كمية الضوء المحيط واكتشاف لون RGB.
ربط حساس APDS-9960 مع الاردوينو
لتوصيل أبس-9960 مع Arduino، تحتاج ببساطة إلى إنشاء اتصال عبر الحافلة I2C. يعمل هذا المستشعر بجهد 3.3 فولت، لذلك من الضروري إجراء التوصيلات المناسبة لتجنب إتلافه، خاصة إذا كنت تعمل مع 5V اردوينو. في هذه الحالة، يُنصح باستخدام أ محول مستوى المنطق لخفض الجهد الناقل I2C.
- GND إلى دبوس GND من اردوينو.
- VCC إلى دبوس 3.3V من اردوينو.
- SDA إلى دبوس SDA من اردوينو.
- SCL إلى دبوس SCL من اردوينو.
إذا كان طراز Arduino الخاص بك هو 5 فولت، فمن الواضح أنه يجب اتخاذ احتياطات إضافية، على الرغم من أنه في بعض الحالات تم الإبلاغ عن أن المستشعر يمكن أن يعمل دون تعرضه للتلف. ومع ذلك، هذا ليس مؤكدا تماما على المدى الطويل.
المكتبات والكود لاردوينو
لاستخدام APDS-9960 مع Arduino، إحدى أسهل الطرق هي استخدام المكتبة التي تم تطويرها بواسطة Adafruit، مما يبسط استخدامه. يمكنك تنزيله من GitHub جيثب: وتثبيته مباشرة في بيئة تطوير Arduino.
المثال الأساسي: إظهار الإيماءات عبر المنفذ التسلسلي
في هذا المثال الأول، ستتم قراءة الإيماءات المكتشفة وعرضها عبر المنفذ التسلسلي. ما عليك سوى تمرير يدك فوق المستشعر على مسافة تتراوح بين 5 و20 سم حتى يتم اكتشاف الإيماءات:
#include "Adafruit_APDS9960.h"
Adafruit_APDS9960 apds;
void setup() {
Serial.begin(115200);
if (!apds.begin()) {
Serial.println("Error al inicializar el sensor, comprueba el cableado");
while (1);
}
apds.enableGesture(true);
}
void loop() {
uint8_t gesture = apds.readGesture();
if (gesture == APDS9960_DOWN) Serial.println("Abajo");
if (gesture == APDS9960_UP) Serial.println("Arriba");
if (gesture == APDS9960_LEFT) Serial.println("Izquierda");
if (gesture == APDS9960_RIGHT) Serial.println("Derecha");
}
يعد هذا الرمز مجرد عينة مما يمكنك فعله باستخدام مستشعر الإيماءات مثل APDS-9960. عندما تمرر يدك على الجهاز، سيكتشف البرنامج الإيماءة ويعرض النتيجة على وحدة تحكم المنفذ التسلسلي.
مثال متقدم: يومض مؤشر LED بناءً على الإيماءة
في هذا المثال الثاني، سوف نقوم بدمج الإيماءات المكتشفة مع LED مدمج في اللوحة. اعتمادًا على الإيماءة المكتشفة، سنومض مؤشر LED عددًا محددًا من المرات:
#include "Adafruit_APDS9960.h"
Adafruit_APDS9960 apds;
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
if (!apds.begin()) {
Serial.println("Error al inicializar el sensor");
while (1);
}
apds.enableGesture(true);
}
void loop() {
uint8_t gesture = apds.readGesture();
if (gesture == APDS9960_DOWN) blink(1);
if (gesture == APDS9960_UP) blink(2);
if (gesture == APDS9960_LEFT) blink(3);
if (gesture == APDS9960_RIGHT) blink(4);
}
void blink(int times) {
for (int i = 0; i < times; i++) {
digitalWrite(LED_BUILTIN, HIGH);
delay(100);
digitalWrite(LED_BUILTIN, LOW);
delay(100);
}
}
المشاكل والحلول الشائعة
على الرغم من أن أبس-9960 إنه مستشعر قوي إلى حد ما، صحيح أنه في البيئات التي بها الكثير من الضوء أو التداخل، يمكن أن تفشل القراءات. بالإضافة إلى ذلك، إذا تم استخدامه في ظروف غير مثالية، فقد يفشل في اكتشاف الحركة أو حتى توليد نتائج إيجابية كاذبة.
هناك جانب آخر يجب أخذه في الاعتبار وهو أن هذا المستشعر يعتمد تمامًا على الإضاءة المحيطة الصحيحة، وعلى الرغم من أنه حساس للغاية، إلا أنه قد لا يعمل بشكل جيد مع الأشياء في ظروف مثل الأسطح اللامعة أو مع القفازات، نظرًا لأنها قد لا تعكس الضوء بشكل صحيح المنبعثة من ضوء الأشعة تحت الحمراء.
يعد بروتوكول I2C الذي يستخدمه هذا الجهاز بسيطًا للغاية، ولكن لا يزال من الضروري التأكد من صحة الاتصالات وعدم وجود مشاكل في الجهد.
يعد مستشعر APDS-9960 أداة ممتازة للمشاريع التي تتطلع إلى دمج اكتشاف الإيماءات والقرب. إنه اقتصادي وسهل التكامل من خلال I2C ويحتوي على مكتبات تعمل على تبسيط استخدامه. على الرغم من أنه قد يسبب مشاكل في بعض البيئات، إلا أن حساسيته القابلة للتعديل وقدرته على العمل خلف الزجاج تجعله خيارًا متعدد الاستخدامات. باستخدام أمثلة التعليمات البرمجية المقدمة، يمكنك البدء في العمل مع هذا المستشعر واكتشاف إمكاناته الكاملة في مشاريعك.