一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

創(chuàng)客生活|謝作如老師教你自制MaKeyMaKey

 長(zhǎng)沙7喜 2016-10-08


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)。


1
設(shè)計(jì)輸入模塊

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è)出是否形成了回路。


2
控制板的選擇

控制板方面,我們當(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


3
 Arduino編程

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)左鍵。

int InData1 = 0, InData2 = 0, InData3 = 0, InData4 = 0, InData5 = 0, InData0 = 0;  

int TouchSensitivity = 300;

void setup()

{ Mouse.begin();

  Keyboard.begin();

}

 void loop()

{ InData0 = analogRead(A0);

  InData1 = analogRead(A1);

  InData2 = analogRead(A2);

  InData3 = analogRead(A3);

  InData4 = analogRead(A4);

  InData5 = analogRead(A5);

  if(InData0 >= TouchSensitivity)

  {    Keyboard.press(KEY_RIGHT_ARROW); //right

  }

  if(InData1 >= TouchSensitivity)

  {    Keyboard.press(KEY_LEFT_ARROW);  //left

  }

  if(InData2 >= TouchSensitivity)

  {    Keyboard.press(KEY_DOWN_ARROW); //down

  }

  if(InData3 >= TouchSensitivity)

  {    Keyboard.press(KEY_UP_ARROW);  //up

  }

  if(InData4 >= TouchSensitivity)  //空格鍵

  {    Keyboard.press(32);

  }

  if(InData5 >= TouchSensitivity) //鼠標(biāo)左鍵

  {    Mouse.click(MOUSE_LEFT);

  }

  Keyboard.releaseAll();

  delay(100);


4
對(duì)MaKeyMaKey的改進(jìn)


      測(cè)試一下這塊自制的MaKeyMaKey,除了我僅僅寫(xiě)了最常用的6個(gè)鍵外,其他幾乎一模一樣。既然是自制的MaKeyMaKey,我們總要做點(diǎn)改進(jìn):

1、解放另一只手。

      總是一只手接上Gnd線,另一只手觸碰導(dǎo)體,才可以模擬出按鍵或者鼠標(biāo)的動(dòng)作,還是不方便。如何做才能更方便?很簡(jiǎn)單,換成觸摸傳感器作為輸入設(shè)備,就可以解放另一只手了。當(dāng)然,我們也可以用紅外測(cè)距傳感器、紅外遙控之類(lèi),連手都不用碰,也能和電腦交互,不是更有趣了嗎?


2、遠(yuǎn)程控制。

      用藍(lán)牙把兩塊Arduino連接起來(lái),其中一塊接電腦做接收端,模擬鼠標(biāo)鍵盤(pán),另一塊加上特定的傳感器做控制。哦,這不是無(wú)線鼠標(biāo)了嗎?是啊,如果加上三軸加速度傳感器,就是空中飛鼠了。我看過(guò)有人把板子縫在帽子上,實(shí)現(xiàn)了用頭部控制鼠標(biāo)來(lái)玩游戲。


      其實(shí),這款自制的Arduino能做的很多,只要你大膽想象。那么,是不是只能用Leonardo之類(lèi)帶ATmega32u4芯片的板子,才能模擬MaKeyMaKey?答案當(dāng)然是否定的。在創(chuàng)客們的眼里,一件事情往往有很多種解決方案。比如,我們可以編一個(gè)客戶端,用串口和Arduino連接,然后把串口的信息轉(zhuǎn)化為模擬按鍵。


來(lái)源:中國(guó)信息技術(shù)教育

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    亚洲伊人久久精品国产| 日韩欧美亚洲综合在线| 亚洲国产黄色精品在线观看| 亚洲欧美日韩中文字幕二欧美 | 殴美女美女大码性淫生活在线播放| 精品日韩国产高清毛片| 久久福利视频视频一区二区| 日本视频在线观看不卡| 日韩精品一级一区二区| 国产精品不卡一区二区三区四区 | 国产精品午夜福利免费阅读| 欧美一区二区三区视频区| 一区二区三区精品人妻| 国产午夜在线精品视频| 福利专区 久久精品午夜| 99久只有精品免费视频播放| 大屁股肥臀熟女一区二区视频| 欧美成人欧美一级乱黄| 精品国产成人av一区二区三区| 欧美精品久久男人的天堂| 欧美日韩国产的另类视频| 国产成人午夜福利片片| 亚洲国产欧美精品久久| 九九热这里有精品20| 亚洲欧美日韩在线看片| 国产伦精品一区二区三区精品视频 | 91熟女大屁股偷偷对白| 国产欧洲亚洲日产一区二区| 国产精品免费无遮挡不卡视频| 好骚国产99在线中文| 日韩专区欧美中文字幕| 欧美高潮喷吹一区二区| 久久精品偷拍视频观看| 精品欧美日韩一区二区三区 | 国产在线日韩精品欧美| 九九热这里只有精品视频| 欧美日韩免费黄片观看| 黄片三级免费在线观看| 少妇被粗大进猛进出处故事| 熟女中文字幕一区二区三区| 精品亚洲香蕉久久综合网|