Arduino提高篇25—手勢識別

隨着科技的發展,人機交互也發生了翻天覆地的變化,從最開始的手動控制,到後來的遙控,再到語音識別以及圖像識別。一切都是爲了解放人類,畢竟能吵吵就不會動手對不對,現在都懶得吵吵了,圖像識別分析就好。本篇我們來介紹高大尚的手勢識別,用手比劃就能進行控制了。

1. APDS-9960模塊介紹

APDS-9960是一個體積非常小的傳感器,它集成了非接觸手勢檢測、接近檢測、數字環境亮度測量和色彩檢測等諸多功能。很多手機上也採用了該傳感器,例如三星的Galaxy S5。

本篇我們使用搭載了APDS-9960傳感器的模塊,模塊提供了APDS-9960傳感器的外部工作電路,同時將管腳引出,方便接線使用,其實物圖如下:

手勢識別模塊

模塊特點:

  • 工作電壓:3.3V
  • 環境光及RGB色彩感應
  • 接近檢測
  • 手勢檢測
  • 測量範圍:10-20cm
  • 通信接口:IIC通訊
  • IIC地址:0x39

管腳定義:

  • VL:如果PS跳線斷開,則IR LED的可選電源。必須爲3.0-4.5V
  • GND:接地
  • VCC:用於爲APDS-9960傳感器供電。必須爲2.4-3.6V
  • SDA:IIC數據引腳
  • SCL:IIC時鐘引腳
  • INT:外部中斷引腳。中斷事件時爲低電平有效

2. 安裝驅動庫

本篇我們需要安裝「Adafruit_APDS9960」驅動庫。在Arduino IDE中,點擊「項目」—「加載庫」—「管理庫」,搜索選擇最新版本進行安裝即可。

安裝庫

3. 實驗材料

  • Uno R3開發板
  • 配套USB數據線
  • 麪包板及配套連接線
  • OLED顯示屏
  • APDS-9960模塊

4. 實驗步驟

1. 根據原理圖搭建電路圖。

OLED屏和手勢識別模塊都使用了IIC通訊方式。將兩個模塊的VCC、GND分別連接開發板的3.3V、GND,兩個模塊的SDA、SCL分別連接開發板的A4、A5。

實驗原理圖如下圖所示:

實驗原理圖

實物連接圖如下圖所示:

實物連接圖

2. 新建sketch,拷貝如下代碼替換自動生成的代碼並進行保存。

#include "Adafruit_APDS9960.h"
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_APDS9960 apds;
Adafruit_SSD1306 oled(128, 64, &Wire, -1);

void setup() {
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  oled.setTextColor(WHITE);//開像素點發光
  oled.clearDisplay();//清屏
  oled.setTextSize(2); //設置字體大小

  apds.begin();
  apds.enableProximity(true);
  apds.enableGesture(true);
}

void loop() {

  uint8_t gesture = apds.readGesture();
  oled.clearDisplay();//清屏
  oled.setCursor(15, 2);//設置顯示位置
  oled.println("APDS-9960");
  oled.setCursor(32, 40);//設置顯示位置

  switch (gesture)
  {
    case APDS9960_UP: oled.println("[ Up ]"); break;
    case APDS9960_DOWN: oled.println("[Down]"); break;
    case APDS9960_LEFT: oled.println("[Left]"); break;
    case APDS9960_RIGHT: oled.println("[Right]"); break;
    default: oled.println("[----]"); break;
  }
  oled.display(); // 開顯示
}

3. 連接開發板,設置好對應端口號和開發板類型,進行程序下載。

程序下載

5. 實驗現象

我們從不同方向移動手進入傳感器檢測範圍,然後慢慢移出,模塊會對應識別出移動方向。當然識別結果也會受環境光影響,但大概率識別還是很準確的。

實驗現象


關注公衆號「TonyCode」,更多精彩內容分享。
回覆「1024」獲取1000G學習資料。
個人博客
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章