apds9960 — közelség-, gesztus- és színérzékelő illesztőprogram¶
Ez a modul illesztőprogramot biztosít a Broadcom/Avago APDS9960 digitális közelség-, környezeti fény-, RGB-szín- és gesztusérzékelőhöz I2C-n keresztül. Az illesztőprogram funkciónkénti engedélyező/letiltó vezérlőket, nyers csatorna-olvasásokat (clear, R, G, B, közelség) és egy szoftveres gesztusdekódoló állapotgépet tesz elérhetővé, amely a felfelé/lefelé/balra/jobbra húzást, valamint a közeli/távoli gesztusokat osztályozza a chipen lévő 4-fotodiódás FIFO-ból.
Példa használat:
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)
Osztályok¶
- class apds9960.APDS9960(bus: machine.I2C, address: int = 0x39, valid_id: list = [0xAB, 0x9C, 0xA8, -0x55])¶
Létrehoz egy APDS9960 illesztőprogram-példányt.
A
busegy beállított I2C-buszobjektum, amelyet az érzékelővel való kommunikációra használ. Az alaposztály SMBus-stílusúread_byte_data,write_byte_dataésread_i2c_block_datahívásokat ad ki; a MicroPythonmachine.I2Cesetén használja helyette auAPDS9960osztályt.Az
addressaz eszköz 7 bites I2C-címe. Alapértelmezett értékeAPDS9960_I2C_ADDR(0x39).A
valid_ida chip ID-regiszteréből visszaadott elfogadható értékek listája. Alapértelmezett értékeAPDS9960_DEV_ID.
A konstruktor beolvassa az eszköz-ID-t, és
ADPS9960InvalidDevIdkivételt vált ki, ha az nem szerepel avalid_idlistában. Ezután letilt minden funkciót, beprogramozza az alapértelmezett ATIME/WTIME/PPULSE értékeket, és alkalmazza az alapértelmezett LED-meghajtást, közelségi erősítést, ALS-erősítést, közelségi küszöbértékeket, környezeti fény küszöbértékeket, perzisztenciát és gesztusmotor-konfigurációt (be-/kilépési küszöbértékek, GCONF1, gesztuserősítés, gesztus LED-meghajtás, gesztusvárakozási idő, gesztuseltolások, GPULSE, GCONF3 és gesztusmegszakítás-engedélyezés).Mód- és tápvezérlés¶
- getMode() int¶
Visszaadja az ENABLE regiszter nyers értékét, amely azt kódolja, hogy jelenleg mely funkciók vannak engedélyezve (táp, ALS, közelség, várakozás, ALS-megszakítás, közelségi megszakítás, gesztus).
- setMode(mode: int, enable: bool = True) None¶
Engedélyez vagy letilt egy egyedi funkciót az ENABLE regiszterben. A
modeértéknek aAPDS9960_MODE_*értékek egyikének kell lennie (APDS9960_MODE_POWER..\APDS9960_MODE_ALL). Ha amodeértékeAPDS9960_MODE_ALL, az összes bit egyszerre kapcsol be vagy ki. Tartományon kívüli értékek eseténADPS9960InvalidModekivételt vált ki.
Környezeti fény / RGB érzékelő¶
- enableLightSensor(interrupts: bool = True) None¶
Visszaállítja az alapértelmezett ALS-erősítést, beállítja az ALS-megszakítás engedélyező bitjét, bekapcsolja az eszközt, és engedélyezi a környezeti fény / szín motort.
- disableLightSensor() None¶
Letiltja az ALS-megszakítást, és leállítja a környezeti fény / szín motort.
Közelségérzékelő¶
Gesztusmotor¶
- enableGestureSensor(interrupts: bool = True) None¶
Visszaállítja a gesztusállapotot, beállítja a WTIME-ot és a gesztusimpulzus-számot, 300%-ra emeli a LED-et, beállítja a gesztusmegszakítás engedélyező bitjét, belép a gesztusállapotgépbe, bekapcsolja az eszközt, és engedélyezi a várakozási, közelségi és gesztusmódot.
- disableGestureSensor() None¶
Visszaállítja a gesztusállapotot, letiltja a gesztusmegszakítást és az állapotgépet, és leállítja a gesztusmotort.
- isGestureAvailable() bool¶
Trueértéket ad vissza, ha a gesztusállapot-regiszter GVALID bitje be van állítva, jelezve, hogy a gesztus-FIFO adatai készen állnak a beolvasásra.
- readGesture() int¶
Kiüríti a gesztus-FIFO-t, lefuttatja a beépített gesztusdekódolót, és visszaadja a
APDS9960_DIR_*iránykonstansok egyikét. AAPDS9960_DIR_NONEértéket adja vissza, ha a motor nem fut, nincs érvényes adat, vagy az adatok nem oldódtak fel felismert gesztussá.
- resetGestureParameters() None¶
Törli a belső gesztus-FIFO puffert, a deltákat, a számlálókat, a közeli/távoli számlálókat, az állapotot és az utoljára dekódolt mozgást.
Közelségi küszöbértékek¶
- getProxIntLowThresh() int¶
Visszaadja az alacsony közelségi megszakítási küszöbértéket (PILT regiszter).
- setProxIntLowThresh(threshold: int) None¶
Beállítja az alacsony közelségi megszakítási küszöbértéket.
- getProxIntHighThresh() int¶
Visszaadja a magas közelségi megszakítási küszöbértéket (PIHT regiszter).
- getProximityIntLowThreshold() int¶
A
getProxIntLowThresh()aliasa.
- setProximityIntLowThreshold(threshold: int) None¶
A
setProxIntLowThresh()aliasa.
- getProximityIntHighThreshold() int¶
A
getProxIntHighThresh()aliasa.
- setProximityIntHighThreshold(threshold: int) None¶
A
setProxIntHighThresh()aliasa.
LED-meghajtás, erősítés és növelés¶
- getLEDDrive() int¶
Visszaadja a közelséghez és az ALS-hez használt LED-meghajtási erősséget. A
APDS9960_LED_DRIVE_*értékek egyikeként kódolva (0 = 100 mA, 1 = 50 mA, 2 = 25 mA, 3 = 12,5 mA).
- setLEDDrive(drive: int) None¶
Beállítja a közelséghez és az ALS-hez használt LED-meghajtási erősséget. A
driveaAPDS9960_LED_DRIVE_*értékek egyike.
- getProximityGain() int¶
Visszaadja a közelségi vevő erősítését. A
APDS9960_PGAIN_*értékek egyikeként kódolva (0 = 1x, 1 = 2x, 2 = 4x, 3 = 8x).
- setProximityGain(drive: int) None¶
Beállítja a közelségi vevő erősítését. A
driveaAPDS9960_PGAIN_*értékek egyike.
- getAmbientLightGain() int¶
Visszaadja a környezeti fény érzékelő erősítését. A
APDS9960_AGAIN_*értékek egyikeként kódolva (0 = 1x, 1 = 4x, 2 = 16x, 3 = 64x).
- setAmbientLightGain(drive: int) None¶
Beállítja a környezeti fény érzékelő erősítését. A
driveaAPDS9960_AGAIN_*értékek egyike.
Közelségi erősítés kompenzációja és fotodióda-maszk¶
- getProxGainCompEnable() bool¶
Trueértéket ad vissza, ha a közelségi erősítés kompenzációja engedélyezve van.
- setProxGainCompEnable(enable: bool) None¶
Engedélyezi vagy letiltja a közelségi erősítés kompenzációját.
Gesztuskonfiguráció¶
- setGestureEnterThresh(threshold: int) None¶
Beállítja a gesztusmódba lépéshez szükséges közelségi küszöbértéket.
- getGestureExitThresh() int¶
Visszaadja a gesztusmódból való kilépéshez szükséges közelségi küszöbértéket.
- setGestureExitThresh(threshold: int) None¶
Beállítja a gesztusmódból való kilépéshez szükséges közelségi küszöbértéket.
- getGestureGain() int¶
Visszaadja a gesztusmód során használt fotodióda-erősítést. A
APDS9960_GGAIN_*értékek egyikeként kódolva (0 = 1x, 1 = 2x, 2 = 4x, 3 = 8x).
- getGestureLEDDrive() int¶
Visszaadja a gesztusmód során használt LED-meghajtási áramot. A
APDS9960_LED_DRIVE_*értékek egyikeként kódolva.
- getGestureWaitTime() int¶
Visszaadja a gesztusészlelések közötti alacsony fogyasztású várakozási időt. A
APDS9960_GWTIME_*értékek egyikeként kódolva (0 = 0 ms .. 7 = 39,2 ms).
Környezeti fény megszakítási küszöbértékek¶
- getLightIntLowThreshold() int¶
Visszaadja a környezeti fény megszakításához használt 16 bites alacsony küszöbértéket.
- setLightIntLowThreshold(threshold: int) None¶
Beállítja a környezeti fény megszakításához használt 16 bites alacsony küszöbértéket.
Megszakítás-engedélyezések és -törlések¶
- getAmbientLightIntEnable() bool¶
Trueértéket ad vissza, ha a környezeti fény megszakítások engedélyezve vannak.
- setAmbientLightIntEnable(enable: bool) None¶
Engedélyezi vagy letiltja a környezeti fény megszakításokat.
- class apds9960.uAPDS9960(bus: machine.I2C, address: int = 0x39, valid_id: list = [0xAB, 0x9C, 0xA8, -0x55])¶
Az
APDS9960MicroPython alosztálya. Azonos nyilvános API, de a mögöttes regiszterelérés SMBus-stílusú metódusok helyettmachine.I2C-stílusúreadfrom_meméswriteto_memhívásokat használ. Ezt az osztályt kell használni OpenMV / MicroPython célplatformokon.
Kivételek¶
- exception apds9960.ADPS9960InvalidDevId(id: int, valid_ids: list)¶
A
ValueErroralosztálya. AzAPDS9960konstruktor váltja ki, ha a chip ID-regiszteréből beolvasott érték nem szerepel avalid_idlistában.
- exception apds9960.ADPS9960InvalidMode(mode: int)¶
A
ValueErroralosztálya. AzAPDS9960.setMode()váltja ki, ha amodeargumentum aAPDS9960_MODE_POWER..\APDS9960_MODE_ALLtartományon kívül esik.
Konstansok¶
I2C-cím és eszköz-ID-k¶
Gesztushangolás¶
- apds9960.APDS9960_GESTURE_THRESHOLD_OUT: int¶
A gesztusdekódoló által használt minimális mintamagnitúdó (fotodiódánként) az első/utolsó tartományon belüli FIFO-minták keresésekor.
- apds9960.APDS9960_GESTURE_SENSITIVITY_1: int¶
Küszöbérték a felhalmozott U/D és L/R deltákon, amely felett a dekódoló elkötelezi magát egy húzási irány mellett.
Funkciómódok¶
Ezeket az értékeket az APDS9960.setMode() kapja meg.
- apds9960.APDS9960_MODE_ALL: int¶
Őrszem érték (
7), amely azAPDS9960.setMode()számára jelzi, hogy egyszerre engedélyezze vagy tiltsa le az ENABLE regiszter összes bitjét.
LED-meghajtási áramok¶
Közelségi erősítés (PGAIN)¶
Környezeti fény erősítés (AGAIN)¶
Gesztuserősítés (GGAIN)¶
LED-növelés¶
- apds9960.APDS9960_LED_BOOST_300: int¶
300% LED-növelés (
3). AzAPDS9960.enableGestureSensor()automatikusan alkalmazza.
Gesztusvárakozási idők¶
Gesztusirányok¶
Ezeket az értékeket az APDS9960.readGesture() adja vissza.
Gesztusállapotok¶
A gesztusállapotgép által jelentett belső állapotértékek.