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

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

[复制链接]
踏平幼稚园 发布时间:2016-11-19 03:30
本帖最后由 踏平幼稚园 于 2016-11-21 22:07 编辑 + C. X( e, x: p% c5 ~+ i4 k
: H7 s$ u# e) @; b' ^; N9 J, T$ P% }; o5 U
忙了2、3个月了,终于有点小成果了,下面跟大家分享一下。# p) |1 h8 ^" ]. x8 e# Z5 k
9 g9 ~7 k4 o& {3 h- q
11月20更新:3 T6 C3 u3 x- r% m9 n
    1、灯控代码更新,解决灯效显示bug;0 _) K! _2 _7 m* B( p. {9 n% N
    2、stm32l432引脚布局更改,解决灯控中有一路pwm的io脚与usb引脚冲突的bug;
% a0 r; p$ D0 R    3、灯终于到了,视频演示出增加灯控视频(目前实现了三种:全亮<亮度可调>、全呼吸<频率可调>、按键行点亮<度可调>);
* E+ @4 p: X6 \
( j: Y. i% |  Q! q! _+ q! P# E/ B# N

, Q/ C: ]9 h+ @4 F5 u3 v4 C: w1 ?5 b8 N7 \
首先:说一下项目发起理由,主要是因为手上现有机械键盘为usb键盘,不支持蓝牙,灯效过少且定制性差。
" s+ V9 P  Z: c$ i. C. a! c

8 T6 C2 y. U2 O! @项目目标:     改造键盘,增加蓝牙、usb、扩展灯效。
/ S* H4 o3 }0 ]4 O# I) R- g
- t2 E( T6 n) d% g方案:蓝牙da14583(就是那个功耗低到没朋友的货)主要实现按键检测,蓝牙键盘;stm32L432(这个功耗也非常低,性能也很强)实现主要usb键盘及灯控。补充:因为有吧友问到,这里说一下键盘型号:ikbc c87。# F; r; A, ^7 n2 K* C
1 i; C$ |" M2 H  n, M+ z; M

* v; O  B4 d1 J4 _8 Y$ B( Z/ Q接下来分别介绍软、硬件部分具体实现6 T, G  d$ @' c: f
一、软件(蓝牙、stm32):! o) Q3 z% _; Q( s% a) m" H
    1、整体框架  \: y1 B: [; t* w# q+ L$ }
         概览.jpg 0 I2 Z4 E# U' k- E: E; Y/ C- B
    2、主程序流程: o2 }7 k# \6 J3 n
      
  a、蓝牙部分:按键扫描,键码映射( 通过硬件部分可得到映射表),蓝牙按键发送,发送协议数据。流程如下:
1 D8 s" J/ S+ C9 @1 @& u& K! S               ble.jpg
8 T# R7 ]# u* m- ~- U1 l1 _' T
( s, L6 @7 i, b/ M' o3 s2 N
. j2 A4 f% c7 x; f2 a8 ]1 V       b、stm32L432:主程序结构,协议处理,usb键盘枚举,usb按键发送,灯控。流程如下:
8 k) H, W: L( i               l432.jpg
+ F8 G! v! }2 h   
  V: J% H& T$ ]! D$ `$ {# d    3、通信协议介绍:) C) ?: N' T  x- X
        目前使用的串口通信,为减少协议开销,提高按键实时性,协议由两个字节:
4 x, r8 C; ^5 G- x# @0 G" _+ P. H5 l             protocol.jpg
7 y! T0 Y0 l, h0 y$ h    8 e/ b0 r+ A4 C
    4、灯效( [4 H$ L" I. Z' ]7 w' w+ q
        目前实现的灯控包括:6 U( W2 o, \/ D$ n2 Y
            a、全灭;, n4 ]6 T7 r+ R9 }" n- i
            b、全亮(可调亮度);
: a# I; f$ P: Z            c、全呼吸灯(可调呼吸速度);
: E- ~. F' W3 ^0 n            d、按键对应行亮(可调亮度);

, ?: @0 J1 \# U9 b' Y+ D! Z2 u9 u  e% d9 n7 {. o) U$ i
5 j) R2 X* n6 p  |
二、硬件:

( V; d8 x7 z: P! I. N% L1 O    1、检测键盘引脚与主控引脚对应关系(主要包括按键行列引脚,led控制引脚,电源引脚),检测方法:万用表测导通2 i3 e: d) q* j# q) f  ~0 t3 t' v
             主控.jpg ) v4 B, H. d, D, }% X% ?! r
8 J  b7 T) Z" W3 W7 `3 Q
   2、准备usb按键对应码表一份,如下图:https://pan.baidu.com/s/1gfwnVSR1 N" S8 t2 i; T/ {
    hid.jpg
6 J, \( T0 l# u/ X        ( g1 V/ p7 B, y1 f( H1 Q
    3,再根据引脚关系和键码表,可得出下表5 r8 r- O2 c+ ]0 r$ Q7 a! O; a
         映射.jpg
. z6 p0 A& f6 M( N; ]: E3 R% x% r, C& i& S5 Y3 q

. _( D' L. \' K0 \' ~) }    4、拆键盘主控,用飞线大法连接蓝牙,nucleoL432等
& c( |$ F0 `- C, _9 I0 v7 Q          a、键盘主控引脚飞线,40多跟。。。。。累死了* g/ ?6 \1 U$ D, T# J6 `: n& f) D
                  P61119-015909.jpg $ ~7 a8 _+ _) F: x! i, @( h

  r2 x6 I  [3 S  o              b、蓝牙模块跳线部分
8 g2 K! Z- M! \                   P61119-015726.jpg
' Z3 Q/ J$ [" M  J
0 L' Y4 h' `  v2 e, T* ?            c、nucleoL432主控板,灯控线没有连接,所以看起来线不多,图中至连接了串口和usb/ G8 s+ L* D/ V; A/ J
                   P61119-015802.jpg / q2 A* b8 u0 s1 k2 b* S! S; s

% f2 Q- e+ W8 U& I6 I     5、上电调试
8 R& T2 t" G- f" X1 k         debug.jpg
/ [) F/ l" R+ K
! ]4 G$ m* ]& K1 F, B; R- }5 t$ g9 F3 ^! c/ L8 U
至此:3 v4 {( `6 n( S9 ?( ~9 T
    基本功能完成,其中灯控是以行为单位。代码实现了部分灯效(nucleol432自带的灯上测试通过),没能在键盘上测试不是我不想...只因为买的灯,至今还没送到,以后再也不用申通了!!!
- p9 X, ?' x2 K$ ^
3 \  I0 U6 v/ n! U) q$ ^) O$ y# {
以下是视频演示:0 C) \0 ~+ k6 @4 z% {; I7 q
    1、基于蓝牙的键盘部分
- w. i* k" a1 _7 Z! J3 S      
; I* q  {! w3 s# x
' e- m9 G+ c1 O9 L5 z
    2、基于nucleoL432的usb键盘部分
$ k) R8 l% ~; e; p' s        8 R2 e* Y) b3 c1 o- ^" P
0 ^/ h$ ?% i& b, b/ P6 e/ G
    3、基于nucleoL432的灯控部分(灯控部分更新上传)
4 ]6 {7 A+ U# ~% F! V        
) m1 i6 E, c2 l" x; M% s" v& {5 K7 E
最后、不足及待完善的部分:$ U$ L( X; X+ u. N# W
    1、键盘硬件支持全键无冲,现在软件只是实现了标准usb键盘设备,最多同时发送6个按键,全键无冲部分待实现;
+ c0 {( O/ M/ ]    2、灯控现在是行控制,灯效扩展空间及其有限,以后会改为行列控制模式(飞线),甚至改成rgb行列模式(重画pcb),以实现更多效果;) G& P( g& e: Z' Y) h
    3、当前通信方式为串口,速率过慢,虽然感觉不到按键延迟,但是按键响应越及时越好,以后接下来会将改为spi;
% U+ [0 R6 H- l$ k$ w9 n    4、电池电源管理和睡眠还没有实现,低功耗也是本次改造机械键盘的主要目的之一,待增加;
9 ]/ B" h+ Q9 ?: y/ \    5、按键映射只做了基本按键功能,fn加按键的映射键位暂未实现;
  [1 o5 |/ m) r3 Z
    6、键盘目前是调试完善阶段,所以板子都是直接飞线裸露在外面,同时键盘也因此不能组装起来,待调试稳定之后,会为蓝牙增加ota功能,stm32L432增加串口升级固件功能,并集成到键盘外壳中。+ e" ]+ J* E  ^' q  N9 c5 G3 X

4 L0 j1 N9 V# i5 o& ?0 C7 Y( h" k4 j% i2 W7 \+ @
nucleoL432代码(已更新): stm32_keyboard.zip (1.77 MB, 下载次数: 254)

评分

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

查看全部评分

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

举报

34个回答
踏平幼稚园 回答时间:2016-11-28 09:35:51
本帖最后由 踏平幼稚园 于 2016-11-28 09:41 编辑 " d& U2 ~& X' O$ Z0 Q: U1 c
紫宸 发表于 2016-11-25 21:08
/ U  D2 |/ I3 s5 F' w0 k0 e1 _9 i请问用的蓝牙模块的蓝牙部分在哪可以参考?
' e  b/ |+ B6 q. t
蓝牙部分 爱板网经验频道做过分享过经验【DA14580DEVKT-B评估板】http://jingyan.eeboard.com/article/75260  这是第一部分链接,一共7部分剩下的自己搜. L2 z0 \( G3 }! F) a5 q- Z
踏平幼稚园 回答时间:2016-11-23 10:25:30
watershade 发表于 2016-11-22 21:28
9 |. @* U; ]; W% j5 t我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。8 ^; w2 p, N# S; c6 ~
" p( \: d0 Z2 L  @& `, {) d' t
...

/ b5 O" Q  o* M- l& Q4 |) a我也喜欢简约,对绚丽的灯效外观之类没太大兴趣   加灯只因为看着那么多没用的io口舍不得浪费
watershade 回答时间:2016-11-22 21:28:40
本帖最后由 watershade 于 2016-11-22 22:08 编辑 ! g) D8 s  v4 f. S4 l' m  B  n
踏平幼稚园 发表于 2016-11-21 21:49
2 U  I! v! b! g* j; qikbc c87
+ @/ i6 E0 Q0 H
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。
5 ~: f3 {6 [  Q! z: s* o
7 b. G* l9 \8 r( B' E$ b
zero99 回答时间:2016-11-19 07:21:33
感谢楼主的分享
天外流星_0 回答时间:2016-11-19 11:51:39
厉害!感谢分享
小小超 回答时间:2016-11-19 14:08:21
. C" F# N* _3 C9 c
感谢楼主的分享
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
. S4 f; m& a3 f  k" j" V6 t9 z这键盘你哪儿搞的?看着不错

9 R% A; b. e  d# T, mikbc c87   
wweeww 回答时间:2016-11-22 10:44:53
就冲着飞线,赞一下
踏平幼稚园 回答时间:2016-11-22 21:16:10
wweeww 发表于 2016-11-22 10:44) V, ~/ x0 o1 @1 g
就冲着飞线,赞一下
# f* s; ^3 Y% y
感谢 支持   
power568 回答时间:2016-11-23 13:51:01
学习了...
andypanfan 回答时间:2016-11-25 09:06:35
谢谢  分享!!!!!
紫宸 回答时间:2016-11-25 21:08:59
请问用的蓝牙模块的蓝牙部分在哪可以参考?
123下一页

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版