你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【我为STM32站台】+ 基于L432改造机械键盘(usb+蓝牙+灯控)  

[复制链接]
踏平幼稚园 发布时间:2016-11-19 03:30
本帖最后由 踏平幼稚园 于 2016-11-21 22:07 编辑

忙了2、3个月了,终于有点小成果了,下面跟大家分享一下。

11月20更新:
    1、灯控代码更新,解决灯效显示bug;
    2、stm32l432引脚布局更改,解决灯控中有一路pwm的io脚与usb引脚冲突的bug;
    3、灯终于到了,视频演示出增加灯控视频(目前实现了三种:全亮<亮度可调>、全呼吸<频率可调>、按键行点亮<度可调>);



首先:说一下项目发起理由,主要是因为手上现有机械键盘为usb键盘,不支持蓝牙,灯效过少且定制性差。

项目目标:     改造键盘,增加蓝牙、usb、扩展灯效。

方案:蓝牙da14583(就是那个功耗低到没朋友的货)主要实现按键检测,蓝牙键盘;stm32L432(这个功耗也非常低,性能也很强)实现主要usb键盘及灯控。补充:因为有吧友问到,这里说一下键盘型号:ikbc c87。


接下来分别介绍软、硬件部分具体实现
一、软件(蓝牙、stm32):
    1、整体框架
         概览.jpg
    2、主程序流程
      
  a、蓝牙部分:按键扫描,键码映射( 通过硬件部分可得到映射表),蓝牙按键发送,发送协议数据。流程如下:
               ble.jpg


       b、stm32L432:主程序结构,协议处理,usb键盘枚举,usb按键发送,灯控。流程如下:
               l432.jpg
   
    3、通信协议介绍:
        目前使用的串口通信,为减少协议开销,提高按键实时性,协议由两个字节:
             protocol.jpg
   
    4、灯效
        目前实现的灯控包括:
            a、全灭;
            b、全亮(可调亮度);
            c、全呼吸灯(可调呼吸速度);
            d、按键对应行亮(可调亮度);



二、硬件:

    1、检测键盘引脚与主控引脚对应关系(主要包括按键行列引脚,led控制引脚,电源引脚),检测方法:万用表测导通
             主控.jpg

   2、准备usb按键对应码表一份,如下图:https://pan.baidu.com/s/1gfwnVSR
    hid.jpg
        
    3,再根据引脚关系和键码表,可得出下表
         映射.jpg


    4、拆键盘主控,用飞线大法连接蓝牙,nucleoL432等
          a、键盘主控引脚飞线,40多跟。。。。。累死了
                  P61119-015909.jpg

              b、蓝牙模块跳线部分
                   P61119-015726.jpg

            c、nucleoL432主控板,灯控线没有连接,所以看起来线不多,图中至连接了串口和usb
                   P61119-015802.jpg

     5、上电调试
         debug.jpg


至此:
    基本功能完成,其中灯控是以行为单位。代码实现了部分灯效(nucleol432自带的灯上测试通过),没能在键盘上测试不是我不想...只因为买的灯,至今还没送到,以后再也不用申通了!!!

以下是视频演示:
    1、基于蓝牙的键盘部分
      

    2、基于nucleoL432的usb键盘部分
        

    3、基于nucleoL432的灯控部分(灯控部分更新上传)
        

最后、不足及待完善的部分:
    1、键盘硬件支持全键无冲,现在软件只是实现了标准usb键盘设备,最多同时发送6个按键,全键无冲部分待实现;
    2、灯控现在是行控制,灯效扩展空间及其有限,以后会改为行列控制模式(飞线),甚至改成rgb行列模式(重画pcb),以实现更多效果;
    3、当前通信方式为串口,速率过慢,虽然感觉不到按键延迟,但是按键响应越及时越好,以后接下来会将改为spi;
    4、电池电源管理和睡眠还没有实现,低功耗也是本次改造机械键盘的主要目的之一,待增加;
    5、按键映射只做了基本按键功能,fn加按键的映射键位暂未实现;

    6、键盘目前是调试完善阶段,所以板子都是直接飞线裸露在外面,同时键盘也因此不能组装起来,待调试稳定之后,会为蓝牙增加ota功能,stm32L432增加串口升级固件功能,并集成到键盘外壳中。


nucleoL432代码(已更新): stm32_keyboard.zip (1.77 MB, 下载次数: 253)

评分

参与人数 1 ST金币 +40 收起 理由
zero99 + 40

查看全部评分

收藏 5 评论34 发布时间:2016-11-19 03:30

举报

34个回答
zero99 回答时间:2016-11-19 07:21:33
感谢楼主的分享
天外流星_0 回答时间:2016-11-19 11:51:39
厉害!感谢分享
ts2000 回答时间:2016-11-19 14:08:21

感谢楼主的分享
suoma 回答时间:2016-11-19 19:10:02
谢谢分享学习一下
踏平幼稚园 回答时间:2016-11-20 12:57:56
感谢各位支持,昨天灯到了,灯控部分已更新,基本功能全部完成了
watershade 回答时间:2016-11-21 21:38:15
这键盘你哪儿搞的?看着不错
踏平幼稚园 回答时间:2016-11-21 21:49:37
watershade 发表于 2016-11-21 21:38
这键盘你哪儿搞的?看着不错

ikbc c87   
wweeww 回答时间:2016-11-22 10:44:53
就冲着飞线,赞一下
踏平幼稚园 回答时间:2016-11-22 21:16:10
wweeww 发表于 2016-11-22 10:44
就冲着飞线,赞一下

感谢 支持   
1234下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版