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

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

[复制链接]
踏平幼稚园 发布时间:2016-11-19 03:30
本帖最后由 踏平幼稚园 于 2016-11-21 22:07 编辑 9 }4 J/ _9 e/ Q1 I& O5 |

  Q' A4 r( ^* p9 k忙了2、3个月了,终于有点小成果了,下面跟大家分享一下。
. j% @9 {5 w4 U  U. n& a* y4 L  S
9 h5 i. }' g/ c11月20更新:& A& T9 V6 q$ F
    1、灯控代码更新,解决灯效显示bug;
2 I+ O) W+ {8 X1 @5 p) R    2、stm32l432引脚布局更改,解决灯控中有一路pwm的io脚与usb引脚冲突的bug;
3 }5 |0 E5 u+ D* v6 C    3、灯终于到了,视频演示出增加灯控视频(目前实现了三种:全亮<亮度可调>、全呼吸<频率可调>、按键行点亮<度可调>);
1 Z+ I, Y9 h% x1 m7 U
1 n+ M6 b8 X% Q
1 e1 n; }5 h  C9 m

/ P8 q) z7 c3 a" y首先:说一下项目发起理由,主要是因为手上现有机械键盘为usb键盘,不支持蓝牙,灯效过少且定制性差。
+ H$ k( d+ R  }
; v8 |7 E! `! a* b. g) t& e/ I- _* W
项目目标:     改造键盘,增加蓝牙、usb、扩展灯效。
! n6 l# j: W' n- p) B
6 a6 v9 ^' J- q' H% O+ {! K方案:蓝牙da14583(就是那个功耗低到没朋友的货)主要实现按键检测,蓝牙键盘;stm32L432(这个功耗也非常低,性能也很强)实现主要usb键盘及灯控。补充:因为有吧友问到,这里说一下键盘型号:ikbc c87。$ i: J- I4 x4 t* Z- ^) p- @! K
$ E$ O5 B; S' P: j
1 A: }7 z4 j% o. W8 L* L. R
接下来分别介绍软、硬件部分具体实现
2 r7 r3 X, S' ]/ P% p  O一、软件(蓝牙、stm32):
$ k/ T4 ^, `0 F. [5 [0 b- a: n    1、整体框架
$ @0 r0 j% q8 r/ f0 K& P3 L         概览.jpg , m/ ^/ E1 v1 x) X& H; H8 M
    2、主程序流程% f0 U) i% A  b& f3 y
      
  a、蓝牙部分:按键扫描,键码映射( 通过硬件部分可得到映射表),蓝牙按键发送,发送协议数据。流程如下:
5 Y8 I5 G! G) H               ble.jpg
/ Z9 T% x& n' Y9 ]# N
# [& w' R4 Q0 n
: \2 [8 E0 c0 j- u6 K, s$ @5 U4 e. g       b、stm32L432:主程序结构,协议处理,usb键盘枚举,usb按键发送,灯控。流程如下:* b+ X9 n3 ~5 p
               l432.jpg
8 G# b* m$ Z. i2 @' N. z3 K+ ?   
7 I4 T4 v2 |; m; z( l9 R* V. g    3、通信协议介绍:
+ q1 W" O+ }; e& Q        目前使用的串口通信,为减少协议开销,提高按键实时性,协议由两个字节:
2 W+ @7 B4 ~3 N" P, X/ G+ Y             protocol.jpg . M0 v  N6 V1 I6 v) X( o1 V$ Z
    2 Y  A: l5 m! Z. x# x8 s
    4、灯效1 }* q3 T$ x& P7 D
        目前实现的灯控包括:
/ P7 b9 j$ J, e. @% T6 [            a、全灭;) u2 `0 S( g" ^4 p
            b、全亮(可调亮度);
9 ?+ p" i1 @$ G: @: {            c、全呼吸灯(可调呼吸速度);
* J5 u0 _, U( |2 U) Y2 C# G            d、按键对应行亮(可调亮度);

. {7 w( @0 O: ^* f7 N+ i) R! O: A7 K* e6 d6 F3 R7 V0 B
6 z3 U6 R7 d" c% U+ k
二、硬件:
$ K% t9 @% H; V4 n0 T" O# H( ^
    1、检测键盘引脚与主控引脚对应关系(主要包括按键行列引脚,led控制引脚,电源引脚),检测方法:万用表测导通
5 g9 A, Y2 }4 h0 m# d( x, a             主控.jpg
) d2 J2 _3 x0 n0 M4 N4 }
2 a5 F3 G" S" M   2、准备usb按键对应码表一份,如下图:https://pan.baidu.com/s/1gfwnVSR* m& @& s) E& J/ j# q
    hid.jpg
8 Q- n( F& d" V* X& j- b7 N$ G        
+ K9 R( s& ?  s8 G- l    3,再根据引脚关系和键码表,可得出下表. i0 p5 x5 M) x0 h- B- i: E. ^
         映射.jpg 9 \) G* |% p8 L  Z, B
$ @6 X' d* \  o/ y" Q
4 B6 D5 ^; e, ?4 m* M  p7 Z  w3 i
    4、拆键盘主控,用飞线大法连接蓝牙,nucleoL432等
& ~+ }; R! y, Z% j( Z5 K          a、键盘主控引脚飞线,40多跟。。。。。累死了+ p, \: U/ i6 {: L  C) A( o
                  P61119-015909.jpg
, ]( a4 r) O4 O# ]' e# x% R- Z  A3 W
              b、蓝牙模块跳线部分
5 Y. }4 W. B) B( k: X6 ?                   P61119-015726.jpg
: V/ E# T0 z; _; C; C/ a$ a+ s, a* B0 z$ v$ H  y' G
            c、nucleoL432主控板,灯控线没有连接,所以看起来线不多,图中至连接了串口和usb2 I. L5 `2 q/ R; l  [4 E
                   P61119-015802.jpg
  X" F( d" a/ o. J$ S$ q# ~( n' |
4 r+ n0 n: r* X% W4 B+ f     5、上电调试
0 {1 S" K, |, {  n% o# `         debug.jpg ! u6 s( j, T( ^6 c
/ U' F$ Y7 r1 m0 Z: w

! o3 y/ x) B( J; k# J至此:8 j3 p. u2 Q0 N9 p3 e  f( y: ^1 ?
    基本功能完成,其中灯控是以行为单位。代码实现了部分灯效(nucleol432自带的灯上测试通过),没能在键盘上测试不是我不想...只因为买的灯,至今还没送到,以后再也不用申通了!!!1 J$ {- V: d' J9 I
8 ]3 k3 \: \; f0 h& x
以下是视频演示:. x7 H% f' P5 y) `
    1、基于蓝牙的键盘部分
. |  S7 N0 R" d* B) h: k! q      
7 j, o" e% u3 f1 T8 I! w1 _

( L# t# d; h( m: l  T    2、基于nucleoL432的usb键盘部分+ a; u* g1 H' F/ s$ a6 J, y
        3 {7 L- r8 S. B( s5 C" q

3 P- x2 Y0 v+ J    3、基于nucleoL432的灯控部分(灯控部分更新上传)  K; Y' O- r; T$ Q
        / o) r/ F( |" O, I* G& T8 ]9 D( s
* q3 }; G! l- b
最后、不足及待完善的部分:+ y: Q! Y! C, G" ?8 T( P1 O7 D
    1、键盘硬件支持全键无冲,现在软件只是实现了标准usb键盘设备,最多同时发送6个按键,全键无冲部分待实现;
3 \  t. Y, `- D" F0 Y# h2 {0 v    2、灯控现在是行控制,灯效扩展空间及其有限,以后会改为行列控制模式(飞线),甚至改成rgb行列模式(重画pcb),以实现更多效果;
7 n; ]) d! |' j6 [    3、当前通信方式为串口,速率过慢,虽然感觉不到按键延迟,但是按键响应越及时越好,以后接下来会将改为spi;
2 s2 y, l0 V& s/ _1 a( u! {" \2 w    4、电池电源管理和睡眠还没有实现,低功耗也是本次改造机械键盘的主要目的之一,待增加;
) P8 k5 v) B, f  U; @! D0 Q2 e    5、按键映射只做了基本按键功能,fn加按键的映射键位暂未实现;
( `9 E4 s5 w. L5 l
    6、键盘目前是调试完善阶段,所以板子都是直接飞线裸露在外面,同时键盘也因此不能组装起来,待调试稳定之后,会为蓝牙增加ota功能,stm32L432增加串口升级固件功能,并集成到键盘外壳中。
% Y9 v2 O. n: S3 c1 _1 W2 f" F
; `' e2 W2 h. b0 r* n' M4 x

' L' ^5 _: w; s* Y0 N% t' h4 K) rnucleoL432代码(已更新): 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 编辑 % O5 B3 ~* |( y, c$ {
紫宸 发表于 2016-11-25 21:089 s+ W) G+ ], W4 q+ r  @/ N' j
请问用的蓝牙模块的蓝牙部分在哪可以参考?

' x, f/ `) s9 F; [蓝牙部分 爱板网经验频道做过分享过经验【DA14580DEVKT-B评估板】http://jingyan.eeboard.com/article/75260  这是第一部分链接,一共7部分剩下的自己搜: u& Y& W" U/ {4 U0 B/ P+ F  [2 q! K
踏平幼稚园 回答时间:2016-11-23 10:25:30
watershade 发表于 2016-11-22 21:28/ _9 I2 c$ Q# W; `2 T0 v: T9 M
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。
/ @4 T8 |$ A1 P- d: V, G
& S. g( p. `1 g2 n: A! o# R ...

4 U; L" U# F) D- }& y我也喜欢简约,对绚丽的灯效外观之类没太大兴趣   加灯只因为看着那么多没用的io口舍不得浪费
watershade 回答时间:2016-11-22 21:28:40
本帖最后由 watershade 于 2016-11-22 22:08 编辑 # L; V+ ^! ^& T3 Y3 L9 d
踏平幼稚园 发表于 2016-11-21 21:49
! s( d; q' j1 V9 e! bikbc c87
. \, i9 m: i# ?
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。1 j% E/ k, M" ?9 Y/ G4 K7 y3 N

  p: e* ~3 r( B% ^0 @4 Y) [
zero99 回答时间:2016-11-19 07:21:33
感谢楼主的分享
天外流星_0 回答时间:2016-11-19 11:51:39
厉害!感谢分享
小小超 回答时间:2016-11-19 14:08:21
& y9 L# i7 h- J9 k* ~* c  N
感谢楼主的分享
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
- ^! D/ P4 q% B( d; z" R8 T$ g9 m这键盘你哪儿搞的?看着不错

/ }3 ^9 L( ~$ \ikbc c87   
wweeww 回答时间:2016-11-22 10:44:53
就冲着飞线,赞一下
踏平幼稚园 回答时间:2016-11-22 21:16:10
wweeww 发表于 2016-11-22 10:44
1 R# Y9 L, O* F就冲着飞线,赞一下
7 g. A, a& e" |; K5 N  x
感谢 支持   
power568 回答时间:2016-11-23 13:51:01
学习了...
andypanfan 回答时间:2016-11-25 09:06:35
谢谢  分享!!!!!
紫宸 回答时间:2016-11-25 21:08:59
请问用的蓝牙模块的蓝牙部分在哪可以参考?
123下一页

所属标签

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