0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

快速設(shè)計(jì)您自己的低成本 3D 手勢(shì)控制器

丫丫119 ? 來源:未知 ? 作者:Jacob Beningo ? 2019-08-28 17:25 ? 次閱讀

旋鈕、按鈕、手柄和觸摸屏是人類與機(jī)器和嵌入式設(shè)備的常用交互方式。不過,傳感器技術(shù)的最新進(jìn)展開辟了一條全新的道路,使開發(fā)人員可為產(chǎn)品添加三維 (3D) 手勢(shì)控制。

由于所采用的技術(shù)各不相同,購買和集成手勢(shì)控制器可能成本高昂。然而,市面上手勢(shì)傳感器技術(shù)種類繁多,從使用紅外 LED光電二極管檢測(cè)動(dòng)作的經(jīng)濟(jì)型傳感器,到昂貴的手勢(shì)識(shí)別相機(jī)。紅外手勢(shì)傳感器經(jīng)濟(jì)實(shí)惠,可以通過數(shù)字接口與低成本微控制器連接,只需輔以簡(jiǎn)單的軟件,精度足以應(yīng)對(duì)許多應(yīng)用。

本文探討了使用Broadcom的APDS-9960進(jìn)行手勢(shì)控制的方法。幾乎所有嵌入式系統(tǒng)都可輕松集成這款紅外 (IR) 手勢(shì)控制傳感器。

基于 IR 的手勢(shì)傳感器

基于 IR 的手勢(shì)傳感器原理十分簡(jiǎn)單。用于檢測(cè)手勢(shì)時(shí),開發(fā)人員可能需要檢測(cè)以下幾種不同手勢(shì):

向上/向下

向左/向右

向前/向后

在上述每種情況下,傳感器都需要檢測(cè)運(yùn)動(dòng)方向,而這主要通過傳感器的兩大組件來實(shí)現(xiàn):一個(gè)發(fā)光二極管 (LED) 和多個(gè)定向光電二極管。定向光電二極管由至少四個(gè)光電二極管組成,分別置于距 IR LED 預(yù)定義距離處。例如,Broadcom 的 APDS-9960 環(huán)境光、接近度和手勢(shì)傳感器將四個(gè)光電二極管布置為菱形,每個(gè)二極管用于指示一個(gè)方向,分別為上、下、左和右(圖 1)。

圖 1:Broadcom 的 APDS-9960 具有一個(gè)集成 IR LED 和四個(gè)定向光電二極管,可檢測(cè)反射的 IR 能量以分析手勢(shì)。(圖片來源:Broadcom)

當(dāng) LED 發(fā)射紅外能量時(shí),除非遇到手等物體發(fā)生反射,否則能量就會(huì)發(fā)射至空氣中。光電二極管將檢測(cè)到不同強(qiáng)度的反射能量,具體取決于物體的位置。例如,相比位于手勢(shì)后邊緣的光電二極管,前邊緣光電二極管最初接收的反射能量較少,從而導(dǎo)致一個(gè)光電二極管的計(jì)數(shù)值比另一個(gè)高。在手勢(shì)動(dòng)作過程中,連續(xù)測(cè)量將導(dǎo)致不同位置的光電二極管檢測(cè)的反射能量強(qiáng)度不同,而分析該方向信息流即可確定手勢(shì)。

例如,若用戶用手從傳感器的頂部輕掃至底部,則在手勢(shì)動(dòng)作之初,下方光電二極管檢測(cè)的入射光比上方光電二極管更強(qiáng);在手勢(shì)動(dòng)作期間,手逐漸移動(dòng)到兩個(gè)二極管接收能量相等的點(diǎn);而在手勢(shì)動(dòng)作完成時(shí),下方光電二極管接收的反射光較弱,而上方光電二極管接收的更強(qiáng),此時(shí)兩光電二極管的曲線和相位完全反轉(zhuǎn)(圖 2)。

圖 2:Broadcom 的 APDS-9960 檢測(cè)到向下手勢(shì)將生成以上光電二極管曲線,其中主導(dǎo)曲線指示手勢(shì)方向。(圖片來源:Broadcom)

了解手勢(shì)數(shù)據(jù)的生成原理后,下一步就來看看如何連接到 APDS-9960。

連接 Broadcom 的 APDS-9960 手勢(shì)控制器

APDS-9960 采用 8 引腳表面貼裝 (SMD-8) 封裝,占用印刷電路板空間極?。▓D 3)。傳感器尺寸僅為 3.94 × 2.36 × 1.35 mm。該封裝包含正常電源和接地引腳、用于連接微控制器的 I2C 數(shù)字接口,以及用于定制 LED 驅(qū)動(dòng)電路的引腳。此外,該封裝還包含中斷引腳,可用于通知微控制器處理可用的手勢(shì)數(shù)據(jù)。

圖 3:APDS-9960 采用緊湊型表面貼裝 SMD-8 封裝,可最大限度減少電路板空間。(圖片來源:Broadcom)

構(gòu)建原型并連接 APDS-9960 有幾種不同選項(xiàng)可供選擇。例如,SparkFun的APDS-9960 評(píng)估板提供了包括 LED 驅(qū)動(dòng)電路在內(nèi)的小型分線板,以便實(shí)現(xiàn)開箱即用(圖 4)。開發(fā)人員只需焊接針座以通過旁路繞過電源和接地,并將 I2C 總線和可選的中斷引腳連接至微控制器,即可著手開發(fā)嵌入式軟件了。此外,SparkFun 評(píng)估板還包含安裝孔,若現(xiàn)有電路板有助于實(shí)現(xiàn)應(yīng)用,則可直接運(yùn)用到設(shè)計(jì)中。

圖 4:SparkFun 的 APDS-9960 評(píng)估板包含著手開發(fā)手勢(shì)控制所需的所有板載電路。(圖片來源:Digi-Key Electronics)

或者,開發(fā)人員也可使用Adafruit的APDS-9960 分線板,這也是一款一體化解決方案(圖 5)。Adafruit 分線板很有意思,盡管外形小巧,卻還包含 3 V 板載穩(wěn)壓器,可用于為電源 LED 甚至低功耗微控制器等附加電路供電。最重要的是,Adafruit 為開發(fā)人員提供了完善的 Adafruit APDS9960 分線板用戶指南,以及若干軟件庫可用于連接 Arduino 板或運(yùn)行 Python 的開發(fā)板。因此,使用 APDS-9960 可輕松實(shí)現(xiàn)開箱即用,從而大幅縮短開發(fā)人員著手使用手勢(shì)傳感器所花費(fèi)的時(shí)間。

圖 5:Adafruit 的 APDS-9960 分線板包括 APDS-9960、3 V 板載穩(wěn)壓器和 I2C 電壓轉(zhuǎn)換電路以支持 3 V 或 5 V 總線。(圖片來源:Digi-Key Electronics)

連接上述分線板的最簡(jiǎn)單方法是將Molex22-28-4255分離式針座焊接至電路板上。最好將針座朝下焊接,可實(shí)現(xiàn)多種優(yōu)勢(shì):首先,可將電路板直接插入某個(gè)試驗(yàn)板,如Digilent的340-002-1無焊試驗(yàn)板套件(圖 6)。其次,不要在該電路板上表面接線,以免手勢(shì)動(dòng)作時(shí)意外觸及掛在針座上的電線。

圖 6:Digilent 無焊試驗(yàn)板上焊接好的 Adafruit APDS-9960 分線板。(圖片來源:Adafruit)

此時(shí),需要連接電源和接地,并將 I2C 總線連接至所需的微控制器開發(fā)板。任何帶微控制器的開發(fā)板都可使用。但最好選擇STMicroelectronics用于物聯(lián)網(wǎng)節(jié)點(diǎn)的B-L475E-IOT01A2STM32L475 開發(fā)套件(圖 7)。該開發(fā)板具有 Arduino 針座,并且由 MicroPython 提供支持,可在該開發(fā)板上輕松編程。完成此操作后,即可使用 Python 腳本連接手勢(shì)傳感器,從而使手勢(shì)控制不僅可行,而且輕而易舉。

圖 7:STM32L475 物聯(lián)網(wǎng)節(jié)點(diǎn)開發(fā)套件包含 Arduino 針座,可輕松連接到 APDS-9960 分線板。(圖片來源:STMicroelectronics)

使用 Python 檢測(cè)手勢(shì)

從 APDS-9960 獲取手勢(shì)數(shù)據(jù)雖不復(fù)雜,卻要求開發(fā)人員仔細(xì)閱讀規(guī)格書。APDS-9960 具有多種不同功能,其中包括:

手勢(shì)感應(yīng)

環(huán)境光感應(yīng)

RGB 顏色感應(yīng)

接近感應(yīng)

上述功能均由狀態(tài)機(jī)控制,而狀態(tài)機(jī)的執(zhí)行則基于應(yīng)用的寄存器設(shè)置。例如,防止手勢(shì)引擎一直執(zhí)行的妙招是使用接近感應(yīng)引擎來檢測(cè)手的存在。一旦 IR 反射能量達(dá)到預(yù)設(shè)計(jì)數(shù),則由接近引擎轉(zhuǎn)換為手勢(shì)引擎,手勢(shì)引擎測(cè)量定向光電二極管并將測(cè)量值放入先進(jìn)先出 (FIFO) 緩沖器。為了啟用該功能,需要設(shè)置控制寄存器啟用接近感應(yīng),并設(shè)置計(jì)數(shù)閾值。

開發(fā)人員可能需要編寫算法以檢測(cè)特定的手勢(shì),具體取決于應(yīng)用所需的手勢(shì)。然而,對(duì)于向上/向下和向左/向右等常見手勢(shì),開發(fā)人員可以使用 Adafruit 的 APDS-9960CircuitPython 庫。將該庫復(fù)制到 Python 設(shè)備后,即可使用清單 1 所示代碼導(dǎo)入。該代碼可導(dǎo)入 APDS-9960 庫以及支持 I2C 總線的多個(gè)庫。

副本 import board import busio import adafruit_apds9960.apds9960 i2c = busio.I2C(board.SCL, board.SDA) sensor = adafruit_apds9960.apds9960.APDS9960(i2c)

清單 1:用于連接 APDS-9960 手勢(shì)控制器的 CircuitPython 導(dǎo)入和庫初始化代碼。(圖片來源:Adafruit)

傳感器對(duì)象是 APDS-9960 庫中一個(gè)實(shí)例。稍后,我們將看到其易用性。為了啟用手勢(shì),開發(fā)人員只需使用以下代碼啟用手勢(shì)功能:

副本 sensor.enable_gesture = True The main program loop setup to read the gesture is itself just a few lines of code (Listing 2).gesture = sensor.gesture() while gesture == 0: gesture = sensor.gesture() print('Saw gesture: {0}'.format(gesture))

清單 2:只需簡(jiǎn)單重復(fù)調(diào)用單個(gè)庫即可檢測(cè)手勢(shì)。(圖片來源:Adafruit)

閱讀該代碼后,您定會(huì)發(fā)現(xiàn)若感測(cè)到手勢(shì),則將在屏幕上打印檢測(cè)的手勢(shì)(圖 8)。

圖 8:Adafruit 的 APDS-9960 CircuitPython 庫手勢(shì)輸出結(jié)果示例。(圖片來源:Adafruit)

手勢(shì)可以數(shù)字形式輸出,使用以下鍵值即可輕松轉(zhuǎn)換:

0 = 未檢測(cè)到手勢(shì)

1 = 檢測(cè)到向上手勢(shì)

2 = 檢測(cè)到向下手勢(shì)

3 = 檢測(cè)到向左手勢(shì)

4 = 檢測(cè)到向右手勢(shì)

如圖所示,借助預(yù)先導(dǎo)入的庫,只需幾行代碼即可輕松實(shí)現(xiàn)基本手勢(shì)識(shí)別。識(shí)別更為復(fù)雜的手勢(shì)則需要修改庫以分析原始手勢(shì)數(shù)據(jù)。

構(gòu)建手勢(shì)控制器的技巧與訣竅

構(gòu)建手勢(shì)控制傳感器并將其集成于產(chǎn)品著實(shí)具有一定挑戰(zhàn)性。使用基于紅外線的手勢(shì)控制器時(shí),開發(fā)人員需要考慮使用以下幾個(gè)“技巧與訣竅”:

使用手勢(shì)傳感器的內(nèi)部接近檢測(cè)器來觸發(fā)手勢(shì)控制引擎,從而最大限度地減少無效手勢(shì)啟動(dòng)。

從現(xiàn)有手勢(shì)庫開始,在現(xiàn)有功能的基礎(chǔ)上構(gòu)建其他手勢(shì)。

將光電二極管增益調(diào)整為適合最終手勢(shì)應(yīng)用的最佳值。

將 LED 輸出驅(qū)動(dòng)強(qiáng)度調(diào)整為適合應(yīng)用的最佳值,或許需要稍作調(diào)整才能獲得可重復(fù)使用的數(shù)值。

無論開發(fā)何種手勢(shì)應(yīng)用,開發(fā)人員都應(yīng)從高級(jí)軟件開發(fā)入手,待充分熟悉該傳感器后再轉(zhuǎn)而使用較低級(jí)別的代碼。

遵循上述技巧有助于確保開發(fā)人員花費(fèi)最短的時(shí)間來啟動(dòng)和運(yùn)行 IR 手勢(shì)控制器。

總結(jié)

人們不斷追求以更自然、更直觀的方式進(jìn)行人機(jī)交互,而其中一種重要方式就是使用手勢(shì)控制技術(shù)。盡管市面上手勢(shì)控制技術(shù)種類繁多,但論及成本最低、使用最便捷的技術(shù)還屬基于紅外線的手勢(shì)傳感器。如上所述,如果開發(fā)人員利用現(xiàn)有的硬件和軟件技術(shù),則將手勢(shì)傳感器與微控制器集成在一起,亦可省時(shí)省力,簡(jiǎn)單易用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2551

    文章

    51097

    瀏覽量

    753527
  • 3D
    3D
    +關(guān)注

    關(guān)注

    9

    文章

    2878

    瀏覽量

    107534
  • Broadcom
    +關(guān)注

    關(guān)注

    3

    文章

    737

    瀏覽量

    43798
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    移動(dòng)設(shè)備作圖新武器:3D手勢(shì)輸入

    美國專利商標(biāo)局日前公布了蘋果最新申請(qǐng)的“3D手勢(shì)輸入”專利。據(jù)國外媒體報(bào)道稱,該技術(shù)允許用戶通過特殊手勢(shì)實(shí)現(xiàn)3D手勢(shì)輸入,達(dá)到以
    發(fā)表于 08-23 13:38 ?1639次閱讀
    移動(dòng)設(shè)備作圖新武器:<b class='flag-5'>3D</b><b class='flag-5'>手勢(shì)</b>輸入

    如何設(shè)計(jì)高質(zhì)量低成本3D眼鏡_Designing Cost-Effective 3D Technol...

    如何設(shè)計(jì)高質(zhì)量低成本3D眼鏡_Designing Cost-Effective 3D Technology ByRobert Murphy, Cypress Semiconductor作者
    發(fā)表于 06-18 13:56

    一枚芯片,四片銅箔,簡(jiǎn)單實(shí)現(xiàn)3D手勢(shì)控制

    ”的能力。今天將為介紹的是一款珠海普林芯馳科技有限公司推出的SPT10 A系列芯片,也就是3D手勢(shì)控制芯片,核心技術(shù)是遠(yuǎn)距離電容感應(yīng)技術(shù),您可以理解為是一種推廣,但這不正是我們探索世
    發(fā)表于 08-08 14:43

    針對(duì)顯示屏的2D/3D觸摸與手勢(shì)開發(fā)工具包DV102014

    最新的PCAP控制器MTCH6303及MGC3130 3D手勢(shì)控制器。它包含一個(gè)8英寸的透明觸摸傳感,以便對(duì)多種常用顯示屏進(jìn)行
    發(fā)表于 11-07 10:45

    自制低成本3d激光掃描測(cè)距儀激光雷達(dá)

    自制低成本3d激光掃描測(cè)距儀激光雷達(dá)
    發(fā)表于 05-27 16:23

    自制低成本3D激光掃描測(cè)距儀(3D激光雷達(dá))

    自制低成本3D激光掃描測(cè)距儀(3D激光雷達(dá))
    發(fā)表于 03-04 10:51

    微軟收購3D手勢(shì)控制公司Canesta

    微軟收購了一家擁有 3D 手勢(shì)和移動(dòng)感應(yīng)技術(shù)的半導(dǎo)體芯片制造公司。新科技可以被用于從 Windows 8 的移動(dòng)控制到 Xbox 的移動(dòng)感應(yīng)的各個(gè)方面。
    發(fā)表于 12-12 08:56 ?816次閱讀

    觸摸和3D手勢(shì)控制

    Microchip的觸摸傳感和3D控制技術(shù)屢獲殊榮,能廣泛應(yīng)用于各種應(yīng)用,包括觸摸按鍵(1D)、觸摸屏(2D)以及3D
    發(fā)表于 07-14 16:36 ?0次下載

    人機(jī)交互技術(shù)換代,如何搭上通往3D手勢(shì)識(shí)別的直通車?

     Microchip專門為GestIC技術(shù)開發(fā)出MGC3030和MGC3130兩個(gè)專用的3D手勢(shì)識(shí)別和運(yùn)動(dòng)跟蹤控制器芯片,片上集成的Colibri手勢(shì)識(shí)別套件,Colibri套件結(jié)合了
    發(fā)表于 10-26 17:24 ?1200次閱讀
    人機(jī)交互技術(shù)換代,如何搭上通往<b class='flag-5'>3D</b><b class='flag-5'>手勢(shì)</b>識(shí)別的直通車?

    采用GestIC?技術(shù)的可配置3D手勢(shì)控制器MGC3130

    本視頻演示了Microchip旨在評(píng)估首個(gè)基于GestIC?技術(shù)的 MGC3130 3D跟蹤和手勢(shì)控制器核心特性的Sabrewing單區(qū)評(píng)估工具包。
    的頭像 發(fā)表于 06-08 02:46 ?5174次閱讀

    Microchip發(fā)布全新GestIC控制器,使嵌入式設(shè)備添加3D手勢(shì)識(shí)別設(shè)計(jì)一步到位

    Technology Inc.(美國微芯科技公司)的專利GestIC產(chǎn)品家族第二位成員問世。全新MGC3030 3D手勢(shì)控制器備有專注于手勢(shì)檢測(cè)的簡(jiǎn)化用戶界面選項(xiàng),可令消費(fèi)電子與嵌入
    發(fā)表于 08-20 22:54 ?349次閱讀

    低成本3D打印機(jī)的源代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是低成本3D打印機(jī)源代碼免費(fèi)下載
    發(fā)表于 10-23 17:24 ?32次下載

    SVPWM算法在低成本控制器中的快速實(shí)現(xiàn)

    SVPWM算法在低成本控制器中的快速實(shí)現(xiàn)
    發(fā)表于 10-28 11:59 ?2次下載
    SVPWM算法在<b class='flag-5'>低成本</b>微<b class='flag-5'>控制器</b>中的<b class='flag-5'>快速</b>實(shí)現(xiàn)

    快速設(shè)計(jì)自己低成本 3D 手勢(shì)控制器

    發(fā)表于 11-25 08:28 ?0次下載
    <b class='flag-5'>快速</b>設(shè)計(jì)<b class='flag-5'>您</b><b class='flag-5'>自己</b>的<b class='flag-5'>低成本</b> <b class='flag-5'>3D</b> <b class='flag-5'>手勢(shì)</b><b class='flag-5'>控制器</b>

    3D Flash 激光雷達(dá)測(cè)繪和手勢(shì)識(shí)別

    3D Flash 激光雷達(dá)測(cè)繪和手勢(shì)識(shí)別
    的頭像 發(fā)表于 01-05 09:43 ?1443次閱讀