如何把一個 usb 鍵盤改造成藍牙鍵盤?
如果可以,如何分步驟來做?如果不行,為什麼?
相關問題:
如何從零開始做一個USB鍵盤?
如何從零開始做一個藍牙鍵盤?
最近在百忙之中抽空把我的 HHKB 改裝成了藍牙鍵盤,在這裡提供一個思路。
首先你要了解你鍵盤的控制晶元的工作原理,是否可以拆卸替換。如我的 HHKB 的控制電路和按鍵矩陣電路是分開的兩塊電路板,控制電路板可以直接拆卸,這種情況改裝起來最為容易。
接著你要根據你鍵盤內部空間大小決定使用的模塊大小。像我的 HHKB 去掉控制電路之後裡面的可用空間非常充裕,所以我能夠選擇功能豐富的集成模塊。我的主控電路用的是 Teensy 3.2,藍牙模塊用的是已經編譯好鍵盤 HID Profile 的 Bluefruit EZ-Key,然後還可以加上一塊 2500 mAh 的鋰電池仍然綽綽有餘。
參照 Hasu 的 tmk_keyboard AVR 項目生成 Firmware。由於我使用的是 ARM 架構,我把他的核心代碼摘抄重寫了一下,編譯到了 Teensy 3.2 上(項目地址 rixtox/hhkb_teensy 寫的不好請輕噴)
整個改裝過程難度並不大,主要是要有耐心,因為要嘗試別人沒有用過的架構,所以我前後更換過好多部件,對我的設計進行各種調整。在麵包板上進行開發、測試、優化過後才進行拼裝。
以下是我現階段成果用到的部件:
主控制晶元 - Teensy 3.2
預編程藍牙模塊 - Bluefruit EZ-Key - 12 Input Bluetooth HID Keyboard Controller - v1.2
鋰電池 - Lithium Ion Polymer Battery - 3.7v 2500mAh
充電控制電路 - Adafruit Pro Trinket LiIon/LiPoly Backpack Add-On
矩陣電路連接頭 - B13B-ZR(LF)(SN) JST Sales America Inc.
由於這些都是非常集成的模塊,有不少多餘的功能,也有不理想的實現沒法解決。比如這個藍牙模塊的固件是寫死的,不能更改,不能通過 Serial 進行連接重置等等。還有那個充電線路不適合直接給 Teensy 充電之類。所以我打算以後有時間可以參照 Hasu 的 HHKB Alt controller 設計一個完整的控制電路,對每一個模塊進行更底層的控制。其次我也打算使用 Bluetooth 4.2 模塊,實現多宿主同時連接,快速切換等等的功能。
如果有興趣一起進行今後的改良工作,PM 我。
官方已經發佈了藍牙版 HHKB,有興趣的可以去看看。
買一個
ATEN的USB轉藍牙鍵盤滑鼠切換器CS533 Tap
補充一下: 轉接的理由,一般是想用機械鍵盤來接ios android吧
我找到了一個app,不過國內應用市場貌似沒有,google play 上有:傳統USB有線鍵盤變身藍牙鍵盤
成本比較高的 我可以給你一個建議
改用 wifi, 用開發板比如 arduino Yun之類帶 wifi 模塊+USB 的
只需要把鍵盤插在 arduino 上然後arduino通過 wifi 信號通過網路把開發板上的usb接受到的信號轉發到PC的 dummy USB上.
好處是 通用能力很強 什麼印表機 鍵盤 滑鼠都不需要改動直接插上就變無線. 也不需要像現在最高票數那樣接那麼多的電路元件, 在 Linux 下寫點代碼就可以. 而且 wifi 比藍牙穩定的多. 我當時找了類似的項目, 稍微修改一下. 交叉編譯進 arduino, 幾個小時的事情
缺點是 Arduino 需要供電或者綁電池, 但藍牙也需要的, 區別不大.
順便吐槽一下 你們是不是需要這玩意 http://www.amazon.co.jp/dp/B00LUBYM9I
或者這個 http://www.amazon.co.jp/dp/B00PI7ZDOI
還有http://www.amazon.co.jp/dp/B00EE48A78
轉載一個低成本(xx元)的方案:
Arduino打造USB藍牙鍵盤轉接器
本來我有這個計劃,按照我原本的設想只要 把usb鍵盤的輸出方式替換為藍牙模塊就好
藍牙模塊也有,修改電路板什麼的應該不是問題……手邊也有一個磕壞外殼的鍵盤
在我信心滿滿的以為硬體系統解決了也就不是什麼難題的時候
突然想到
藍牙協議要怎麼修改?全鍵盤這麼多個按鍵全編碼完鍵值的需要多少時間?何況還有組合鍵的鍵值問題……
這幾步最耗時間,難度最高的地方正是高票答案里的兩句話……
原來做紅外編碼和藍牙編碼的時候,只是對很少的操作鍵做過編碼,都經常出現響應問題……
而且網上的代碼由於不能和你的鍵盤的鍵值契合等等,遇到問題說不定還要逐行修改,感覺和重新寫一遍差不多……(因為不同的鍵盤,不同的藍牙模塊……除非你照著網上的教程里的型號挨個買回來,那基本和你直接買一個藍牙鍵盤差不多了……這就變成了實驗性動手操作,而失去了改裝的意義……)
何況還面臨這鍵盤藍牙協議的問題……
我想了一下感覺整個頭都大了……
遂放棄……
勸各位三思,沒有良好的代碼功底不要輕易嘗試……
——————————————
用Arduino和樹莓pi現在有相應的無線通訊(藍牙 wifi)模塊,有固定的framework和串口協議,但前提是你得深入學習和了解,但是底層傳輸協議能不能匹配上還得考慮你的鍵盤協議和驅動。如果底層協議出了問題,你是不能修改的…
並且 一個有無線通訊模塊的Arduino或樹莓pi的板子,並不比一個不錯的藍牙鍵盤便宜……首先 USB鍵盤的硬體完全不能用了 只能用鍵芯和外殼(電路板去掉)
原因: 功耗。 如果是在USB介面處接一個USB轉接藍牙的工具,請問你是用有線供電了還是有線? 別告訴我電池你能接受 除非你想一天一充電。既然用有線供電,好吧 你的藍牙用有線供電。。。。。
其次 買個藍牙鍵盤模塊,按照原理圖自己layout,自己寫程序。
原因:為什麼自己layout自己寫程序? 鍵芯不同 鍵盤絲印不同 程序不同原理圖也不同。
最後 恭喜你 成功開發了一個藍牙鍵盤。
所以無解 無法改。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~補充:2014年7月15日 14:48:17
@Jake Yan 看了這位仁兄的補充,不得不說有一定道理。
因為沒考慮到機械鍵盤的高端體驗感。
當你擁有一個800RMB以上的機械鍵盤的時候 是可以接受改裝藍牙鍵盤帶來的超大電池(比如類似充電寶一樣大的上1000MAH的電池)。
不過有一點得留意,報告率可能會衝突,藍牙鍵盤不同方案可以容許的報告率有很大區別,大多主流的報告率是130左右的容許度,而且無法實時發送(相對機械鍵盤之類),不知道遇到按鍵這類非實時堵塞的時候藍牙轉發部分的軟體怎麼處理才好。
反正實時特性會有一定降低。
HHKB是有EneBRICK藍牙連接外設的連接電腦手機什麼的都適合,除了價格比較感人。
(有一個全新的出手,自己廣告一波)
USB轉藍牙是最方便的方法,但是USB主控一直工作不會休眠,所以我認為USB方案是行不通的,耗電問題無解。必須從軸板排線跳過主控直接藍牙,才能實現自動休眠和喚醒。2402應該是可以直接機械軸的矩陣,但是需要找到編程器或者燒錄器或者開發方案才行。還有個沒有辦法的辦法,就是用鍵位轉換軟體轉,這樣的話換電腦就要重新設置。
徹底的外行愛好者,痴迷於8090年代機械鍵盤的外形設計,我一在用usb介面的自定鍵位的主控板改造各種老鍵盤使用。改成藍牙也是一直在研究的。最近有一個思路清大家指教一下。BCM2042和20730是我現在了解到的博通針對低成本藍牙鍵盤開發的晶元,集成了鍵盤主控的矩陣掃描功能,貌似就是說只要接入了相應的針腳就可以了。淘寶上有賣相應的模塊,貌似接上電池,開關,鏈接矩陣就可以了。我買了一個準備實驗一下。但是我買的模塊中寫好的固件是一種用於ipad之的超薄藍牙鍵盤,寫入的鍵位和待改的鍵盤矩陣肯定不一樣的。問題在於,是否有辦法將這個模塊連接電腦用相應的軟體編輯修改矩陣部分的代碼來配合現有鍵盤的pcb線路而不需要飛線個個鍵位。如果可以修改,那麼應該如何連接電腦,有線還是無線?有線的話需要什麼設備或者材料?代碼修改需要用到什麼樣的軟體。請大家指教。謝謝
推薦閱讀:
※長得比實際年齡年輕是怎樣的體驗?還有救么…?
※如果模擬火星環境,培育植物慢慢適應它。有沒有可能把火星改造成人類適宜的殖民星球?