apds9960 — läheisyys-, ele- ja värisensorin ajuri¶
Tämä moduuli tarjoaa ajurin Broadcom/Avago APDS9960 -digitaaliselle läheisyys-, ympäristönvalo-, RGB-väri- ja elesensorille I2C:n välityksellä. Ajuri paljastaa piirrekohtaiset käyttöönotto-/poiskytkentäohjaimet, raakakanavalukemat (kirkkaus, R, G, B, läheisyys) sekä ohjelmistopohjaisen eleen purkamisen tilakoneen, joka luokittelee pyyhkäisyt ylös/alas/vasemmalle/oikealle sekä lähelle/kauas -eleet piirin sisäisestä 4-valodiodisesta FIFO-puskurista.
Esimerkkikäyttö:
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)
Luokat¶
- class apds9960.APDS9960(bus: machine.I2C, address: int = 0x39, valid_id: list = [0xAB, 0x9C, 0xA8, -0x55])¶
Luo APDS9960-ajuriinstanssin.
buson määritetty I2C-väyläobjekti, jota käytetään sensorin kanssa kommunikointiin. Perusluokka tekee SMBus-tyylisiäread_byte_data-,write_byte_data- jaread_i2c_block_data-kutsuja; MicroPythoninmachine.I2C-väylälle käytä sen sijaan luokkaauAPDS9960.addresson laitteen 7-bittinen I2C-osoite. Oletusarvo onAPDS9960_I2C_ADDR(0x39).valid_idon luettelo hyväksyttävistä arvoista, joita piirin ID-rekisteri palauttaa. Oletusarvo onAPDS9960_DEV_ID.
Konstruktori lukee laitteen ID:n ja nostaa poikkeuksen
ADPS9960InvalidDevId, jos se ei ole listassavalid_id. Tämän jälkeen se poistaa käytöstä jokaisen piirteen, ohjelmoi oletusarvoiset ATIME/WTIME/PPULSE-arvot sekä soveltaa oletusarvoiset LED-virran, läheisyysvahvistuksen, ALS-vahvistuksen, läheisyyskynnysarvot, ympäristönvalon kynnysarvot, pysyvyyden ja eleenkäsittelijän kokoonpanon (sisääntulo-/poistumiskynnysarvot, GCONF1, elevahvistus, eleen LED-virta, eleen odotusaika, eleen siirtymät, GPULSE, GCONF3 ja eleen keskeytyksen käyttöönotto).Tila- ja virranhallinta¶
- getMode() int¶
Palauttaa ENABLE-rekisterin raaka-arvon, joka koodaa, mitkä piirteet ovat tällä hetkellä käytössä (virta, ALS, läheisyys, odotus, ALS-keskeytys, läheisyyskeskeytys, ele).
- setMode(mode: int, enable: bool = True) None¶
Ota käyttöön tai poista käytöstä yksittäinen piirre ENABLE-rekisterissä.
modeon oltava yksiAPDS9960_MODE_*-arvoista (APDS9960_MODE_POWER..\APDS9960_MODE_ALL). KunmodeonAPDS9960_MODE_ALL, kaikki bitit kytketään päälle tai pois kerralla. Nostaa poikkeuksenADPS9960InvalidModealueen ulkopuolisille arvoille.
Ympäristönvalo- / RGB-sensori¶
Läheisyyssensori¶
Ele-engine¶
- enableGestureSensor(interrupts: bool = True) None¶
Nollaa eleen tila, aseta WTIME ja eleen pulssimäärä, tehosta LED 300 %:iin, määritä eleen keskeytyksen käyttöönottobitti, siirry eleen tilakoneeseen, kytke laite päälle ja ota käyttöön odotus-, läheisyys- ja eletilat.
- disableGestureSensor() None¶
Nollaa eleen tila, poista käytöstä eleen keskeytys ja tilakone sekä pysäytä ele-engine.
- isGestureAvailable() bool¶
Palauttaa
True, jos eleen tilarekisterin GVALID-bitti on asetettu, mikä ilmaisee, että eleen FIFO-data on valmis luettavaksi.
- readGesture() int¶
Tyhjennä eleen FIFO-puskuri, suorita sisäänrakennettu eleen purkaja ja palauta yksi
APDS9960_DIR_*-suuntavakioista. PalauttaaAPDS9960_DIR_NONE, jos engine ei ole käynnissä, kelvollista dataa ei ole saatavilla tai data ei ratkennut tunnistetuksi eleeksi.
- resetGestureParameters() None¶
Tyhjennä sisäinen eleen FIFO-puskuri, deltat, laskurit, lähelle/kauas-laskurit, tila ja viimeksi purettu liike.
Läheisyyskynnysarvot¶
- getProximityIntLowThreshold() int¶
Alias metodille
getProxIntLowThresh().
- setProximityIntLowThreshold(threshold: int) None¶
Alias metodille
setProxIntLowThresh().
- getProximityIntHighThreshold() int¶
Alias metodille
getProxIntHighThresh().
- setProximityIntHighThreshold(threshold: int) None¶
Alias metodille
setProxIntHighThresh().
LED-virta, vahvistus ja tehostus¶
- getLEDDrive() int¶
Palauta läheisyyteen ja ALS:ään käytetty LED-virran voimakkuus. Koodattu yhtenä
APDS9960_LED_DRIVE_*-arvoista (0 = 100 mA, 1 = 50 mA, 2 = 25 mA, 3 = 12,5 mA).
- setLEDDrive(drive: int) None¶
Aseta läheisyyteen ja ALS:ään käytetty LED-virran voimakkuus.
driveon yksiAPDS9960_LED_DRIVE_*-arvoista.
- getProximityGain() int¶
Palauta läheisyysvastaanottimen vahvistus. Koodattu yhtenä
APDS9960_PGAIN_*-arvoista (0 = 1x, 1 = 2x, 2 = 4x, 3 = 8x).
- setProximityGain(drive: int) None¶
Aseta läheisyysvastaanottimen vahvistus.
driveon yksiAPDS9960_PGAIN_*-arvoista.
- getAmbientLightGain() int¶
Palauta ympäristönvalosensorin vahvistus. Koodattu yhtenä
APDS9960_AGAIN_*-arvoista (0 = 1x, 1 = 4x, 2 = 16x, 3 = 64x).
- setAmbientLightGain(drive: int) None¶
Aseta ympäristönvalosensorin vahvistus.
driveon yksiAPDS9960_AGAIN_*-arvoista.
Läheisyysvahvistuksen kompensointi ja valodiodimaski¶
- setProxGainCompEnable(enable: bool) None¶
Ota käyttöön tai poista käytöstä läheisyysvahvistuksen kompensointi.
Eleen kokoonpano¶
- setGestureEnterThresh(threshold: int) None¶
Aseta läheisyyskynnysarvo, joka vaaditaan eletilaan siirtymiseen.
- setGestureExitThresh(threshold: int) None¶
Aseta läheisyyskynnysarvo, joka vaaditaan eletilasta poistumiseen.
- getGestureGain() int¶
Palauta eletilan aikana käytetty valodiodivahvistus. Koodattu yhtenä
APDS9960_GGAIN_*-arvoista (0 = 1x, 1 = 2x, 2 = 4x, 3 = 8x).
- getGestureLEDDrive() int¶
Palauta eletilan aikana käytetty LED-virta. Koodattu yhtenä
APDS9960_LED_DRIVE_*-arvoista.
Ympäristönvalon keskeytyksen kynnysarvot¶
- getLightIntLowThreshold() int¶
Palauta ympäristönvalon keskeytykseen käytetty 16-bittinen matala kynnysarvo.
- setLightIntLowThreshold(threshold: int) None¶
Aseta ympäristönvalon keskeytykseen käytetty 16-bittinen matala kynnysarvo.
Keskeytysten käyttöönotot ja tyhjennykset¶
- class apds9960.uAPDS9960(bus: machine.I2C, address: int = 0x39, valid_id: list = [0xAB, 0x9C, 0xA8, -0x55])¶
Luokan
APDS9960MicroPython-alaluokka. Julkinen API on identtinen, mutta alla oleva rekisteripääsy käyttäämachine.I2C-tyylisiäreadfrom_mem- jawriteto_mem-kutsuja SMBus-tyylisten metodien sijaan. Tätä luokkaa tulee käyttää OpenMV- / MicroPython-kohteissa.
Poikkeukset¶
- exception apds9960.ADPS9960InvalidDevId(id: int, valid_ids: list)¶
Luokan
ValueErroralaluokka. NostaaAPDS9960-konstruktori, kun piirin ID-rekisteristä luettu arvo ei ole listassavalid_id.
- exception apds9960.ADPS9960InvalidMode(mode: int)¶
Luokan
ValueErroralaluokka. Nostaa metodiAPDS9960.setMode(), kunmode-argumentti on alueenAPDS9960_MODE_POWER..\APDS9960_MODE_ALLulkopuolella.
Vakiot¶
I2C-osoite ja laite-ID:t¶
Eleen viritys¶
- apds9960.APDS9960_GESTURE_THRESHOLD_OUT: int¶
Vähimmäisnäytteen voimakkuus (valodiodia kohti), jota eleen purkaja käyttää etsiessään ensimmäisiä/viimeisiä alueen sisäisiä FIFO-näytteitä.
- apds9960.APDS9960_GESTURE_SENSITIVITY_1: int¶
Kynnysarvo kertyneille U/D- ja L/R-deltoille, jonka yli purkaja sitoutuu pyyhkäisysuuntaan.
Piirretilat¶
Nämä arvot välitetään metodille APDS9960.setMode().
- apds9960.APDS9960_MODE_ALL: int¶
Vartiointiarvo (
7), joka käskee metodinAPDS9960.setMode()ottamaan käyttöön tai poistamaan käytöstä jokaisen ENABLE-rekisterin bitin kerralla.
LED-virrat¶
Läheisyysvahvistus (PGAIN)¶
Ympäristönvalon vahvistus (AGAIN)¶
Elevahvistus (GGAIN)¶
LED-tehostus¶
- apds9960.APDS9960_LED_BOOST_300: int¶
300 %:n LED-tehostus (
3). MetodinAPDS9960.enableGestureSensor()automaattisesti soveltama.
Eleen odotusajat¶
Eleen suunnat¶
Nämä arvot palauttaa metodi APDS9960.readGesture().
Eleen tilat¶
Eleen tilakoneen kautta raportoidut sisäiset tila-arvot.