步驟1:獲取插座
部分,即。對(duì)適配器板進(jìn)行編程和設(shè)計(jì),您需要找到一種將鍵盤(pán)連接到PCB的方法。
大多數(shù)經(jīng)典的ThinkPad鍵盤(pán)都使用板對(duì)板連接器。根據(jù)eBay的說(shuō)法,如果您搜索T60鍵盤(pán),則會(huì)發(fā)現(xiàn)ThinkPad T60,T60p,Z61p,Z61t,Z60,T61,R400,R500,T400,T500,X41 。..共享相同的鍵盤(pán),并且它們的鍵盤(pán)矩陣也可能
從互聯(lián)網(wǎng)上浮動(dòng)的ThinkPad T60的示意圖中(參見(jiàn)圖片),我發(fā)現(xiàn)T60使用JAE AA01B-S040VA1-R3000。由于這些產(chǎn)品是專有產(chǎn)品,因此沒(méi)有多少供應(yīng)商出售它們。多數(shù)確實(shí)出售這些產(chǎn)品的人,其最低訂購(gòu)量為100。每件產(chǎn)品的價(jià)格約為4.90美元,加上運(yùn)費(fèi),價(jià)格非常昂貴。因此,如果您有興趣獲得這些信息,請(qǐng)給我發(fā)消息。
有關(guān)ThinkPad T60插座的更多信息,請(qǐng)查看Felix的照片和尺寸:http://electronics.stackexchange.com/questions/64112/how找到用于鍵盤(pán)連接器的插座
步驟2:使用鍵盤(pán)示意圖
從上一步的示意圖中可以看出,T60鍵盤(pán)矩陣使用8行16列,其中1個(gè)用于熱鍵(FN),TrackPoint使用時(shí)鐘線,數(shù)據(jù)線和復(fù)位線??偣残枰?8個(gè)數(shù)字引腳,而Arduino Micro/Leonardo只有20個(gè)數(shù)字引腳。
使用CD4017這樣的十進(jìn)制計(jì)數(shù)器在行中循環(huán),并使用MCP23S17等SPI 16位輸入IC進(jìn)行讀取。輸入為16列,Arduino端的引腳總數(shù)減少到10行。
通常,鍵盤(pán)矩陣是被動(dòng)的-它們不指定行或列必須是輸入還是輸出。但是,對(duì)于該項(xiàng)目,16列輸出將需要更多的外部IC,無(wú)源元件,并使設(shè)計(jì)復(fù)雜化。因此,我選擇了8個(gè)輸出和16個(gè)輸入。
到目前為止,零件清單已經(jīng)到了:
Arduino Micro:官方模塊?32美元,13美元用于克隆(在eBay上克?。?/p>
CD4017
MCP23S17
16 x 10k電阻作為MCP23S17
的上拉電阻Arduino安裝板和插座板(接下來(lái)的幾個(gè)步驟)
AA01B-S040VA1插座
在https://www.tindie.com/products/rampadc/arduino-thinkpad獲取該套件-usb-keyboard-adapter/
步驟3:設(shè)計(jì)原理圖和PCB
由于T60的插座是間距為0.5mm的表面安裝組件,因此我決定將SMD用于其他組件。
在此項(xiàng)目中,我決定將該板分成兩塊板:
Arduino Micro安裝板
帶有電阻和支持IC的插座板。
這可以使將來(lái)的主板修訂版更具模塊化,并且從長(zhǎng)遠(yuǎn)來(lái)看可能會(huì)更便宜。例如,如果我決定添加藍(lán)牙連接,則不再需要使用Arduino Micro的USB功能。我可以改用Arduino Nano,而只需要在Arduino一側(cè)設(shè)計(jì)PCB,就可以清楚地知道我的插座板將以相同的方式工作,無(wú)論我決定使用哪種微控制器。
我提供了以下示例我的Elecrow的PCB布局,原理圖和預(yù)制板。板子是雙面的,適合50x50mm。
第4步:編寫(xiě)代碼!
該項(xiàng)目非常簡(jiǎn)單,足以與Arduino龐大的社區(qū)進(jìn)行編碼。我寫(xiě)了一個(gè)簡(jiǎn)短的草圖。該代碼可在GitHub上找到:https://github.com/rampadc/arduino-thinkpadkb-usb。
該代碼可以使用一些優(yōu)化來(lái)加速矩陣掃描。從代碼中刪除了FN + NumLock功能,鍵盤(pán)鍵和自定義鍵盤(pán)組合功能,因?yàn)樗@著降低了掃描速度。
步驟5:結(jié)果和結(jié)論
Arduino平臺(tái)使構(gòu)建USB適配器非常容易。但是,它有一些嚴(yán)重的缺點(diǎn):
?有限的鍵碼支持:沒(méi)有鍵盤(pán)鍵,打印屏幕,滾動(dòng)鎖定,暫停,中斷等的定義。?Keyboard.press()和Keyboard.release()的笨拙實(shí)現(xiàn)。 )。 Arduino API不會(huì)接受和發(fā)送未經(jīng)修改的鍵碼,而是強(qiáng)制用戶發(fā)送可打印的字符。
?無(wú)遠(yuǎn)程喚醒:如果計(jì)算機(jī)進(jìn)入待機(jī)狀態(tài),則按鍵盤(pán)上的某個(gè)鍵或移動(dòng)鼠標(biāo)都不會(huì)將其喚醒。
?引腳數(shù)少
?慢??梢赃M(jìn)行代碼優(yōu)化和改進(jìn),但是使用Arduino從直接端口操縱中提取的東西會(huì)大大增加延遲,增加低引腳數(shù),迫使用戶使用擴(kuò)展IC進(jìn)一步降低了速度。
出于測(cè)試目的,我使用跨接電纜將兩塊板連接在一起。對(duì)于最終產(chǎn)品,我將使用一些細(xì)得多的電線直接焊接到板上并在鍵盤(pán)下方運(yùn)行。
這是操作鍵盤(pán)的視頻:http://youtu.be/gDHS0D_EtOc
設(shè)計(jì)建議改進(jìn)和代碼優(yōu)化!
-
適配器
+關(guān)注
關(guān)注
9文章
2054瀏覽量
69720 -
鍵盤(pán)
+關(guān)注
關(guān)注
4文章
866瀏覽量
40682 -
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192134
發(fā)布評(píng)論請(qǐng)先 登錄
電源適配器做什么的
適配器的電壓與功率選擇
對(duì)比不同類型適配器的優(yōu)缺點(diǎn)
藍(lán)牙適配器連接技巧
適配器與轉(zhuǎn)接頭的區(qū)別
電源適配器怎么使用?
TYPE-C多口適配器方案

光纖跳線是否帶適配器
使用UCC28704EVM-724 10W USB適配器

USB接口適配器評(píng)估模塊用戶指南

評(píng)論