鍵盤可以算作pc上最古老的裝置了,它的出現使得人類可以用非常簡單的方法與電腦進行互動。同樣的,由於各種歷史原因,鍵盤也是pc上最複雜,相容性問題最多的裝置之一(類似的還有硬碟,不過從ide到sata的進化過程中,標準明確,相容性問題少多了)。
硬體部分arduino uno , usb host shield 和 hid 藍芽晶元。強調一下這裡使用的是 hid 藍芽晶元,並非普通的藍芽串列埠透傳晶元。關於這個模組可以參考我在【參考1】中的實驗。
硬體連線很簡單,usb host shield插在 arduino上,然後vcc/gnd/tx/rx將arduino 和 hid藍芽模組連線在一起。
原理:首先,為了通用性和程式設計簡單,我們用usb host傳送命令把鍵盤切換到boot protocol 模式下。這樣即使不同的鍵盤,每次發出來的資料也都是統一的格式。然後,我們直接讀取緩衝資料就可以解析出按鍵資訊了。最後,將取下來的按鍵資訊(scancode)按照hid藍芽模組的格式要求通過串列埠送到模組上,主機端就收到了。
上述連線就可以正常工作了,但是為了美觀和提高可靠性,我找到之前買的乙個麵包板shield。
插好之後就是這樣
原理上就是用 arduino 來控制 usb host shield 解析鍵盤資料,隨後將資料按照藍芽模組的格式傳送出去。從接收端的角度來看,整體就是乙個藍芽鍵盤,通過這樣既可實現usb鍵盤對藍芽的轉接。
限於篇幅,具體**請搜尋 「arduino打造usb藍芽鍵盤轉接器」。
特別注意:
1. 因為我們使用的是最簡單的boot protocol,所以如果你的鍵盤上有音量鍵之類的有可能失效;
2. 我不確定是否所有的鍵盤都會支援 boot protocol ,從之前玩usb滑鼠的經驗來看,確實有可能;
3. 供電部分沒有經過優化,不知道電力消耗如何,不確定乙個充電寶能夠工作的時間;
最後講乙個小故事:有一次我去實驗室,發現他們在折騰鍵盤。那是一款帶著音量控制功能的鍵盤。系統測試的時候發現,按一下鍵盤音量鍵之後,螢幕上顯示的音量會跳2格。從原理上說,按下那個鍵之後,鍵盤發出特定的scan code,系統中還有個專門響應這個scan code的程式然後在螢幕上繪製音量指示方塊。蠻有意思的一件事情是:很多人認為大公司有操控**商的能力,**商在大廠面前會唯唯諾諾,這也是高層會有的想法,問題是底層人員未必吃這一套。每次想起這個事情,我都要想起敏感字關於矛盾的辯證法的論證。這個事情就是雙方的下層在不停的扯,更準確的說,是鍵盤廠商,軟體開發商和我們在一起糾纏,鍵盤廠商說同樣的鍵盤在其他人家用起來沒問題,軟體開發商說我的軟體在之前的機型上一直用,我們的人說,少扯淡,趕緊解決,前後乙個多月都沒有搞定…….那時候,組裡剛買了乙個usb邏輯分析儀,我用著感覺很好玩。於是,我就用邏輯分析儀測試了一下鍵盤,測試的結果是,鍵盤發出來的 scan code沒有問題,每次按鍵都是乙個press乙個release,所以真相肯定是寫上位機程式的軟體廠商搞錯了什麼。截圖附帶著資料報一起丟給三方。這是最底層的傳輸,如果依然嘴硬,那只能落下笑柄而已。然後很快軟體廠商就服軟自己去修改了。只是說說我經歷的事情,如果非要說出一些道理的話這個故事是為了說明:usb邏輯分析儀很有用……
就是這樣.
藍芽透傳實驗 藍芽模組主機與從機透傳
這裡面只介紹主機的使用,因為從機預設就是透傳模式 主從藍芽模組通訊是指兩個藍芽模組互相通訊,乙個為主機,乙個為從機,它們相互之間通 信,第乙個模組為從機模組,第二個模組是主機模組 第一步將主機與從機模組上電 並將模組串列埠與 usb轉串或 mcu串列埠連線,注意串列埠線是需要交叉的 連線後開始 at...
鍵盤adb轉usb USB鍵盤轉藍芽鍵盤的裝置
鍵盤可以算作pc上最古老的裝置了,它的出現使得人類可以用非常簡單的方法與電腦進行互動。同樣的,由於各種歷史原因,鍵盤也是pc上最複雜,相容性問題最多的裝置之一 類似的還有硬碟,不過從ide到sata的進化過程中,標準明確,相容性問題少多了 硬體部分arduino uno usb host shiel...
藍芽BLE4 0透傳 智慧型穿戴應用
隨著技術改革公升級和消費觀念公升級,智慧型穿戴產品從過去單一功能向多功能化發展,同時具有更便攜 實用的特點。加入骨感測 人臉識別 地理定位等各種感測器,可以多方位多角度獲取資料資訊。甚至接入語音 體感等人機介面,實現更方便更靈活的互動體驗。智慧型穿戴產品採用的互聯方式主要有nfc wifi 藍芽。n...