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