
多功能小键盘-嵌入式软件开发利器
简介
这是一款基于stm32rct6的17键有线小键盘,包括一个摇杆和6个触摸键,接口方面,它拥有2个usb2.0接口以及高达4个的ttl串口(可通过改电路图得到232或者485).
简介:这是一款基于stm32rct6的17键有线小键盘,包括一个摇杆和6个触摸键,接口方面,它拥有2个usb2.0接口以及高达4个的ttl串口(可通过改电路图得到232或者485).开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
项目说明
本项目旨在解决嵌入式开发过程中串口外接过多导致的接口不足以及调参时右手需要反复在小键盘和鼠标之间移动导致的手酸手痛等职业病。
开源协议
本作品遵守GPL3.0开源协议。
项目相关功能
本体为一个17键有线小键盘,使用74hc165实现对所有物理输入的扫描并使用spi协议读出,理论最高按键刷新速率为18/4=4.5MHz,为保证稳定性设置为100KHz。
同时,它还包括一个摇杆和6个触摸键以及四路串口用以调试嵌入式设备和2路usb用以接入dap-link等烧录设备。
摇杆暂时被映射为上下左右方向键;6个触摸键实现了横扫识别,通过拇指在感应区域的左扫或右扫实现上下翻页。
软件方面暂时未实现实体按键切换按键层级,需要通过串口传入指令或重新烧录实现映射。(内部接口已做好)
项目属性
本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。
项目进度
2023.4.4:完成初期设计
2023.4.8:初次打板验证
2023.4.17:修复了ch344无法使用的bug,二次打板
2023.4.25:可行性验证成功,编写固件
2023.5.24:实物验证完成
2023.8.24:文档初步完成
设计原理
74hc165作为一款并入串出的锁存芯片,可以通过控制PL脚实现数据的锁存,再通过SPI协议以8bit为一组将锁存的数据读出,这种按键检测方式有效的去除了按键的二极管以及上位机的IO口数量,对于任意数量的按键都可以使用4个IO来读出。
stm32作为核心控制器在短时间内读出两次按键键码,通过位与的方式进行滤波,去除按键毛刺,再通过内置的映射表来实现按键的映射。
使用sh2.1来实现usb扩展坞,ch344作为usb转串口的控制器。
软件说明
源码请访问我的github。
源码使用clion进行软件编写,dap进行烧录,具体配置教程请看这里。如果使用st-link,请更改根目录下的st_nucleo_f103rb.cfg,将第四行的source [find interface/cmsis-dap.cfg]开头使用#注释掉,删除第5行#source [find interface/stlink.cfg]的#号即可。
层级方面,代码在Drivers/BSP/RF_keyboard.c中,修改_remap_init函数即可。
实物展示
提示:作品的实物图片,图片可以加上说明。
设计注意事项
注意!由于使用usb供电,所以两个usb上的设备电路不宜过大
其他
视频地址:https://www.bilibili.com/video/BV13ZypYBEWo
演示视频:演示视频上传附件即可,附件最大只能长传50M的文件,大于50M的文件可放置在其他网盘或视频网站上,只需把地址链接放入这里即可
工程附件:参加活动的作品必须把工程相关的程序附件上传至开源平台或个人的代码存储云端,附件最大支持50M上传(请勿在立创工作区上传,有限制)
设计图

BOM


评论