Arduino+LeapMotion=自己的手勢控制器
你或許沒聽說過LeapMotion,但你一定知道微軟的Kinect。這兩款設備都能夠捕捉用戶身體的動作,并根據預設的算法實現用戶動作和計算機的交互。
一位來自印度的創客 Syed?Anwaarullah 為了能在Mini?Maker?Faire上炫耀一下,打算利用手頭的LeapMotion做更多有趣的事。他將通過LeapMotion和開源硬件 Arduino 的結合,將手勢和體感交互擴展到更多的應用領域——甚至能使用這套系統控制機器人和智能家居設備!
第一步:原料準備
這套項目所需要的部件并不多,如果要做一只手勢控制的機器手,除了基本的Arduino和LeapMotion控制器,還需要一個ESP8266?WiFi模塊、幾個舵機和一只3D打印手。另外,這套系統也能用來控制電器的開關等等。
第二步:3D打印手的制作
一只能夠靈活運動的3D打印手的結構還是比較復雜的,這是一個相對較為簡單的設計,只能實現比較簡單的功能:
其各個部件都是單獨打印出來的,詳細的文件可以點擊 這里 找到。而后面的組裝過程也比較費時,感興趣的話可以在 YouTube 上查看 長達1小時的組裝視頻 。
裝好了是這樣:
第三步:為機器手配置舵機控制
測試一下手指的運動是否靈活:
第四步:手勢控制配置
在本項目中,手勢能夠實現對機器手和燈的控制。具體的工作過程是:首先LeapMotion捕捉伸出的手指數量,然后通過WiFi模塊將結果反饋給Arduino?Leonardo開發板,開發板中的程序將根據手指數量作出相應的反饋:
伸出1只手指:打開黃燈
伸出2只手指:關閉黃燈
伸出3只手指:打開紅燈
伸出4只手指:關閉紅燈
伸出5只手指:手掌打開
伸出0只手指:手掌閉合
具體的程序(包括PC端的JAVA程序和Arduino程序)可以在 bitbucket 下載。
如果你也打算做一個同樣的控制器,那么在程序配置過程中,你需要注意以下幾點:
Arduino程序中的establishWiFiConnection()用來配置客戶端模式的ESP8266,而createWiFiHotspotServer()則用來配置熱點模式的ESP8266。
數字引腳11和12連接到一個4信道的繼電器模組(低電平有效觸發)。
Java類中的IP地址192.168.4.1是熱點模式下的WiFi模塊的IP地址,如果你打算在客戶端模式下使用ESP8266,應該將其換成動態IP地址。
第五步:完成
完成之后就該帶到Mini?Maker?Faire上去炫耀了!
2015-2016賽季全球創客馬拉松深圳大學站已經開始接受報名啦!關注“硬創邦”(微信號:leiphone_bang),回復“深大”即可參與報名!此外還可加入全球創客馬拉松主群(群號:259592983),參與我們的互動討論~