MaKeyMaKey是大眾融資平臺(tái)Kickstarter上的一個(gè)項(xiàng)目,由兩位MIT在讀博士設(shè)計(jì)。它能將日常物品變成觸摸板,然后連上電腦和網(wǎng)絡(luò)。 MaKeyMaKey由三個(gè)部分組成:MaKey MaKey主板,鱷魚(yú)夾和數(shù)據(jù)線。對(duì)于任何導(dǎo)體(表面濕潤(rùn)的絕緣體也可以)來(lái)說(shuō),只要用鱷魚(yú)嘴導(dǎo)線將物體與電路板上的各個(gè)金屬觸點(diǎn)相連,然后再連接電腦,就可達(dá)到觸摸板的效果,成為一個(gè)計(jì)算機(jī)輸入設(shè)備。 MaKeyMaKey能夠模擬鍵盤(pán)和鼠標(biāo)的信號(hào),結(jié)合電腦中現(xiàn)成的游戲和媒體播放器之類(lèi)的軟件,不用編程,就能夠設(shè)計(jì)簡(jiǎn)單的互動(dòng)媒體作品了,常見(jiàn)的是用來(lái)做水果鍵盤(pán),如圖1所示。MaKeyMaKey 的意義在于它可以用極其簡(jiǎn)單的方法讓藝術(shù)家創(chuàng)造藝術(shù),讓孩子體驗(yàn)技術(shù)帶來(lái)的樂(lè)趣,因而稱為是孩子們21世紀(jì)的發(fā)明工具包。 圖1:MaKeyMaKey連接水果 MaKeyMaKey并不貴,淘寶上能買(mǎi)到,大概500左右。但是作為一名創(chuàng)客,當(dāng)然要試著自己來(lái)做一塊。論技術(shù)難度倒真不高,只要稍微懂一點(diǎn)Arduino的基礎(chǔ)知識(shí)就能實(shí)現(xiàn)。 MaKeyMaKey的神奇在于能夠把任何導(dǎo)體,包括人體)、表面濕潤(rùn)的絕緣體變成輸入設(shè)備。對(duì)照運(yùn)行圖2所示的工作原理,我們可以發(fā)現(xiàn),人體無(wú)非是一個(gè)選擇性的開(kāi)關(guān),讓不同的“鍵”(引腳)和“Gnd”連接起來(lái),形成一個(gè)回路,讓單片機(jī)能識(shí)別,如圖3所示。 圖2:MaKeyMaKey運(yùn)行圖示 圖3:MaKeyMaKey運(yùn)行圖示 作為輸入設(shè)備,我們知道最基礎(chǔ)的電路如圖4所示。這其實(shí)就是一個(gè)典型的分壓電路,Vout的電壓是受R1和R2的電阻值大小影響。R2的電阻越大,Vout分到的電壓也就越大。但是,由于作為人體的電阻很大,如何選擇合適的電阻是重點(diǎn)。 圖4:輸入模塊的電路示意圖 如果熟悉計(jì)算分壓電路,可以試著計(jì)算一下。一般在干燥環(huán)境中,人體電阻大約在2千歐-20兆歐范圍內(nèi),那么作為匹配的電阻,應(yīng)該選擇這一范圍的中間值,即10兆歐。經(jīng)過(guò)測(cè)試,一般來(lái)說(shuō),1-10兆歐的電阻基本上都能比較敏感地測(cè)出是否形成了回路。 控制板方面,我們當(dāng)然要選擇開(kāi)源硬件Arduino。MaKeyMaKey本身就和Arduino有著密不可分的關(guān)系。不信你可以查看MaKeyMaKey板子的背后,是否寫(xiě)著Arduino的字樣? Arduino也有多種型號(hào),我們用Leonardo還是UNO?因?yàn)長(zhǎng)eonardo直接使用了ATmega32u4的USB通信功能,取消了USB轉(zhuǎn)UART芯片,這使得Leonardo不僅可以作為一個(gè)虛擬的(CDC)串行/ COM端口,還可以作為鼠標(biāo)或者鍵盤(pán)連接到計(jì)算機(jī)。 那么,第一選擇肯定是Leonardo了。其實(shí),國(guó)內(nèi)有很多Arduino的兼容產(chǎn)品,有些用的芯片就是ATmega32u4。只要是用這一芯片的,都可以改造為鍵盤(pán)和鼠標(biāo)。 圖5:Leonardo Arduino IDE中直接了提供模擬鍵盤(pán)、鼠標(biāo)功能的范例,在“示例”-“09 USB”中,如圖所示。范例中有英文的注釋?zhuān)苋菀卓炊?。要?shí)現(xiàn)鍵盤(pán)和鼠標(biāo)功能,只要關(guān)注以下兩點(diǎn)。 1、在setup函數(shù)中,加上“Mouse.begin();Keyboard.begin();”的聲明。 2、輸入按鍵信息,直接用“Keyboard.press('l');”即可?!癒eyboard.releaseAll();”為釋放按鍵。特殊字符,可以用KEY_LEFT_ALT之類(lèi)的常量來(lái)代替。 圖6:Arduino自帶的范例文件 依樣畫(huà)葫蘆,我寫(xiě)了如下的代碼,其中TouchSensitivity用來(lái)調(diào)節(jié)輸入模塊的敏感度的。代碼中我定義了A0到A5口,分別對(duì)應(yīng)“右、左、下、上”的方向鍵,以及空格和鼠標(biāo)左鍵。
1、解放另一只手。 2、遠(yuǎn)程控制。 來(lái)源:中國(guó)信息技術(shù)教育 |
|