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

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

[复制链接]
踏平幼稚园 发布时间:2016-11-19 03:30
本帖最后由 踏平幼稚园 于 2016-11-21 22:07 编辑 # l. v, F7 s' a* U/ P4 S2 s
2 d: x! U* G0 U8 S
忙了2、3个月了,终于有点小成果了,下面跟大家分享一下。
. Y. ~" D1 ~# E) h' F, L4 K2 p' c& F7 {
11月20更新:/ _3 |# i6 {. F! k/ R  ?
    1、灯控代码更新,解决灯效显示bug;
" T. L, N. i6 w    2、stm32l432引脚布局更改,解决灯控中有一路pwm的io脚与usb引脚冲突的bug;6 n/ U, e" n. j7 p7 I4 j5 U# E
    3、灯终于到了,视频演示出增加灯控视频(目前实现了三种:全亮<亮度可调>、全呼吸<频率可调>、按键行点亮<亮度可调>);! ?7 A( m, r* Q. w' a

/ g) {$ x0 x) y/ p8 q& X/ B
% Z/ N2 ^, }  w: C5 r8 N/ E
; F8 H! t1 g7 B首先:说一下项目发起理由,主要是因为手上现有机械键盘为usb键盘,不支持蓝牙,灯效过少且定制性差。
/ a* I2 d. S: b% T8 P: ~; N

8 T! k  j0 D) l' A; B" x- U项目目标:     改造键盘,增加蓝牙、usb、扩展灯效。% D: B" j' z1 ^6 w/ v: ?1 f- y1 I
8 R# ?3 n9 v2 Z- P
方案:蓝牙da14583(就是那个功耗低到没朋友的货)主要实现按键检测,蓝牙键盘;stm32L432(这个功耗也非常低,性能也很强)实现主要usb键盘及灯控。补充:因为有吧友问到,这里说一下键盘型号:ikbc c87。- N2 a. p' E3 e8 I5 m

4 d- N; W$ L, A0 _8 g
2 V5 X/ l+ y0 p9 a1 Y* z接下来分别介绍软、硬件部分具体实现:
1 J6 W5 c2 x0 X4 ?3 y( \( m一、软件(蓝牙、stm32):' c0 _& O) B8 m3 j2 `
    1、整体框架
3 m# ~, E! z! ?2 f4 j7 w2 h& X         概览.jpg 7 e- S3 X4 i  A, w
    2、主程序流程" l; L" G3 s3 I1 ]0 E# u  D
      
  a、蓝牙部分:按键扫描,键码映射( 通过硬件部分可得到映射表),蓝牙按键发送,发送协议数据。流程如下:
% Y/ O6 K! J' G+ `! k5 @               ble.jpg
/ ?& F+ h% ]4 T4 m( R# o" f' A& `8 N- w6 W. C# m1 q, R7 k8 C

: [5 }; {* c& F8 [' y3 C       b、stm32L432:主程序结构,协议处理,usb键盘枚举,usb按键发送,灯控。流程如下:
" e7 W" a+ O+ G" a, [% U               l432.jpg 7 v! A: D8 L1 f# k, \
    . s+ t1 l' @7 ^+ t3 u1 n6 I4 D
    3、通信协议介绍:4 Z/ ?; d) S. G
        目前使用的串口通信,为减少协议开销,提高按键实时性,协议由两个字节:
+ E" d) n6 j/ u) [1 o6 b             protocol.jpg
( p9 K0 R9 a& _: z   
/ ~$ e  N( z- A    4、灯效
5 K7 u4 Z% F& b2 \
        目前实现的灯控包括:
" o0 s, D& f% _2 f0 N) v0 L            a、全灭;. l9 N  L  c' M. U
            b、全亮(可调亮度);7 W8 c  X2 L8 P
            c、全呼吸灯(可调呼吸速度);
: K# l. I7 @! k4 K# Y            d、按键对应行亮(可调亮度);
; i1 |: G  Y  G( X% A8 Z2 W
5 k8 i( I& z5 }& s  P; r
; Y6 _/ R0 K5 `
二、硬件:

- W. [" T) ~5 n% v( j" ~( k    1、检测键盘引脚与主控引脚对应关系(主要包括按键行列引脚,led控制引脚,电源引脚),检测方法:万用表测导通
2 w8 W! j" G8 C3 W. W) s             主控.jpg
0 d2 A, v* H3 Q5 E9 N
1 m  a9 }5 n8 K) n/ p% L   2、准备usb按键对应码表一份,如下图:https://pan.baidu.com/s/1gfwnVSR+ D9 s) a) g* m: U) D4 g3 N3 D9 Q9 R% Q
    hid.jpg 5 l- |$ g# f" M" O$ U, I+ a0 ^
        , q. j2 ~# C6 {5 @; t% j
    3,再根据引脚关系和键码表,可得出下表* p. t+ O$ T" h; E6 g! B$ u1 `
         映射.jpg
, |& f( p. o: d0 \) r! Q/ Z, A' J1 L" N1 E5 r$ k
8 ~+ j9 `! Z  b7 v- D, _& q8 R
    4、拆键盘主控,用飞线大法连接蓝牙,nucleoL432等7 \8 i% K6 w! L9 b, L
          a、键盘主控引脚飞线,40多跟。。。。。累死了
+ U' A; g7 Z# P/ r                  P61119-015909.jpg ; C" t. h+ f0 z$ z# O! [( |7 [8 S

& O6 W; y* ~( t  p5 K' G              b、蓝牙模块跳线部分$ _( ?+ }1 w" K# g( X
                   P61119-015726.jpg / K+ w3 I4 U3 k* N

7 ]- s' C) j8 _) p            c、nucleoL432主控板,灯控线没有连接,所以看起来线不多,图中至连接了串口和usb3 g1 w1 U1 R2 \2 g
                   P61119-015802.jpg
4 t7 p& H( h$ A* l( A' t( M: E9 b1 C7 r5 s" E# j; i
     5、上电调试$ B! X5 c$ Z8 n" Q& Q* r! F& J) y
         debug.jpg
, |5 O8 j7 O0 X$ E- E8 s4 w! l6 U7 m( X; T* w( V
2 I6 V# l" C* S0 g8 K
至此:8 j) X4 [9 ?% z
    基本功能完成,其中灯控是以行为单位。代码实现了部分灯效(nucleol432自带的灯上测试通过),没能在键盘上测试不是我不想...只因为买的灯,至今还没送到,以后再也不用申通了!!!
2 \! H# t9 Z! _. u8 N

- f2 [9 z6 y! H% F* ~. V以下是视频演示:
9 }9 X; }' }1 g, }% _: f6 ~    1、基于蓝牙的键盘部分
+ g" P9 C  s+ W+ K9 a: \$ `9 P      & u3 J0 ]7 q) M

6 u$ O/ t- w; S+ {    2、基于nucleoL432的usb键盘部分
+ K6 l2 L; q# Z4 }  n( r! O7 U$ \2 o        4 q% P5 t& X, R  y4 ]8 D

: u" ]3 h- S! T5 \8 b    3、基于nucleoL432的灯控部分(灯控部分更新上传)7 V) f& O+ S: g3 s: l2 s
        / A) D, ^. c, N, @/ e+ x2 N

( E1 B2 J$ Q! c* f/ H( [; w最后、不足及待完善的部分:
/ w9 X. E; s& H( e* [    1、键盘硬件支持全键无冲,现在软件只是实现了标准usb键盘设备,最多同时发送6个按键,全键无冲部分待实现;: u( @- b8 p+ R- W
    2、灯控现在是行控制,灯效扩展空间及其有限,以后会改为行列控制模式(飞线),甚至改成rgb行列模式(重画pcb),以实现更多效果;
: w; I, u/ @# C5 Z! o9 G7 G    3、当前通信方式为串口,速率过慢,虽然感觉不到按键延迟,但是按键响应越及时越好,以后接下来会将改为spi;% X$ x7 O6 V) j$ R: n3 u" k
    4、电池电源管理和睡眠还没有实现,低功耗也是本次改造机械键盘的主要目的之一,待增加;
) d, F# j: l" r7 ]. k( |5 |    5、按键映射只做了基本按键功能,fn加按键的映射键位暂未实现;

. d( u2 |. J  P( ~3 ~0 e    6、键盘目前是调试完善阶段,所以板子都是直接飞线裸露在外面,同时键盘也因此不能组装起来,待调试稳定之后,会为蓝牙增加ota功能,stm32L432增加串口升级固件功能,并集成到键盘外壳中。
' Q; M0 p# f( \8 W

, v; U0 J4 b- }: F8 I$ H
- Q& d* |$ _: a1 snucleoL432代码(已更新): stm32_keyboard.zip (1.77 MB, 下载次数: 255)

评分

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

查看全部评分

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

举报

34个回答
踏平幼稚园 回答时间:2016-11-28 09:35:51
本帖最后由 踏平幼稚园 于 2016-11-28 09:41 编辑
, Y* J! L7 t9 Y; f( R3 g" B# p: k6 ^
紫宸 发表于 2016-11-25 21:08
1 O: ~! |+ [2 g% z" p) L请问用的蓝牙模块的蓝牙部分在哪可以参考?
3 U0 y+ n5 I3 T
蓝牙部分 爱板网经验频道做过分享过经验【DA14580DEVKT-B评估板】http://jingyan.eeboard.com/article/75260  这是第一部分链接,一共7部分剩下的自己搜
3 X+ w3 e5 V2 r
踏平幼稚园 回答时间:2016-11-23 10:25:30
watershade 发表于 2016-11-22 21:28
+ H1 O" L( m7 a3 Q2 F% Z5 o, e4 W我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。, v, {3 h5 F% m+ H) k6 Z+ ?9 M- _

4 q  s2 _8 T0 T4 j ...
/ S1 o8 w( t- s9 B
我也喜欢简约,对绚丽的灯效外观之类没太大兴趣   加灯只因为看着那么多没用的io口舍不得浪费
watershade 回答时间:2016-11-22 21:28:40
本帖最后由 watershade 于 2016-11-22 22:08 编辑
5 `; P# y" q  s: }$ t: s0 B/ W% j
踏平幼稚园 发表于 2016-11-21 21:497 c' D' V& `5 W1 }' y
ikbc c87

& b3 d5 v" S# k* ]! e. {; q9 C' E* u2 D我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。
' d% i( u5 u* m8 H) U9 X0 L/ B6 W( r* S" a+ n" Y* {* M
zero99 回答时间:2016-11-19 07:21:33
感谢楼主的分享
天外流星_0 回答时间:2016-11-19 11:51:39
厉害!感谢分享
小小超 回答时间:2016-11-19 14:08:21

) q; S2 n+ p' e  l, \感谢楼主的分享
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% |6 P3 R: t% t
这键盘你哪儿搞的?看着不错
, A- X# S7 h6 E
ikbc c87   
wweeww 回答时间:2016-11-22 10:44:53
就冲着飞线,赞一下
踏平幼稚园 回答时间:2016-11-22 21:16:10
wweeww 发表于 2016-11-22 10:44+ H) M2 t4 C. B+ }. D9 @; t
就冲着飞线,赞一下

: ]  U0 A: P% K  s感谢 支持   
power568 回答时间:2016-11-23 13:51:01
学习了...
andypanfan 回答时间:2016-11-25 09:06:35
谢谢  分享!!!!!
紫宸 回答时间:2016-11-25 21:08:59
请问用的蓝牙模块的蓝牙部分在哪可以参考?
123下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版