【经验】灵动微电子MM32F0160微控制器开源项目:如何实现一套低成本带RGB灯效的机械键盘
最近,为了配合新品推广,灵动的软件与系统工程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所示。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由ll转载自灵动MM32MCU公众号,原文标题为:灵动微课堂 (第252讲)|开源项目:基于MM32F0160微控制器的机械键盘,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关研发服务和供应服务
相关推荐
灵动微电子MM32F0160系列MCU FlexCAN-FD通信应用指南
MM32F0160系列MCU具有一个 FlexCAN 模块,该模块遵循 ISO 11898-1 标准、 CAN FD 和 CAN 2.0B 协议规范,不仅兼容传统CAN,还支持CAN FD模式。本章节初步学习使用MM32F0160 FlexCAN-FD接口实现CAN FD通信,相关例程参考灵动官网的LibSamples或在此基础上修改。
设计经验 发布时间 : 2024-01-07
使用灵动MM32F5270 MCU UART配置实现LIN通信
本文主要简述MM32F5270 UART是如何实现LIN通信的。从LIN驱动程序、 主机程序、从机程序和验证等方面来讲代码实现。
设计经验 发布时间 : 2024-02-23
基于MM32F5270 MCU初步学习移植FreeRTOS
FreeRTOS是一个RTOS类的嵌入式实时操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。本系列微课堂基于MM32F5270 MCU初步学习使用FreeRTOS开发。
设计经验 发布时间 : 2024-08-30
New Milestone! Following the Success of MM32G0001, MindMotion Launches the Next-Level, High-Value MCU – MM32F0120
MindMotion Microelectronics is excited to announce the official launch of its next-level MCU, the MM32F0120. In 2023, MindMotion‘s entry-level MCU, MM32G0001, made a huge impact with its cost-performance ratio, comparable to or even surpassing 8/16-bit MCUs, earning high praise in the market.
产品 发布时间 : 2024-09-14
【IC】灵动发布全新入门级32位MCU MM32G0001系列,内置时钟全温度范围内偏差不超过±2%
灵动股份推出全新超值型MM32G0001系列MCU。2023年初,灵动首次发布了其主打高性价比的MM32G系列,目前已陆续推出了G0140,G0160和G5330系列产品。为进一步丰富MM32G系列产品组合,灵动和上下游合作伙伴通力合作,打造出全新入门级超值型MM32G0001系列MCU。
新产品 发布时间 : 2023-07-01
MindMotion(灵动微)MM32系列32位MCU选型指南
描述- 灵动微电子成立于2011年,是中国本土领先的通用32位MCU产品及解决方案供应商。灵动微电子的 MCU 产品以 MM32 为标识,基于 Arm Cortex-M 系列内核,自主研发软硬件和生态系统。
型号- MM32G0163D4PV,MM32L0XX,MM32F0144C6PM,MM32F5230,MM32SPIN580C,MM32G0020,MM32G0140,MM32L073PF,MM32F0133C4Q,MM32SPIN080GN,MM32SPIN560CM,MM32SPIN023C,MM32F0133C4P,MM32F5287L8PV,MM32SPIN533AM,MM32F0162D7P,MM32F0121C6P,MM32F0163D4Q,MM32SPIN0230,MM32SPIN080C,MM32F0141C1T,MM32L062NT,MM32F0020B1N,MM32F0144C1TV,MM32F5330,MM32G0001,MM32G0120,MM32F0144C1TM,MM32F0163D7P,MM32SPIN030CN,MM32G0121C1TV,MM32F0010A1TV,MM32SPIN07PF,MM32SPIN05PFOP,MM32SPIN0230B1TV,MM32SPIN37PSD,MM32G0001A6T,MM32F3270,MM32F0121C4P,MM32F0121C4Q,MM32F5277E9PV,MM32F5287L9PV,MM32F0163D6P,MM32F5333D6PV,MM32SPIN0280DAPV,MM32F0121C4N,MM32SPIN080G,MM32SPIN560,MM32F0144C4PM,MM32F0144C4PV,MM32F5280,MM32SPIN06NT,MM32F0140,MM32SPIN560C,MM32F0020,MM32G5333D6QV,MM32F0162D4Q,MM32F0050C1TV,MM32F0273D6P,MM32SPIN0230B3NV,MM32SPIN06PF,MM32G0144C4QV,MM32SPIN0280,MM32L052NT,MM32F5270,MM32F0144C4P,MM32F5277E8PV,MM32F031C6T6,MM32F0130,MM32F0010,MM32F0020B1TV,MM32F5333D7PV,MM32G0144C4PV,MM32SPIN080CN,MM32F0144C4Q,MM32SPIN060G,MM32L0136C7P,MM32F0133C7P,MM32SPIN05NW,MM32F5331D3NV,MM32F0040B1T,MM32SPIN05NT,MM32G0001A6T1V,MM32SPIN06PT,MM32F0120,MM32F0162D6P,MM32F5331D3NM,MM32F003NW,MM32G0160,MM32SPIN27NF,MM32F0163D4QM,MM32SPIN05PF,MM32F031,MM32F3273G6P,MM32F0163D4QV,MM32L0136B6P,MM32G0001A1TV,MM32F0133C6P,MM32SPIN0280D7PV,MM32F5277E7PV,MM32F0144C6P,MM32SPIN222C,MM32F0144C6PV,MM32F0010A6T,MM32G0001A1T,MM32F3273G7P,MM32L0130,MM32G0001A1N,MM32SPIN05PT,MM32G0121C4PV,MM32F0010A1T,MM32F5233D7PV,MM32SPIN27PF,MM32F0010A1N,MM32G5330,MM32SPINEBK,MM32SPIN07,MM32F3273G8P,MM32SPIN160C,MM32SPIN06,MM32F0040B1N,MM32SPIN0230B1NV,MM32L0136C6P,MM32SPIN05,MM32L0020,MM32F0050,MM32SPIN0280D6PV,MM32SPIN533,MM32F031K6U6,MM32F3273G9P,MM32F0163D6PM,MM32SPIN040C,MM32G0020B1T,MM32F0163D6PV,MM32F003,MM32SPIN37,MM32G0020B1N,MM32F0273D8P,MM32F0160,MM32L0136C3T,MM32F0040,MM32G0001A1NV,MM32SPIN0280D6QV,MM32F0144C1T,MM32F103CBT6,MM32F5233D6PV,MM32F0144C4QM,MM32F3273E6P,MM32SPIN27PQ,MM32SPIN27PS,MM32SPIN27PT,MM32L0136C4N,MM32SPIN27,MM32F0020B1NV,MM32F0270,MM32G0121C4QV,MM32F031F6U6,MM32F0273D7P,MM32F003TW,MM32G0144C1TV,MM32F3273E7P,MM32F0141B1T,MM32G0163D6PV,MM32F0163D7PM,MM32SPIN030C,MM32F0163D7PV,MM32F0131C7P,MM32F103,MM32SPIN05TW,MM32F031Y6Y6,MM32F0141C4P,MM32F0141C4Q,MM32F0141C4N,MM32F031K6T6,MM32F0010A1NV,MM32F0131C6P,MM32SPIN422C,MM32F0020B1T,MM32SPIN0280D4PV,MM32L0020B1T,MM32F103RBT6,MM32L0020B1N,MM32F031F6P6,MM32F0121C1N,MM32F0050C1NV,MM32F5333D4QM,MM32G0001A6TV,MM32SPIN360C,MM32,MM32F5333D4QV,MM32F0141C6P,MM32F0141B4P,MM32F0131C4P,MM32F0131C4Q,MM32SPIN0230B3TV,MM32SPIN533A,MM32SPIN033A,MM32F5287L7PV,MM32F5233D4QV
MM32G0001 基于 Arm® Cortex®-M0 内核的 32 位微控制器数据手册
型号- MM32G0001A1T,MM32G0001A6T1V,MM32G0001,MM32G0001A1NV,MM32G0001A6TV,MM32G0001A6T,MM32G0001A6T1,MM32G0001A1TV,MM32G0001A1N
基于MM32F5270 MCU的Ethernet实现LwIP协议栈移植
LwIP是轻量化的TCP/IP协议,由瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。本文基于搭载了MM32F5277E9P MCU的开发板 PLUS-F5270 V2.0进行实现LwIP协议栈移植。
设计经验 发布时间 : 2024-08-30
基于灵动MM32F0130微控制器的智能插排方案,实现远程开关控制、定时开关、随时了解家电设备的使用状况
智能插座又可以称为WIFI插座,在普通插座的功能基础上延伸了许多功能,如防雷击,防短路,防过载,防漏电,配合智能手机的APP应用,可以实现远程开关控制、定时开关、随时了解家电设备的使用状况。基于灵动MM32F0130微控制器的插排,具有以下特点:-内置Timer进行解码红外输入-通过串口与云端连接,进行远程控制,以及电量监控等-通过I2C与计量芯片通讯,进行异常检测,过流,过/欠压等保护
应用方案 发布时间 : 2024-03-13
灵动MM32SPIN⸺专注电机控制的MCU和SOC
型号- SPIN080G,MM32SPIN030C,SPIN360C,MM32SPIN06NT,SPIN033A,SPIN590G,MM32SPIN560C,MM32SPIN05PT,MM32SPIN580C,MM32SPIN05TW,SPIN0260,MM32SPIN27PF,MM32SPINEBK,MM32SPIN0230B3NV,MM32SPIN080GN,MM32SPIN06PF,SPIN02XX,MM32SPIN07,MM32SPIN0280,MM32SPIN160C,SPIN533A,MM32SPIN,MM32SPIN560CM,SPIN27,MM32SPIN023C,MM32SPIN06,MM32SPIN05,MM32SPIN0230B1NV,MM32SPIN422C,MM32SPIN0280D4PV,MM32SPIN0280D6PV,SPIN060G,SPIN0250,SPIN080C,SPIN222C,SPIN0290,SPIN040C,MM32SPIN080CN,MM32SPIN0230,MM32SPIN060G,MM32SPIN080C,SPIN0230,MM32SPIN040C,SPIN56XX,MM32SPIN37,MM32SPIN05NW,SPIN580C,SPIN160C,SPIN023C,MM32SPIN05NT,MM32SPIN06PT,MM32SPIN0280D6QV,MM32SPIN360C,SPIN0280,SPIN495C,MM32SPIN030CN,MM32SPIN27NF,SPIN560C,SPIN05XX,MM32SPIN07PF,SPIN07,SPIN06,MM32SPIN05PF,MM32SPIN27PQ,MM32SPIN0230B3TV,SPIN5630,MM32SPIN05PFOP,MM32SPIN27PS,MM32SPIN27PT,MM32SPIN0230B1TV,MM32SPIN37PSD,SPIN05,MM32SPIN533A,MM32SPIN033A,MM32SPIN27,MM32SPIN0280D7PV,MM32SPIN222C,SPIN080X,SPIN422C,MM32SPIN0280DAPV,SPIN030C,MM32SPIN080G
MM32F0140 基于 Arm® Cortex®-M0 内核的 32 位微控制器数据手册
型号- MM32F0141B1T,MM32F0141C1T,MM32F0144C4PV,MM32F0144C4QV,MM32F0144C1TV,MM32F0144C4P,MM32F0141B6P,MM32F0144C3N,MM32F0144C4N,MM32F0144C6P,MM32F0140,MM32F0144C6PV,MM32F0144C3NV,MM32F0144C1T,MM32F0141B4Q,MM32F0141C4P,MM32F0141C4Q,MM32F0141C4N,MM32F0141C6P,MM32F0141B3N,MM32F0144C4Q,MM32F0141B4P,MM32F0141C3N
【经验】基于灵动微MM32L0130系列MCU的低功耗电子时钟设计指南
MM32L0130作为灵动微电子推出的一款低功耗芯片,内置多种省电工作模式保证低功耗应用的要求。本文通过讲述灵动微电子MM32L0130系列MCU PWR电源控制模式,以及SLCD 和RTC外设配置,实现低功耗应用场景。
设计经验 发布时间 : 2023-07-08
【经验】单独下载可执行文件到灵动MM32F5系列微控制器的几种简易方法
本文将以下载MicroPython固件文件到灵动MM32F5微控制器为例,总结了几种简单易用的方法,专门针对使用DAP-Link调试器的情况,通过常用图形界面工具,实现单独下载可执行文件的功能。
设计经验 发布时间 : 2023-06-21
灵动MM32 MCU系列产品为智能门锁提供在用户安全性、识别、管理性方面更加智能化简便化的解决方案
智能门锁是指在传统机械锁的基础上改进的,在用户安全性、识别、管理性方面更加智能化简便化的锁具。智能门锁是门禁系统中锁门的执行部件。智能门锁以 MM32F3270 为指纹识别模块,MM32F0130 为主控,MM32W0130 为蓝牙接口。
应用方案 发布时间 : 2024-04-05
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论