APDS-9960 手勢感測器可以簡單感測手部揮動的方向,但無法偵測到細微的動作。這個感測器也因為製造商的不同,其感測距離與靈敏度也有所差異。
下載程式庫
Step1 點擊 Arduino IDE 的 [工具] > [程式庫管理員]。
Step2 在上端欄位內輸入「APDS9960]」,找到「Adafruit APDS9960 library」之後點擊 [安裝],安裝完成後點擊 [關閉]。
修改程式庫
APDS-9960 模組底板上有一顆晶片的 ID 可能與程式庫預設的不同,我們需要先找到這顆晶片的 ID,然後修改程式庫。
Step1 開啟檔案「 i2c_scanner.ino 」,然後開啟「序列埠視窗」,並將鮑率設定在「115200」。
Step2 Upload 程式到 Arduino UNO。
Step3 觀察序列埠視窗內的資料。此次測試模組的 I2C Address 是 0x39,晶片 ID 是 0x9E,如下圖。
Step4 用「小作家」或「記事本」編輯器開啟檔案「Adafruit_APDS9960.cpp」。
Step5 找到「 /* Make sure we're actually connected */」這一行,將其下方的晶片 ID 改成「0x9E」,如下圖。
開啟範例程式
Step1 點擊 Arduino IDE 的 [檔案] > [範例] > [Adafruit APDS9960 Library] > [gesture_sensor]。
Step2 Upload 程式到 Arduino UNO。
Step3 觀察序列埠視窗內的資料。如果出現「Device initialized!」表示模組已正常初始化。
請注意:雖然它已初始化完成,也僅僅只是表示晶片已正常工作,但這並不表示模組已經可以正常感測手勢並輸出訊號。
Step4 此時你可以在模組前面揮一揮手,調整一下會動的距離遠近與揮手速度。如果正常,序列埠視窗會顯示相對應的字元,如下圖。
問題與解決方案
如果序列埠視窗出現 "failed to initialize device! Please check your wiring." 訊息,或是雖然有出現 "Device initialized!" 訊息,但是揮手後它並無任何動作,請如下依序檢查:
Step1. 檢查接線是否正確。
Step2. 檢查 APDS-9960 的晶片 ID 是否正確,是否已正確修改 Adafruit_APDS9960.cpp 內的晶片 ID。
Step3. 檢查 APDS-9960 感測器底板上的「PS」與「I2C PU」跳線銅片是否已短路,如下圖。
有些模組在出廠時並未短路,如下圖。
Step4 我們在實務上發現,有些模組在上電後並無法馬上正常工作。此時,您可以試試,將模組重複多次上電與斷電,之後再對模組揮動手勢,然後就可正常運作了。
相關連結








