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