Raspberry Pi – Gebaren en licht intensiteit sensor module (APDS-9930)
Hardware
De APDS-9930 sensor is een alles-in-één chip, welke onder andere licht, gebaren en afstand kan meten. De afstands detectie werkt tot ongeveer 100mm, deze chip wordt vaak gebruikt in telefoons om het scherm te locken / dimmen wanneer de telefoon tegen het oor wordt gehouden. Verder kan de lichtsterkte worden gemeten en ‘berekend’ de module gebaren zoals het swipen naar links, rechts, boven en beneden.
features als:
IR LED en de nabijheid van de detector in een optische module
omgevingslicht sensing (ALS)
benadert menselijk oog respons
programmeerbare interrupt-functie met hogere en lagere drempel
tot 16-bit resolutie
hoge gevoeligheid werkt achter verduisterd glas
lage lux prestaties tegen 0.01Lux
aanwezigheidsdetectie
volledig gekalibreerd tot 100mm detectie
geïntegreerde IR-LED en synchrone LED-driver
elimineert fabriekskalibratie van prox
programmeerbare wachttimer
Wacht staatsmacht: 90uA typische
programmeerbaar van 2,7 ms tot> 8 sec
I2C-interface compatibel
tot 400 kHz (I2C fast-modus)
dedicated interrupt pin
slaapstand power – 2.2uA typische
toepassingen: mobiele telefoon backlight dimming
mobiele telefoon touch-screen uitschakelen
notebook / monitor veiligheid
automatische speakerphone te schakelen
automatische menu pop-up
digitale camera oogsensor
Informatie over de APDS-9930 chip (ENG):
- I²C Interface Compatible
- Programmable Wait Timer
- 70µA Typical wait state power
- Dedicated interrupt pin
- 2.2µA Typical sleep mode power
- Sensor Output: Digital
- Sensing Range Max: 100mm
- Supply Voltage DC Min: 2.2V
- Supply Voltage DC Max: 3.6V
- Output Current: 20mA
Pinout
Pin: | Functie: |
1 | VL (interne infrarood LED voeding) |
2 | GND |
3 | VCC (+2.8-3.6v) |
4 | SCL (I²C Clock) |
5 | SDA (I²C Data) |
6 | INT (Interrupt) |
Vanaf de onderkant:
Aansluiten op de Raspberry Pi
Sluit de module aan volgens onderstaand schema:
Ps. Altijd de pinout van je Raspberry Pi controleren, deze kan verschillen per versie.
De sensor heeft als I2C adres 0x39
1 2 3 4 5 6 7 8 9 |
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- 39 -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- |
Script
Wat heb je nodig?
1) I2C bus gebruiken op de Raspberry Pi
2) APDS99x0 python bibliotheek
Dit script leest de APDS99X0 sensor uit en geeft waarden weer in de console:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/usr/bin/python from apds9930 import APDS9930 from apds9930.values import ALL, OFF from time import sleep #a = APDS9930(0) #Raspberry Pi 1 a = APDS9930(1) #Raspberry Pi 2+3 a.enable_ambient_light_sensor() a.enable_proximity_sensor() print "Address:\t", hex(a.address) print "ID: \t", hex(a.id) print "Mode: \t", bin(a.mode) print try: while True: print "Ambient light:", round(a.ambient_light, 1), "lux", "\tCh0 light:", a.ch0_light, "\tProximity:", a.proximity sleep(1) except KeyboardInterrupt: a.set_mode(ALL, OFF) |
Start het script met: sudo python apds9930.py
Output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Address: 0x39 ID: 0x39 Mode: 0b111 Ambient light: 261.0 lux Ch0 light: 82 Proximity: 309 Ambient light: 304.3 lux Ch0 light: 95 Proximity: 285 Ambient light: 328.3 lux Ch0 light: 102 Proximity: 268 Ambient light: 280.3 lux Ch0 light: 88 Proximity: 227 Ambient light: 14.6 lux Ch0 light: 5 Proximity: 270 Ambient light: 14.6 lux Ch0 light: 5 Proximity: 312 Ambient light: 14.0 lux Ch0 light: 1 Proximity: 278 Ambient light: 19.3 lux Ch0 light: 6 Proximity: 282 Ambient light: 20.0 lux Ch0 light: 8 Proximity: 271 Ambient light: 19.3 lux Ch0 light: 6 Proximity: 260 Ambient light: 10.0 lux Ch0 light: 7 Proximity: 305 |
Bron:
davideddu.org
gist.github.com
[#/datasheets/mlx90614″ ]