Kézmozdulat-érzékelő
2017. szeptember 14. írta: eNeS

Kézmozdulat-érzékelő

Néha jó lenne, ha gombok, illetve érintőképernyő nyomogatása nélkül tudnánk parancsokat kiadni. Az egyik megoldás erre a hangvezérlés, ami praktikusnak tűnik, de egyelőre nem kívánom bemikrofonozni a saját lakásomat, nem beszélve arról, hogy elég erőforrásigényes.. e helyett találtam egy praktikus érzékelőt az APDS-9960-at, ami meg tudja mondani milyen irányba mozog előtte a kezem. Egy helyen találóan Jedi-szenzornak nevezik ("Nem ezek a droidok, amiket keresnek!"), máshol a Különvélemény c. filmben látott 3D vezérlőkesztyűhöz hasonlítják.
No azért ennyire nem profi az eszköz, de az 500Ft-os szabadpiaci beszerzési árához képest nem rossz.

Felismeri a négy alapirányt: balról-jobbra, jobbról-balra, fentről-le, lentről-fel, illetve a kéz közelítését, valamint távolítását, ez lenne az 5 és 6. vezérlési lehetőség. Ebből a közelítésen kívül mindent ki tudtam próbálni, de azért azt is tudni kell, hogy nem 100% a felismerési aránya, és 10-15 cm távolságra lát el.
Maga a modul ilyenforma, legalábbis az olcsóbb kínai klón, az eredeti piros. Viszont nem összetévesztendő a 9930-al, az ahhoz általam talált függvénykönyvtárból hiányzik a kézmozdulat-érzékelés és nem is mindenhol tüntetik fel, hogy tudna ilyet a hardver, így inkább maradtam a 9960 típusnál.
adps.jpg

A 9960 alapvetően három különféle funkcióra használható, 1. kézmozdulat-érzékelés (gesture), 2. RGB fényérzékelő, 3. közelítés érzékelő
Ám azt is jó tudni, hogy nem egyidőben, hanem a három közül egyszerre egy funkciót tud ellátni. Tehát vagy a fényt tudom mérni, vagy azt érzékelni, hogy mozog-e egy kéz előtte... További érdekesség azok számára, akik be szeretnék építeni, hogy nem elég egy kis lyuk az érzékelő előtt, nem találtam rá semmi leírást milyen szögben lát, de a mozgásirányt csak úgy tudta megbecsülni, ha majd a modul szélességével megegyező nyílás van előtte.

Bekötése:

  1. VL = külön táp az IR megvilágító LED számára (3-4.5V, opcionális, nem használom)
  2. GND = Raspberry GND
  3. VCC = Raspberry 3V3 (2.4-3.6V)
  4. SDA = Raspberry SDA
  5. SCL = Raspberry SCL
  6. INT = Raspberry GPIO (ennek státusza változik, ha mozgást észlel, amire eseményfigyelőt lehet ültetni)

Mivel I2C eszköz, a Raspberryn engedélyeznünk kell az I2C-t:

sudo nano /boot/config.txt

És a következő sort kell a config.txt-be illeszteni:

dtparam=i2c_arm=on,i2c_baudrate=400000

Újraindítás után parancssorból ezt beírva látnunk kell a 39-es címen az eszközt, ebből láthatjuk, hogy sikeres volt a forrasztás és a bekötés:

i2cdetect -y 1

Használati példa:

1. python-apds9960 letöltése

git clone https://github.com/liske/python-apds9960.git

2. belépünk a python-apds9960 mappába és kipróbáljuk a tesztkódokat

python test-ambient.py
A fény mennyiségéről ad egy viszonyszámot, ha letakarva a szenzort csökken az érték, a szenzor működik.

python test-prox.py
A szenzor előtt álló objektum távolságát mutatja, a számot normalizálni kell használat előtt :) Ha a szám változik a kéz közelítésére és távolítására, akkor az eszköz működik

python-gesture.py
Az előtte mozgó objektum haladási irányát adja vissza.

Ha az INTERRUPT-ok nem jönnek, vagy állandóan jönnek, jó tudni, hogy a példakódban 7-es lábra vannak állítva BOARD számozás szerint (ez BCM4), amit vagy átállítunk arra, amire az INT csatlakozót kötöttük a Raspberryn, vagy átkötjük a BCM4-re az INT-et.

 

Fontos!
Ha a fényérzékelés és a közelítés érzékelés működik, de a kézmozdulatokat egyáltalán nem akarja érzékelni, az apds mappa device.py fájljában szövegszerkesztővel át kell írni a következő sort erről:
self.setLEDBoost(APDS9960_LED_BOOST_300)

erre:

self.setLEDBoost(APDS9960_LED_BOOST_100)

Nekem bejött, működik. Elképzelhető, hogy a kínai klón nem tudja a LED fényerejét emelni 100%-ról, vagy csak kellene az a külön VL tápforrás, amihez még egy ellenállást is le kellene forrasztani.. de én az átírást egyszerűbb megoldásnak találtam.

További használati lehetőség: Az ESPEasy DEV 2.x változatában is szerepel pluginként, ennek tesztjére a későbbiekben sort kerítek.

Adatlap: https://cdn.sparkfun.com/assets/learn_tutorials/3/2/1/Avago-APDS-9960-datasheet.pdf

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr6612828616

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.