<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

快速設計您自己的低成本 3D 手勢控制器

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

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

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

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

基于 IR 的手勢傳感器

基于 IR 的手勢傳感器原理十分簡單。用于檢測手勢時,開發人員可能需要檢測以下幾種不同手勢:

向上/向下

向左/向右

向前/向后

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

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

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

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

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

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

連接 Broadcom 的 APDS-9960 手勢控制器

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

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

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

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

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

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

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

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

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

圖 7:STM32L475 物聯網節點開發套件包含 Arduino 針座,可輕松連接到 APDS-9960 分線板。(圖片來源:STMicroelectronics)

使用 Python 檢測手勢

從 APDS-9960 獲取手勢數據雖不復雜,卻要求開發人員仔細閱讀規格書。APDS-9960 具有多種不同功能,其中包括:

手勢感應

環境光感應

RGB 顏色感應

接近感應

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

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

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

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

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

副本 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:只需簡單重復調用單個庫即可檢測手勢。(圖片來源:Adafruit)

閱讀該代碼后,您定會發現若感測到手勢,則將在屏幕上打印檢測的手勢(圖 8)。

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

手勢可以數字形式輸出,使用以下鍵值即可輕松轉換:

0 = 未檢測到手勢

1 = 檢測到向上手勢

2 = 檢測到向下手勢

3 = 檢測到向左手勢

4 = 檢測到向右手勢

如圖所示,借助預先導入的庫,只需幾行代碼即可輕松實現基本手勢識別。識別更為復雜的手勢則需要修改庫以分析原始手勢數據。

構建手勢控制器的技巧與訣竅

構建手勢控制傳感器并將其集成于產品著實具有一定挑戰性。使用基于紅外線的手勢控制器時,開發人員需要考慮使用以下幾個“技巧與訣竅”:

使用手勢傳感器的內部接近檢測器來觸發手勢控制引擎,從而最大限度地減少無效手勢啟動。

從現有手勢庫開始,在現有功能的基礎上構建其他手勢。

將光電二極管增益調整為適合最終手勢應用的最佳值。

將 LED 輸出驅動強度調整為適合應用的最佳值,或許需要稍作調整才能獲得可重復使用的數值。

無論開發何種手勢應用,開發人員都應從高級軟件開發入手,待充分熟悉該傳感器后再轉而使用較低級別的代碼。

遵循上述技巧有助于確保開發人員花費最短的時間來啟動和運行 IR 手勢控制器。

總結

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2529

    文章

    48474

    瀏覽量

    741844
  • 3D
    3D
    +關注

    關注

    9

    文章

    2765

    瀏覽量

    106553
  • Broadcom
    +關注

    關注

    3

    文章

    737

    瀏覽量

    43556
收藏 人收藏

    評論

    相關推薦

    3D打印模型上色保姆級教程!低成本,高效,快速上色,包教會!

    3D打印
    學習電子知識
    發布于 :2022年12月13日 22:37:10

    如何設計高質量低成本3D眼鏡_Designing Cost-Effective 3D Technol...

    如何設計高質量低成本3D眼鏡_Designing Cost-Effective 3D Technology ByRobert Murphy, Cypress Semiconductor作者
    發表于 06-18 13:56

    啟用因特網功能的 3D 打印機運動控制器參考設計

    `描述這款開源 3D 打印機運動控制器設計可將 BeagleBone Black 連接到 3D 打印機,從而使 3D 打印機變為連接互聯網的器件,可進行超高速打印。有了該設計,再也無需
    發表于 04-13 16:42

    3D圖像的速度控制

    你好! 現在我有個問題想請教大家, 我怎么做一個3D圖像的渦輪扇葉然后通過控制器調整它的速度然后再3D圖像中開始轉并且根據控制量改變在3D
    發表于 11-30 23:25

    帶有3D手勢識別和手部位置追蹤系統

    Microchip MGC3030 手勢控制器是一個電場感測片上系統 (SoC),板載處理功能帶有 3D 手勢識別和手部位置追蹤。它采用 Microchip 的 GestIC? 技術,
    發表于 07-03 09:40

    一枚芯片,四片銅箔,簡單實現3D手勢控制

    。連接上四個傳感,可以達到3D手勢控制的效果,其實也就是可以實現上下左右滑、旋轉、點擊、拖曳這種X、Y、Z三維立體軸上的移動物體識別。應用的話,就看個人腦洞的發揮啦,從這家公司的官網
    發表于 08-06 13:59

    一枚芯片,四片銅箔,簡單實現3D手勢控制

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

    針對顯示屏的2D/3D觸摸與手勢開發工具包DV102014

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

    自制低成本3d激光掃描測距儀激光雷達

    自制低成本3d激光掃描測距儀激光雷達
    發表于 05-27 16:23

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

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

    手勢識別控制器制作

    目錄智能家居硬件小制作(含源碼)《手勢識別控制器》基于PAJ7620手勢模塊、L298N驅動板、arduino介紹材料PAJ7620手勢模塊參數硬件連接庫文件使用其他硬件制作
    發表于 09-07 06:45

    低成本控制器單元中經常使用的內部RC振蕩的優點和需求

    MCU的內部結構本文將會介紹許多低成本控制器單元(MCU)中經常使用的內部RC振蕩的優點和需求,包括為獲得最佳精度而進行的校準過程。低成本控制
    發表于 11-04 08:38

    基于LaunchPad + BoosterPack的3D打印機控制器參考設計

    思路。今天,我想給大家介紹下,TI是如何很好地融入這場3D打印技術革命的。我們將采用什么更合適的方法來適應3D打印技術革命,而不是生產我們自己3D打印機呢?最終的答案就是一款
    發表于 11-21 07:27

    SVPWM算法在低成本控制器中的快速實現

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

    快速設計您自己低成本 3D 手勢控制器

    發表于 11-25 08:28 ?0次下載
    <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'>手勢</b><b class='flag-5'>控制器</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>