首頁 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 145913|回復(fù): 5
上一主題 下一主題
[經(jīng)驗(yàn)&教程]

教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2016-1-7 10:44 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式 | 來自浙江
本帖最后由 瑪麗蘇 于 2016-1-7 11:01 編輯


教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

[  前言  ]
隨著電競(jìng)方面政策的開放,機(jī)械鍵盤這些年在國內(nèi)也火起來了,同時(shí)國內(nèi)的機(jī)械鍵盤客制化玩家也變得多起來。入坑客制化幾個(gè)月,國內(nèi)的客制化模式還比較單一,主要就是PCB、外殼、鍵帽再加上燈,有創(chuàng)新的也不是沒有但比較少(比如BLE6,這個(gè)全球惟一BLE客制化60 PCB)。自己想要的鍵盤買不到,或者說太貴,那么,我只能自己動(dòng)手了。
所有操作都沒什么難度,所用到的東西都是現(xiàn)成的,我只是把這些東西按我的用法來實(shí)現(xiàn)了我想要的結(jié)果。重在想法,在我之前沒人這么用過,也希望本文能給大家一些啟發(fā)和幫助。



[  Part 1.準(zhǔn)備工作與原理闡述  ]
準(zhǔn)備工作主要指需要的材料,所有物品淘寶及閑魚購得。這算是我的第一個(gè)無線40%機(jī)械鍵盤的嘗試,所以成本控制得較低。這個(gè)完成之后的下一步就是做一個(gè)更窄邊框更輕薄的無線40%機(jī)械鍵盤,40%這個(gè)尺寸在tmk固件的配合下我日用起來是毫無壓力的。
名稱數(shù)量價(jià)格
亞克力夾心外殼(閑魚)133元
MKC金屬腳墊(淘寶)220元
櫻桃軸(39顆茶軸、1顆青軸)4080元
衛(wèi)星軸6.25x(淘寶)110元
羅技K230無線鍵盤(京東)189元
ARDUINO USB Host Shield (淘寶)144元
Arduino Leonardo R3(淘寶)124元
松下2032電池(天貓)511元

除開鍵帽后花費(fèi)大致如上再加上郵費(fèi)若干,除了殼我買到的價(jià)格較低一點(diǎn)外,其他列出的都是正常價(jià)。上面價(jià)格并沒有包含鍵帽,鍵帽的價(jià)格不具有參考性,因?yàn)樗梢韵碌綆资系竭^千。

然后說說,為什么選擇使用優(yōu)聯(lián)呢?原因之一是我不是搞開發(fā)的,做藍(lán)牙鍵盤我根本不會(huì),先前的BLE60其實(shí)在編程功能以及續(xù)航上(日常使用兩到三周)都比較滿意了,但是我做不出那樣的產(chǎn)品。另外,優(yōu)聯(lián)相比藍(lán)牙也還是有幾個(gè)好處的:
1是搞干擾能力強(qiáng)于藍(lán)牙;
2是續(xù)航超強(qiáng),兩節(jié)AAA電池用一到兩年;
3是鍵盤喚醒速度比藍(lán)牙快,從節(jié)能休眠狀態(tài)中喚醒幾乎感覺不到明顯延遲。

關(guān)于優(yōu)聯(lián)飛線,網(wǎng)上搜索“優(yōu)聯(lián) 飛線”能找到不少的帖子和教程,都得飛成下面這樣,而且一邊飛還要注意時(shí)不時(shí)測(cè)試有沒有線接錯(cuò)了。(以下圖片來自網(wǎng)絡(luò))
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

然而有了DIY有線機(jī)械鍵盤的經(jīng)驗(yàn),直接連接標(biāo)準(zhǔn)矩陣的話,是這樣的,看上去簡(jiǎn)潔多了。有興趣的可以看看國外這個(gè)教程(地址直通)。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

因?yàn)?0鍵盤,如果不支持按鍵編程,是根本沒辦法正常用的,那還怎么讓人輸數(shù)字,怎么讓人輸符號(hào)了。然而,羅技的優(yōu)聯(lián)主控,并不能進(jìn)行全鍵盤按鍵編程,雖然用按鍵增強(qiáng)軟件能實(shí)現(xiàn)部分功能(比如ahk),但那并不是我想到的。因此介紹一個(gè)重要物品——USB to USB Keyboard Converter(github地址geekhack地址)。
簡(jiǎn)單來說,這個(gè)轉(zhuǎn)換器的原理就是獲取usb鍵盤輸入它的按鍵值,再輸出新的值到PC上,因此用它可以實(shí)現(xiàn)tmk固件的各種高級(jí)功能。geekhac上有作者銷售的成品,也有自己制作的方法。我這個(gè)是先前做的,制作最簡(jiǎn)單,就是Arduino Leonardo R3和ARDUINO USB Host Shield 疊起來就行了。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

上面這個(gè)體積是比較大了一點(diǎn),還有一個(gè)比較小的組合方式,用Pro Micro或者Teensy加上mini host shield,體積就會(huì)減小到如下圖所示。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

當(dāng)然買作者h(yuǎn)asu的成品會(huì)更小,只是價(jià)格較貴,50刀,郵費(fèi)8刀。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

簡(jiǎn)單介紹完USB to USB keyboard converter后,接著繼續(xù),這次用的是羅技k230的主控,對(duì)于要使用的主控,最先應(yīng)該測(cè)出該主控的按鍵矩陣,k230和k270網(wǎng)上都有現(xiàn)成的,k230的如下(感謝Luckybird929)。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

我將其整理成表格的形式如下,方便用我自己的方式飛線。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

然后這次使用的是jd40的布局,總共40個(gè)鍵,四排的按鍵數(shù)依次為12 11 11 6。此處的作法就是我所用方法的關(guān)鍵了,我只保證每個(gè)按鍵都觸發(fā)而不用管它是否對(duì)應(yīng)。因此,我從k230的矩陣中選擇了四列,如下圖所示,藍(lán)字為k230優(yōu)聯(lián)主控的接口以及對(duì)應(yīng)按鍵,紅色為之后要重映射第0層大致的按鍵。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

講到這里大概理解我做了什么吧。
小結(jié)一下:
1.簡(jiǎn)化優(yōu)聯(lián)飛線。
2.使用USB to USB keyboard converter從usb接收端進(jìn)行按鍵編程。



[  Part 2.焊接鍵盤  ]
在焊接前第一步,我先把外殼的邊框給打磨了,亞克力外殼的邊框切割痕跡比較明顯,我是略微有點(diǎn)不能接受的。下圖是打磨前的。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤
然后是打磨后的。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

因?yàn)闆]有使用PCB,所以將軸直接固定在上殼同時(shí)也是定位板上,這次使用的是茶軸,空格為青軸,啪啪啪的青軸用在空格上,用來保持打字時(shí)的節(jié)奏。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

背面每個(gè)軸再用熱熔膠固定一下,因?yàn)檫@個(gè)定位板是可開軸蓋的設(shè)計(jì),所以熱熔膠固定時(shí)只固定了上下兩個(gè)位置。不用擔(dān)心不牢固,我已經(jīng)插拔多次鍵帽,沒有把軸拔出來過。飛線的連接方式可以參考Part 1里給出的國外玩家寫的教程,這時(shí)需要注意的是二極管的方向,連接前測(cè)試好,對(duì)于k230的主控,二極管黑色端接1、2、3、4這邊,紅色接10、11、12、13這些。接二極管主要是為了防止按鍵沖突,這樣做到了全鍵盤任意6鍵無沖。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

空格鍵需要一組6.25x的衛(wèi)星軸,我是拿一個(gè)廢鍵盤的PCB切下一小部分,再打孔固定衛(wèi)星軸的。如果是自己做外殼,還是建議使用定位板衛(wèi)星軸或平衡桿。前面行線上已經(jīng)二極管連好,現(xiàn)在接好列線,我用的OK單芯飛線,別用網(wǎng)線,太硬了超難用。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

接下來,按Part 1里給出的圖,將行線和列線都連接到K230的優(yōu)聯(lián)主控上對(duì)應(yīng)的針腳,同時(shí)電池要用的線也接好。這個(gè)外殼比較薄,所以使用CR2032電池來供電,根據(jù)另外一個(gè)飛線優(yōu)聯(lián)小伙伴的使用情況(他是104鍵盤盤絲洞式飛線),幾毛錢一顆的雜牌2032也堅(jiān)持了2個(gè)月。這里故意將線留長(zhǎng)了一些,萬一以后哪個(gè)軸有問題時(shí)有足夠的空間將主控提起來,然后換軸。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

底部貼上防滑腳墊,前方用了兩個(gè)mkc金屬腳墊來讓鍵盤使用時(shí)有一定的斜度。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

還有底殼上開了一個(gè)小孔,正好對(duì)應(yīng)在優(yōu)聯(lián)主控開關(guān)的位置。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

這下鍵盤就組裝完了,把接收器直接插電腦上試試,所有按鍵都是觸發(fā)的,當(dāng)然并沒有和鍵盤上按鍵位置對(duì)應(yīng)上,按鍵會(huì)在Part 3里再解決。


最終再裝上鍵帽后,效果圖如下。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤


[  Part 3.編譯固件&修改布局  ]
對(duì)于軟件或硬件開發(fā),我的經(jīng)驗(yàn)是0,所以下面的過程只是按我的理解與方法來的,有不正規(guī)的還請(qǐng)程序猿大大包涵,有錯(cuò)誤的也請(qǐng)指正。不會(huì)編程的照做也可以,本身并不需要多少編程知識(shí),后面的改布局,依葫蘆畫瓢改就是了。

首先是搭建編譯環(huán)境,我的操作系統(tǒng)是win10,不想安裝Linux,因此在windows下首先安裝cygwin。
1.安裝時(shí)選擇了安裝Devel和Shell下的所有組件,其他基本是默認(rèn)。
2.安裝dfu-programmer,安裝方法是按照github上給的Linux下安裝的方法進(jìn)行編譯與安裝。地址直達(dá):https://github.com/dfu-programmer/dfu-programmer
3.安裝aVR8-gnu-toolchain-installer-3.5.0.84-win32.any.x86,這是從官方下載的,下載完解壓后,復(fù)制到cygwin文件夾里。
4.嘗試編譯USB to USB keyboard converter使用的固件,這個(gè)在Part 1里給出的github以及geekhack的網(wǎng)址里都有介紹,如下:
Build firmware
--------------
    $ git clone git://github.com/tmk/tmk_keyboard.git
    $ cd tmk_keyboard
    $ git submodule init
    $ git submodule update
    $ cd converter/usb_usb
    $ make
如果編譯不成功,根據(jù)錯(cuò)誤提示補(bǔ)全cygwin的組件。
5.將生成的hex刷入,win下使用的arduloader來刷的,這個(gè)win下刷hex的工具足夠的傻瓜和簡(jiǎn)單。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

以上步驟完成,測(cè)試USB to USB keyboard converter是正常使用的,那就ok。下面才開始編譯適用于本貼DIY的無線40用的固件。
用記事本打開tmk_keyboard\converter\usb_usb\keymap_common.h看看,會(huì)看到如下:
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

這個(gè)排列看上去挺眼熟的,對(duì)吧。它就是一個(gè)標(biāo)準(zhǔn)104鍵的按鍵布局,為了后面更加方便進(jìn)行修改,把這個(gè)布局改成40了。根據(jù)上面圖片提供的按鍵值,40的話就應(yīng)該如下圖所示。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

再依照上圖修改keymap_common.h文件,得到如下結(jié)果。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

接下來就是利用kle(Keyboard Layout Editor)和tkg來生成按鍵布局的源碼了,這方面可以看看我寫過的一個(gè)教程:PDF的百度網(wǎng)盤地址。
我用的是三層布局,按鍵如下:
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

因?yàn)槭莏d40布局,而amj40也是這個(gè)布局,所以tkg里直接選amj40。然后將raw data復(fù)制過去,再設(shè)置好各個(gè)fn的功能。之后點(diǎn)擊“下載.c文件“。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

將下載回來的.c文件重命名一下,比如我改為了keymap_yang.c,再移到tmk_keyboard\converter\usb_usb\目錄。這個(gè)文件目前是不能直接使用的,還需要做一些修改。對(duì)照一個(gè)該目錄下的其他幾個(gè)keymap*.c就會(huì)知道怎么改了。大致如下,紅框內(nèi)的內(nèi)容刪除,藍(lán)框內(nèi)的稍微修改一下。
教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

最終的結(jié)果就是下圖這樣的。


現(xiàn)在可以開始編譯了,因?yàn)槲蚁惹爸孛藶閗eymap_yang.c,所以編譯的時(shí)候使用命令為
make KEYMAP=yang
編譯成功后得到usb_usb.hex,刷入U(xiǎn)SB to USB keyboard converter,一切工作正常。
上面通過kle及tkg來完成,當(dāng)然也可以直接編輯keymap*.c這個(gè)文件,多對(duì)照看看就知道它是怎么樣的格式以及各個(gè)按鍵的寫法了,只是我覺得kle看起來更直觀一些。

小結(jié):可以說USB to USB keyboard converter是本文的關(guān)鍵,只要自己會(huì)搭建環(huán)境編譯固件了,那么就不存在難度了。


[  Part 4.總結(jié)  ]
本來只是想分享一下這次制作的無線優(yōu)聯(lián)40鍵盤的,結(jié)果寫得較多就干脆寫成教程了。
USB to USB keyboard converter是個(gè)好東西,事實(shí)上除了用來飛線40外,像60鍵盤也可以通過此方法來飛線成無線鍵盤,并且支持編程。甚至是想給普通的無線鍵盤或者usb鍵盤使用tmk固件功能,也可以通過它來實(shí)現(xiàn)。
雖然說自己沒有能力去開發(fā)一個(gè)無線鍵盤主控,但是,利用本文的方法還是制作出了自己想要的鍵盤,我還是很滿意的。而且,這個(gè)鍵盤非常非常好用,畢竟優(yōu)聯(lián)本身已經(jīng)是一個(gè)相當(dāng)優(yōu)秀的無線方案了。
最終成果是,一把日用主力40%無線機(jī)械鍵盤,重量270g,輕于Surface Pro 3的超薄原裝鍵盤套(約300g)。
下一把的打算是:外殼也自己訂做,上下兩層改用碳纖維,中間夾心夾還是亞克力,但是鍵盤四周的邊框會(huì)收窄到幾近無邊程度。同時(shí),厚度會(huì)再稍微縮減一點(diǎn),布局會(huì)修改一下,采用雙空格。

教你如何DIY一把可編程無線優(yōu)聯(lián)40%的機(jī)械鍵盤

PS:本文轉(zhuǎn)自chiphell

上一篇:Panasonic在CES發(fā)表UHD 4K 播放機(jī)DMP-UB900
下一篇:實(shí)測(cè):分體電視體驗(yàn)上與電視盒子有什么區(qū)別
沙發(fā)
發(fā)表于 2016-1-7 11:02 | 只看該作者 | 來自浙江
帥氣啊 看來是學(xué)不會(huì)了
板凳
發(fā)表于 2016-2-26 23:42 | 只看該作者 | 來自天津
那么如果想改成藍(lán)牙的 需要修改那些地方呢? 而且 藍(lán)牙的可以編程么。。。。
地板
發(fā)表于 2016-2-26 23:44 | 只看該作者 | 來自天津
或者說 有關(guān)于藍(lán)牙開發(fā)的相關(guān)帖子推薦么。。
5#
發(fā)表于 2016-8-22 14:57 | 只看該作者 | 來自遼寧
樓主有做好的 USB to USB keyboard converter 出手么? 求一個(gè)
6#
發(fā)表于 2016-8-22 14:58 | 只看該作者 | 來自遼寧
有出的話 給我郵件 1010777500@qq.com

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-12-24 10:35 , Processed in 0.092835 second(s), 17 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表