apds9960 --- مُشغّل مستشعر القرب والإيماءات واللون#
توفّر هذه الوحدة مُشغّلاً لمستشعر Broadcom/Avago APDS9960 الرقمي للقرب والضوء المحيط ولون RGB والإيماءات عبر I2C. يكشف المُشغّل عن عناصر تحكم بالتمكين/التعطيل لكل ميزة، وقراءات قنوات خام (الصافية، R، G، B، القرب)، وآلة حالة لفك ترميز الإيماءات برمجياً تُصنّف إيماءات التمرير لأعلى/لأسفل/يسار/يمين وإيماءات الاقتراب/الابتعاد من ذاكرة FIFO المكوّنة من 4 ثنائيات ضوئية على الشريحة.
مثال على الاستخدام:
import time
from machine import I2C, Pin
from apds9960 import uAPDS9960 as APDS9960
bus = I2C(1, scl=Pin("P15"), sda=Pin("P14"))
sensor = APDS9960(bus)
sensor.enableLightSensor()
sensor.enableProximitySensor()
while True:
r = sensor.readRedLight()
g = sensor.readGreenLight()
b = sensor.readBlueLight()
c = sensor.readAmbientLight()
p = sensor.readProximity()
print(r, g, b, c, p)
time.sleep_ms(100)
الأصناف#
- class apds9960.APDS9960(bus: machine.I2C, address: int = 0x39, valid_id: list = [0xAB, 0x9C, 0xA8, -0x55])#
ينشئ نسخة من مُشغّل APDS9960.
busهو كائن ناقل I2C مُهيّأ يُستخدم للتواصل مع المستشعر. يُصدر الصنف الأساسي استدعاءات بنمط SMBus من نوعread_byte_dataوwrite_byte_dataوread_i2c_block_data؛ ومن أجلmachine.I2Cفي MicroPython استخدمuAPDS9960بدلاً منه.addressهو عنوان I2C المكوّن من 7 بتات للجهاز. القيمة الافتراضية هيAPDS9960_I2C_ADDR(0x39).valid_idهو قائمة بالقيم المقبولة التي يُعيدها سجل المعرّف الخاص بالشريحة. القيمة الافتراضية هيAPDS9960_DEV_ID.
يقرأ المُنشئ معرّف الجهاز ويُطلق
ADPS9960InvalidDevIdإذا لم يكن موجوداً فيvalid_id. ثم يُعطّل كل ميزة، ويبرمج قيم ATIME/WTIME/PPULSE الافتراضية، ويطبق الإعدادات الافتراضية لقيادة LED، وكسب القرب، وكسب ALS، وعتبات القرب، وعتبات الضوء المحيط، والاستمرارية، وتهيئة محرك الإيماءات (عتبات الدخول/الخروج، وGCONF1، وكسب الإيماءات، وقيادة LED للإيماءات، وزمن انتظار الإيماءات، وإزاحات الإيماءات، وGPULSE، وGCONF3، وتمكين مقاطعة الإيماءات).وضع التشغيل والتحكم بالطاقة#
- getMode() int#
تُعيد القيمة الخام لسجل ENABLE، التي تُرمّز الميزات الممكَّنة حالياً (الطاقة، ALS، القرب، الانتظار، مقاطعة ALS، مقاطعة القرب، الإيماءات).
- setMode(mode: int, enable: bool = True) None#
تُمكّن أو تُعطّل ميزة فردية في سجل ENABLE. يجب أن يكون
modeواحداً من قيمAPDS9960_MODE_*(APDS9960_MODE_POWER..\APDS9960_MODE_ALL). عندما يكونmodeهوAPDS9960_MODE_ALL، تُفعَّل أو تُعطَّل جميع البتات دفعة واحدة. تُطلقADPS9960InvalidModeللقيم خارج النطاق.
مستشعر الضوء المحيط / RGB#
مستشعر القرب#
محرك الإيماءات#
- enableGestureSensor(interrupts: bool = True) None#
تُعيد ضبط حالة الإيماءات، وتضبط WTIME وعدد نبضات الإيماءة، وتعزز LED إلى 300%، وتُهيّئ بت تمكين مقاطعة الإيماءات، وتدخل آلة حالة الإيماءات، وتُشغّل طاقة الجهاز، وتُمكّن أوضاع الانتظار والقرب والإيماءات.
- disableGestureSensor() None#
تُعيد ضبط حالة الإيماءات، وتُعطّل مقاطعة الإيماءات وآلة الحالة، وتوقف محرك الإيماءات.
- isGestureAvailable() bool#
تُعيد
Trueإذا كان بت GVALID في سجل حالة الإيماءات مضبوطاً، مما يشير إلى أن بيانات FIFO للإيماءات جاهزة للقراءة.
- readGesture() int#
تُفرّغ ذاكرة FIFO للإيماءات، وتُشغّل فاكّ ترميز الإيماءات الموجود على اللوحة، وتُعيد واحداً من ثوابت الاتجاه
APDS9960_DIR_*. تُعيدAPDS9960_DIR_NONEإذا لم يكن المحرك قيد التشغيل، أو لم تتوفر بيانات صالحة، أو لم تُحلّ البيانات إلى إيماءة معروفة.
- resetGestureParameters() None#
تمسح المخزن المؤقت الداخلي لـ FIFO الإيماءات، والفروق (deltas)، والعدّادات، وعدّادات الاقتراب/الابتعاد، والحالة، وآخر حركة مفكوكة الترميز.
عتبات القرب#
- getProximityIntLowThreshold() int#
اسم بديل لـ
getProxIntLowThresh().
- setProximityIntLowThreshold(threshold: int) None#
اسم بديل لـ
setProxIntLowThresh().
- getProximityIntHighThreshold() int#
اسم بديل لـ
getProxIntHighThresh().
- setProximityIntHighThreshold(threshold: int) None#
اسم بديل لـ
setProxIntHighThresh().
قيادة LED والكسب والتعزيز#
- getLEDDrive() int#
تُعيد قوة قيادة LED المستخدمة للقرب وALS. مُرمّزة كواحدة من قيم
APDS9960_LED_DRIVE_*(0 = 100 mA، 1 = 50 mA، 2 = 25 mA، 3 = 12.5 mA).
- setLEDDrive(drive: int) None#
تضبط قوة قيادة LED المستخدمة للقرب وALS.
driveهو واحد من قيمAPDS9960_LED_DRIVE_*.
- getProximityGain() int#
تُعيد كسب مستقبِل القرب. مُرمّز كواحد من قيم
APDS9960_PGAIN_*(0 = 1x، 1 = 2x، 2 = 4x، 3 = 8x).
- getAmbientLightGain() int#
تُعيد كسب مستشعر الضوء المحيط. مُرمّز كواحد من قيم
APDS9960_AGAIN_*(0 = 1x، 1 = 4x، 2 = 16x، 3 = 64x).
- setAmbientLightGain(drive: int) None#
تضبط كسب مستشعر الضوء المحيط.
driveهو واحد من قيمAPDS9960_AGAIN_*.
تعويض كسب القرب وقناع الثنائيات الضوئية#
تهيئة الإيماءات#
- getGestureGain() int#
تُعيد كسب الثنائي الضوئي المستخدم أثناء وضع الإيماءات. مُرمّز كواحد من قيم
APDS9960_GGAIN_*(0 = 1x، 1 = 2x، 2 = 4x، 3 = 8x).
- getGestureLEDDrive() int#
تُعيد تيار قيادة LED المستخدم أثناء وضع الإيماءات. مُرمّز كواحد من قيم
APDS9960_LED_DRIVE_*.
عتبات مقاطعة الضوء المحيط#
- getLightIntLowThreshold() int#
تُعيد العتبة المنخفضة المكوّنة من 16 بت المستخدمة لمقاطعة الضوء المحيط.
- setLightIntLowThreshold(threshold: int) None#
تضبط العتبة المنخفضة المكوّنة من 16 بت المستخدمة لمقاطعة الضوء المحيط.
تمكين المقاطعات ومسحها#
- class apds9960.uAPDS9960(bus: machine.I2C, address: int = 0x39, valid_id: list = [0xAB, 0x9C, 0xA8, -0x55])#
صنف فرعي في MicroPython من
APDS9960. واجهة برمجة تطبيقات عامة مطابقة، لكن الوصول إلى السجلات الأساسي يستخدم استدعاءاتreadfrom_memوwriteto_memبنمطmachine.I2Cبدلاً من الطرق بنمط SMBus. هذا هو الصنف الذي يُستخدم على أهداف OpenMV / MicroPython.
الاستثناءات#
- exception apds9960.ADPS9960InvalidDevId(id: int, valid_ids: list)#
صنف فرعي من
ValueError. يُطلقه مُنشئAPDS9960عندما لا تكون القيمة المقروءة من سجل المعرّف الخاص بالشريحة موجودة في القائمةvalid_id.
- exception apds9960.ADPS9960InvalidMode(mode: int)#
صنف فرعي من
ValueError. تُطلقهAPDS9960.setMode()عندما يكون وسيطmodeخارج النطاقAPDS9960_MODE_POWER..\APDS9960_MODE_ALL.
الثوابت#
عنوان I2C ومعرّفات الجهاز#
ضبط الإيماءات#
- apds9960.APDS9960_GESTURE_THRESHOLD_OUT: int#
الحد الأدنى لمقدار العيّنة (لكل ثنائي ضوئي) الذي يستخدمه فاكّ ترميز الإيماءات عند البحث عن أولى/آخر عيّنات FIFO ضمن النطاق.
- apds9960.APDS9960_GESTURE_SENSITIVITY_1: int#
عتبة على فروق U/D وL/R المتراكمة، التي فوقها يلتزم فاكّ الترميز باتجاه تمرير.
أوضاع الميزات#
تُمرَّر هذه القيم إلى APDS9960.setMode().
- apds9960.APDS9960_MODE_ALL: int#
قيمة حارسة (
7) تُخبرAPDS9960.setMode()بتمكين أو تعطيل كل بت في سجل ENABLE دفعة واحدة.
تيارات قيادة LED#
كسب القرب (PGAIN)#
كسب الضوء المحيط (AGAIN)#
كسب الإيماءات (GGAIN)#
تعزيز LED#
- apds9960.APDS9960_LED_BOOST_300: int#
تعزيز LED بنسبة 300% (
3). يُطبَّق تلقائياً بواسطةAPDS9960.enableGestureSensor().
أزمنة انتظار الإيماءات#
اتجاهات الإيماءات#
تُعيد APDS9960.readGesture() هذه القيم.
حالات الإيماءات#
قيم الحالة الداخلية المُبلَّغ عنها عبر آلة حالة الإيماءات.