引言
最近,為了配合新品推廣,靈動的軟件與系統工程SE團隊,基于帶有 USB 外設模塊的 MM32F0160 微控制器,實現了一套低成本帶RGB燈效的機械鍵盤。這里將設計機械鍵盤的全過程開源出來,感興趣的開發者,可以向靈動申請 MM32F0160 微控制器的樣片,復刻一把自己專屬的機械鍵盤,也可以繼續進行二次開發,實現更加有趣的作品。
一些機械設計工作
首先需要選擇將要設計機械鍵盤的配列,也就是按鍵的布局。這里選用了對程序員最友好的87鍵配列。使用“鍵盤布局編輯器”(http://www.keyboard-layout-editor.com/)可以導入標準的配列布局。如圖1所示。
圖1 keyboard-layer-editor在線編輯器
這里可以選擇標準104鍵配列,再刪除右側小鍵盤的區域,得到標準87鍵配列的方案,如圖2所示。
圖2 使用keyboard-layer-editor設計標準87鍵配列
然后,復制Raw data中的代碼,到“定位板在線編輯器”(http://builder.swillkb.com/)中,如圖3所示。
圖3定位板在線編輯器
此時,點擊頁面最下方的 Draw My CAD!!! 按鈕,生成定位板的圖紙。如圖4所示。
圖4 生成87鍵配列的定位板
此時,在頁面的右上角選擇下載 DXF 格式的文件。這個文件可以發送給工廠,用于生產機械鍵盤的定位板。板子的厚度為1.5mm,在本案中使用了PC材料。
設計PCB
機械鍵盤的按鍵部分電路,就是普通的鍵盤矩陣,但為了避免出現“鬼影按鍵”(Ghost Key)和實現“全鍵無沖”,每個按鍵開關上都需要串聯二極管。為了在每個按鍵下放置一顆RGB彩燈實現燈效,本案使用了 WS2812 級聯的電路。
本案使用KiCAD 7.0設計了整個機械鍵盤電路系統的原理圖。
按鍵矩陣部分的電路如圖5所示。
圖5 按鍵矩陣原理圖
RGB彩燈矩陣部分的電路,如圖6所示。
圖6 RGB彩燈矩陣原理圖
使用MM32F0160微控制器作為核心的控制電路,如圖7所示。
圖7 基于MM32F0160的控制電路原理圖
這里還引出了擴展插座,包含了 MM32F0160 微控制器的調試信號、按鍵矩陣行列信號、RGB燈控制信號,可用于擴展更大的鍵盤配列(例如增加數字小鍵盤)。
然后將原理圖配合合適的封裝(可以在KiCAD的元件庫中找到Cherry軸的封裝),導出生成PCB文件。在PCB文件中,可以導入之前用于生產定位板的 DXF 文件,參照著定位板的位置放置按鍵和RGB燈。最終完成走線的PCB板效果圖,如圖8所示。
圖8 走線完成的機械鍵盤電路板
設計軟件
本案使用的軟件來自于靈動的軟件與系統工程SE團隊開發和維護的MindSDK軟件開發平臺,可以選擇 Mini-F0160 開發板的軟件包作為模板,下載已經適配TinyUSB協議棧的 tud_hid_keyboard 樣例工程。如圖9所示。
圖9 MindSDK中的tud_hid_keyboard樣例工程
之后再進行改裝,適配使用 GPIO 掃描按鍵矩陣,并增加 DMA+SPI 的方式控制 WS2812 燈帶的功能(可參考MindSDK中的 ws2812_spi_dma 樣例工程)。
特別注意,本案使用Keil MDK編譯生成可執行文件,除了需要安裝Keil MDK集成開發環境外,還需要開發者從靈動官網下載 MM32F0160 的設備支持包(https://www.mindmotion.com.cn/support/software/keil_pack/),以及需要準備一個適配Arm核微控制器的調試器,例如JLink或者DAPLink等。
這里開源基于MM32F0160微控制器的機械鍵盤項目的所有資料,托管在Gitee的平臺上(https://gitee.com/suyong_yq/mechanical-keyboard-diy),如圖10所示。
圖10 托管在Gitee上的機械鍵盤開源項目
最后,放一張第一個成品樣品的照片,如圖11所示。
圖11 基于MM32F0160微控制器的機械鍵盤成品
審核編輯:湯梓紅
-
微控制器
+關注
關注
48文章
7552瀏覽量
151423 -
usb
+關注
關注
60文章
7945瀏覽量
264658 -
鍵盤
+關注
關注
4文章
859瀏覽量
39670 -
編輯器
+關注
關注
1文章
806瀏覽量
31172 -
機械鍵盤
+關注
關注
1文章
113瀏覽量
9051
原文標題:靈動微課堂 (第252講)|開源項目:基于MM32F0160微控制器的機械鍵盤
文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論