0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MM32F0160微控制器的机械键盘

灵动MM32MCU 来源:灵动MM32MCU 2023-04-21 09:11 次阅读

引言

最近,为了配合新品推广,灵动的软件与系统工程SE团队,基于带有 USB 外设模块的 MM32F0160 微控制器,实现了一套低成本带RGB灯效的机械键盘。这里将设计机械键盘的全过程开源出来,感兴趣的开发者,可以向灵动申请 MM32F0160 微控制器的样片,复刻一把自己专属的机械键盘,也可以继续进行二次开发,实现更加有趣的作品。

一些机械设计工作

首先需要选择将要设计机械键盘的配列,也就是按键的布局。这里选用了对程序员最友好的87键配列。使用“键盘布局编辑器”(http://www.keyboard-layout-editor.com/)可以导入标准的配列布局。如图1所示。

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

图1 keyboard-layer-editor在线编辑器

这里可以选择标准104键配列,再删除右侧小键盘的区域,得到标准87键配列的方案,如图2所示。

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

图2 使用keyboard-layer-editor设计标准87键配列

然后,复制Raw data中的代码,到“定位板在线编辑器”(http://builder.swillkb.com/)中,如图3所示。

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

图3定位板在线编辑器

此时,点击页面最下方的 Draw My CAD!!! 按钮,生成定位板的图纸。如图4所示。

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

图4 生成87键配列的定位板

此时,在页面的右上角选择下载 DXF 格式的文件。这个文件可以发送给工厂,用于生产机械键盘的定位板。板子的厚度为1.5mm,在本案中使用了PC材料。

设计PCB

机械键盘的按键部分电路,就是普通的键盘矩阵,但为了避免出现“鬼影按键”(Ghost Key)和实现“全键无冲”,每个按键开关上都需要串联二极管。为了在每个按键下放置一颗RGB彩灯实现灯效,本案使用了 WS2812 级联的电路。

本案使用KiCAD 7.0设计了整个机械键盘电路系统的原理图。

按键矩阵部分的电路如图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的控制电路原理图

这里还引出了扩展插座,包含了 MM32F0160 微控制器的调试信号、按键矩阵行列信号、RGB灯控制信号,可用于扩展更大的键盘配列(例如增加数字小键盘)。

然后将原理图配合合适的封装(可以在KiCAD的元件库中找到Cherry轴的封装),导出生成PCB文件。在PCB文件中,可以导入之前用于生产定位板的 DXF 文件,参照着定位板的位置放置按键和RGB灯。最终完成走线的PCB板效果图,如图8所示。

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

图8 走线完成的机械键盘电路板

设计软件

本案使用的软件来自于灵动的软件与系统工程SE团队开发和维护的MindSDK软件开发平台,可以选择 Mini-F0160 开发板的软件包作为模板,下载已经适配TinyUSB协议栈的 tud_hid_keyboard 样例工程。如图9所示。

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

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

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

图10 托管在Gitee上的机械键盘开源项目

最后,放一张第一个成品样品的照片,如图11所示。

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

图11 基于MM32F0160微控制器的机械键盘成品

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7470

    浏览量

    150951
  • usb
    usb
    +关注

    关注

    60

    文章

    7887

    浏览量

    263841
  • 键盘
    +关注

    关注

    4

    文章

    858

    浏览量

    39564
  • 编辑器
    +关注

    关注

    1

    文章

    800

    浏览量

    31094
  • 机械键盘
    +关注

    关注

    1

    文章

    113

    浏览量

    9042

原文标题:灵动微课堂 (第252讲)|开源项目:基于MM32F0160微控制器的机械键盘

文章出处:【微信号:MindMotion-MMCU,微信公众号:灵动MM32MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于MM32F5微控制器的FSMC接口外接SRAM存储的用法

    MM32F5微控制器基于Arm STAR-MC1微控制器,最高主频可达120MHz,集成了FPU单元和DSP扩展指令集,有不错的算力。
    发表于 07-17 15:08 1401次阅读
    基于<b class='flag-5'>MM32F</b>5<b class='flag-5'>微控制器</b>的FSMC接口外接SRAM存储<b class='flag-5'>器</b>的用法

    使用MM32F0160 FlexCAN-FD接口实现CAN FD通信

    MM32F0160 系列 MCU 具有一个 FlexCAN 模块,该模块遵循 ISO 11898-1 标准、 CAN FD 和 CAN 2.0B 协议规范,不仅兼容传统CAN,还支持CAN FD模式
    的头像 发表于 12-14 16:44 2113次阅读
    使用<b class='flag-5'>MM32F0160</b> FlexCAN-FD接口实现CAN FD通信

    MM32系列微控制器

    MM32系列是灵动微电子于2020年推出的新一代通用MCU平台,旨在为客户提供更高性能、更低功耗、更高可靠性、稳定性和健壮性的微控制器。全新MM32硬件上与经典MM32全兼容,保留了2
    发表于 09-02 08:16

    基于灵动微MM32F0130微控制器的OBD诊断仪系统参考方案

    OBD(车载自动诊断系统)是一种监控车辆运行状态及时反馈异常的系统,主要监控汽车的发动机状态和尾气状况。基于灵动微MM32F0130微控制器的OBD诊断仪系统参考方案,以MM32F0133C6P为主
    发表于 11-29 06:03

    使用低功耗微控制器键盘控制器

    此参考设计介绍了如何实施采用 MSP430 的低成本、高灵活性、模块化键盘控制器。提供 MSP430F5529 和 MSP430G2744 的示例,包含支持性 I2C 和 USB。 微控制器
    发表于 05-10 17:07 2次下载
    使用低功耗<b class='flag-5'>微控制器</b>的<b class='flag-5'>键盘</b><b class='flag-5'>控制器</b>

    基于ARM Cortex M0的微控制器MM32F013x

    基于ARM Cortex M0的微控制器MM32F013x
    发表于 08-26 09:55 22次下载

    M0的32位微控制器MM32F0020的多种应用场合

    灵动微MM32F0020使用高性能的Arm®Cortex®-M0为内核的32位微控制器,ARM®Cortex®-M0是一个32位RISC处理,提供最先进的代码效率,非常适合小内存大小的微控制
    发表于 01-07 16:42 638次阅读

    灵动股份全新MM32F0160系列MCU发布

    灵动股份发布全新MM32F0160 系列 MCU,其搭载 72MHz Arm Cortex-M0 处理,内置 128KB Flash,16KB RAM,配备高速 ADC、USB、CAN-FD
    的头像 发表于 12-20 13:55 719次阅读

    MM32F0160 产品手册(中文版)

    MM32F0160 产品手册(中文版)
    发表于 02-22 18:50 0次下载
    <b class='flag-5'>MM32F0160</b> 产品手册(中文版)

    MM32F0160 产品手册(英文版)

    MM32F0160 产品手册(英文版)
    发表于 02-22 18:51 0次下载
    <b class='flag-5'>MM32F0160</b> 产品手册(英文版)

    MM32F0160 用户手册(中文版)

    MM32F0160 用户手册(中文版)
    发表于 02-22 18:51 0次下载
    <b class='flag-5'>MM32F0160</b> 用户手册(中文版)

    MM32F0160 用户手册(英文版)

    MM32F0160 用户手册(英文版)
    发表于 02-22 18:52 0次下载
    <b class='flag-5'>MM32F0160</b> 用户手册(英文版)

    如何通过Mini-F0160开发板实现USB转三路虚拟串口功能?

    Mini-F0160 开发板搭载 MM32F0160 ,产品内嵌 1 个 USB 控制器,内置 USB PHY,兼容 USB 2.0 全速规范,提供最高 12 Mbps 数据速率,支持设备模式,USB
    的头像 发表于 05-06 15:45 768次阅读
    如何通过Mini-<b class='flag-5'>F0160</b>开发板实现USB转三路虚拟串口功能?

    基于ATmega328P微控制器的Ardu键盘

    电子发烧友网站提供《基于ATmega328P微控制器的Ardu键盘.zip》资料免费下载
    发表于 06-19 14:47 4次下载
    基于ATmega328P<b class='flag-5'>微控制器</b>的Ardu<b class='flag-5'>键盘</b>

    使用MSP430微控制器的USB键盘

    电子发烧友网站提供《使用MSP430微控制器的USB键盘.pdf》资料免费下载
    发表于 10-18 10:35 0次下载
    使用MSP430<b class='flag-5'>微控制器</b>的USB<b class='flag-5'>键盘</b>