0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MM32F0160微控制器的機(jī)械鍵盤(pán)

靈動(dòng)MM32MCU ? 來(lái)源:靈動(dòng)MM32MCU ? 2023-04-21 09:11 ? 次閱讀

引言

最近,為了配合新品推廣,靈動(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所示。

7d35fc92-df6c-11ed-bfe3-dac502259ad0.png

圖1 keyboard-layer-editor在線編輯器

這里可以選擇標(biāo)準(zhǔn)104鍵配列,再刪除右側(cè)小鍵盤(pán)的區(qū)域,得到標(biāo)準(zhǔn)87鍵配列的方案,如圖2所示。

7d49f724-df6c-11ed-bfe3-dac502259ad0.png

圖2 使用keyboard-layer-editor設(shè)計(jì)標(biāo)準(zhǔn)87鍵配列

然后,復(fù)制Raw data中的代碼,到“定位板在線編輯器”(http://builder.swillkb.com/)中,如圖3所示。

7d548fe0-df6c-11ed-bfe3-dac502259ad0.png

圖3定位板在線編輯器

此時(shí),點(diǎn)擊頁(yè)面最下方的 Draw My CAD!!! 按鈕,生成定位板的圖紙。如圖4所示。

7d69cfea-df6c-11ed-bfe3-dac502259ad0.png

圖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所示。

7d7d6988-df6c-11ed-bfe3-dac502259ad0.png

圖5 按鍵矩陣原理圖

RGB彩燈矩陣部分的電路,如圖6所示。

7d99d2e4-df6c-11ed-bfe3-dac502259ad0.png

圖6 RGB彩燈矩陣原理圖

使用MM32F0160微控制器作為核心的控制電路,如圖7所示。

7dbae812-df6c-11ed-bfe3-dac502259ad0.png

圖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所示。

7ddf47ca-df6c-11ed-bfe3-dac502259ad0.png7e1c882e-df6c-11ed-bfe3-dac502259ad0.png

圖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所示。

7e584094-df6c-11ed-bfe3-dac502259ad0.png

圖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等。

技術(shù)資料

這里開(kāi)源基于MM32F0160微控制器的機(jī)械鍵盤(pán)項(xiàng)目的所有資料,托管在Gitee的平臺(tái)上(https://gitee.com/suyong_yq/mechanical-keyboard-diy),如圖10所示。

7e70b124-df6c-11ed-bfe3-dac502259ad0.png

圖10 托管在Gitee上的機(jī)械鍵盤(pán)開(kāi)源項(xiàng)目

最后,放一張第一個(gè)成品樣品的照片,如圖11所示。

7e973d1c-df6c-11ed-bfe3-dac502259ad0.gif

圖11 基于MM32F0160微控制器的機(jī)械鍵盤(pán)成品

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7334

    瀏覽量

    150080
  • usb
    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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于MM32F5微控制器的FSMC接口外接SRAM存儲(chǔ)的用法

    MM32F5微控制器基于Arm STAR-MC1微控制器,最高主頻可達(dá)120MHz,集成了FPU單元和DSP擴(kuò)展指令集,有不錯(cuò)的算力。
    發(fā)表于 07-17 15:08 ?1269次閱讀
    基于<b class='flag-5'>MM32F</b>5<b class='flag-5'>微控制器</b>的FSMC接口外接SRAM存儲(chǔ)<b class='flag-5'>器</b>的用法

    使用MM32F0160 FlexCAN-FD接口實(shí)現(xiàn)CAN FD通信

    MM32F0160 系列 MCU 具有一個(gè) FlexCAN 模塊,該模塊遵循 ISO 11898-1 標(biāo)準(zhǔn)、 CAN FD 和 CAN 2.0B 協(xié)議規(guī)范,不僅兼容傳統(tǒng)CAN,還支持CAN FD模式
    的頭像 發(fā)表于 12-14 16:44 ?1697次閱讀
    使用<b class='flag-5'>MM32F0160</b> FlexCAN-FD接口實(shí)現(xiàn)CAN FD通信

    MM32系列微控制器

    MM32系列是靈動(dòng)微電子于2020年推出的新一代通用MCU平臺(tái),旨在為客戶(hù)提供更高性能、更低功耗、更高可靠性、穩(wěn)定性和健壯性的微控制器。全新MM32硬件上與經(jīng)典MM32全兼容,保留了2
    發(fā)表于 09-02 08:16

    基于靈動(dòng)微MM32F0130微控制器的OBD診斷儀系統(tǒng)參考方案

    OBD(車(chē)載自動(dòng)診斷系統(tǒng))是一種監(jiān)控車(chē)輛運(yùn)行狀態(tài)及時(shí)反饋異常的系統(tǒng),主要監(jiān)控汽車(chē)的發(fā)動(dòng)機(jī)狀態(tài)和尾氣狀況?;陟`動(dòng)微MM32F0130微控制器的OBD診斷儀系統(tǒng)參考方案,以MM32F0133C6P為主
    發(fā)表于 11-29 06:03

    使用低功耗微控制器鍵盤(pán)控制器

    此參考設(shè)計(jì)介紹了如何實(shí)施采用 MSP430 的低成本、高靈活性、模塊化鍵盤(pán)控制器。提供 MSP430F5529 和 MSP430G2744 的示例,包含支持性 I2C 和 USB。 微控制器
    發(fā)表于 05-10 17:07 ?2次下載
    使用低功耗<b class='flag-5'>微控制器</b>的<b class='flag-5'>鍵盤(pán)</b><b class='flag-5'>控制器</b>

    32位微控制器機(jī)械手大戰(zhàn)人類(lèi)

    觀看采用Flexis AC 32位微控制器機(jī)械手如何在曲棍球游戲中戰(zhàn)勝人類(lèi)對(duì)手
    的頭像 發(fā)表于 06-19 14:31 ?2997次閱讀

    基于ARM Cortex M0的微控制器MM32F013x

    基于ARM Cortex M0的微控制器MM32F013x
    發(fā)表于 08-26 09:55 ?22次下載

    M0的32位微控制器MM32F0020的多種應(yīng)用場(chǎng)合

    靈動(dòng)微MM32F0020使用高性能的Arm?Cortex?-M0為內(nèi)核的32位微控制器,ARM?Cortex?-M0是一個(gè)32位RISC處理,提供最先進(jìn)的代碼效率,非常適合小內(nèi)存大小的微控制
    發(fā)表于 01-07 16:42 ?594次閱讀

    靈動(dòng)股份全新MM32F0160系列MCU發(fā)布

    靈動(dòng)股份發(fā)布全新MM32F0160 系列 MCU,其搭載 72MHz Arm Cortex-M0 處理,內(nèi)置 128KB Flash,16KB RAM,配備高速 ADC、USB、CAN-FD
    的頭像 發(fā)表于 12-20 13:55 ?666次閱讀

    MM32F0160 產(chǎn)品手冊(cè)(中文版)

    MM32F0160 產(chǎn)品手冊(cè)(中文版)
    發(fā)表于 02-22 18:50 ?0次下載
    <b class='flag-5'>MM32F0160</b> 產(chǎn)品手冊(cè)(中文版)

    MM32F0160 產(chǎn)品手冊(cè)(英文版)

    MM32F0160 產(chǎn)品手冊(cè)(英文版)
    發(fā)表于 02-22 18:51 ?0次下載
    <b class='flag-5'>MM32F0160</b> 產(chǎn)品手冊(cè)(英文版)

    MM32F0160 用戶(hù)手冊(cè)(中文版)

    MM32F0160 用戶(hù)手冊(cè)(中文版)
    發(fā)表于 02-22 18:51 ?0次下載
    <b class='flag-5'>MM32F0160</b> 用戶(hù)手冊(cè)(中文版)

    MM32F0160 用戶(hù)手冊(cè)(英文版)

    MM32F0160 用戶(hù)手冊(cè)(英文版)
    發(fā)表于 02-22 18:52 ?0次下載
    <b class='flag-5'>MM32F0160</b> 用戶(hù)手冊(cè)(英文版)

    如何通過(guò)Mini-F0160開(kāi)發(fā)板實(shí)現(xiàn)USB轉(zhuǎn)三路虛擬串口功能?

    Mini-F0160 開(kāi)發(fā)板搭載 MM32F0160 ,產(chǎn)品內(nèi)嵌 1 個(gè) USB 控制器,內(nèi)置 USB PHY,兼容 USB 2.0 全速規(guī)范,提供最高 12 Mbps 數(shù)據(jù)速率,支持設(shè)備模式,USB
    的頭像 發(fā)表于 05-06 15:45 ?702次閱讀
    如何通過(guò)Mini-<b class='flag-5'>F0160</b>開(kāi)發(fā)板實(shí)現(xiàn)USB轉(zhuǎn)三路虛擬串口功能?

    基于ATmega328P微控制器的Ardu鍵盤(pán)

    電子發(fā)燒友網(wǎng)站提供《基于ATmega328P微控制器的Ardu鍵盤(pán).zip》資料免費(fèi)下載
    發(fā)表于 06-19 14:47 ?4次下載
    基于ATmega328P<b class='flag-5'>微控制器</b>的Ardu<b class='flag-5'>鍵盤(pán)</b>