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

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

[复制链接]
踏平幼稚园 发布时间:2016-11-19 03:30
本帖最后由 踏平幼稚园 于 2016-11-21 22:07 编辑 # \$ M# A3 Q1 k' a9 C5 T6 z! C' {( l

& u# I! W/ i% H: v- M# y* i忙了2、3个月了,终于有点小成果了,下面跟大家分享一下。
# u2 J) O- w6 G7 K) a6 V. j& _1 C) f
; S4 g0 S- r- O7 h, }: O5 M, f11月20更新:
! P: C" {0 ]5 o    1、灯控代码更新,解决灯效显示bug;
0 Z) z% \1 q6 A+ Y5 h    2、stm32l432引脚布局更改,解决灯控中有一路pwm的io脚与usb引脚冲突的bug;* M6 s; H$ f: Q. G! l2 b( c
    3、灯终于到了,视频演示出增加灯控视频(目前实现了三种:全亮<亮度可调>、全呼吸<频率可调>、按键行点亮<度可调>);
' H/ y* m$ [6 m

* Q. m' |3 R( g3 k- q( k6 m4 {9 L- o
0 I. k1 @& X- @: Q! \* ~% Y# j5 Z! o  q4 R2 ~
首先:说一下项目发起理由,主要是因为手上现有机械键盘为usb键盘,不支持蓝牙,灯效过少且定制性差。 ( L2 `( s+ g/ y- Y( v
) r% Z0 `3 M2 G/ c1 b! U2 }
项目目标:     改造键盘,增加蓝牙、usb、扩展灯效。# X* }6 v2 M. W% i) y# D* `, b/ H: P

+ j( r9 N: t: K* _, o9 \/ r; k5 Z2 E1 ^方案:蓝牙da14583(就是那个功耗低到没朋友的货)主要实现按键检测,蓝牙键盘;stm32L432(这个功耗也非常低,性能也很强)实现主要usb键盘及灯控。补充:因为有吧友问到,这里说一下键盘型号:ikbc c87。2 ^* X, c6 `/ I0 o6 ?% H
& ~- V: i) J- `+ e8 j
- y3 x0 M4 U% D2 k  W
接下来分别介绍软、硬件部分具体实现* v  m  c+ z" t7 V7 |& f$ D5 W9 c" v
一、软件(蓝牙、stm32):: M) \* i6 X% N& |# z4 _' p
    1、整体框架- C2 |# p- ]5 z, K
         概览.jpg
# w/ q  T1 F( ]; l    2、主程序流程
1 Z4 o* z1 a' q/ Z      
  a、蓝牙部分:按键扫描,键码映射( 通过硬件部分可得到映射表),蓝牙按键发送,发送协议数据。流程如下:9 d& z- ]7 K3 z/ K5 i2 @0 W
               ble.jpg
+ Z% w- b6 I6 u6 Z9 g3 A/ Q/ I" x' C

5 |! P$ c- s4 T3 ^. O* t. S( o       b、stm32L432:主程序结构,协议处理,usb键盘枚举,usb按键发送,灯控。流程如下:
7 Z1 r( E6 C# H$ O3 _               l432.jpg 3 f; a9 P9 a3 v3 P
    + s% A& K& Z9 k  i$ A- c, M) ~
    3、通信协议介绍:
( p, _& D0 M3 B        目前使用的串口通信,为减少协议开销,提高按键实时性,协议由两个字节:1 L0 _' N; s: e: M: ^# ?  D
             protocol.jpg
% _* D( y8 m5 C. F& r    # [: m9 Z$ y& K  V% e7 W/ F
    4、灯效3 R& |' q$ I1 H) S7 C: p
        目前实现的灯控包括:
) v, k& P: _( _  y9 }            a、全灭;
% d; [+ h! y- p% S9 P            b、全亮(可调亮度);2 p3 c4 g7 R: c) s4 D9 a
            c、全呼吸灯(可调呼吸速度);
9 [% N% {! {/ f) M9 o- Y            d、按键对应行亮(可调亮度);
) F, g5 U! z, l9 d/ ^
- b6 G  r+ T: W: k7 y
( s& F1 W. L1 _, e8 t9 Q6 O( P
二、硬件:
4 q6 F* E  U5 ?: p& i  C( N
    1、检测键盘引脚与主控引脚对应关系(主要包括按键行列引脚,led控制引脚,电源引脚),检测方法:万用表测导通
! `) O8 c5 W4 u9 E5 E             主控.jpg
* f( H$ m, [# |4 _
7 _% ~, J8 g. l8 y3 D. L# ^   2、准备usb按键对应码表一份,如下图:https://pan.baidu.com/s/1gfwnVSR
1 R: s0 ^* o) @& N' v' i+ f0 o! p    hid.jpg
' C7 _( s4 a7 o# ^$ k3 p& O        ) C; P3 x: }$ X3 }1 c2 w
    3,再根据引脚关系和键码表,可得出下表* g0 g" `2 B  |$ c3 H9 I
         映射.jpg 9 b, {: i( }( i0 C+ e' }8 G

5 {/ j4 A) h  R9 P5 K+ x+ b' |$ P* X" e1 j. d6 X* _* ]
    4、拆键盘主控,用飞线大法连接蓝牙,nucleoL432等
. L8 s0 [% t5 D$ [3 t1 T( f          a、键盘主控引脚飞线,40多跟。。。。。累死了! d! Y; [7 }5 n: G
                  P61119-015909.jpg 4 B) T; W. |, u0 f( M; L9 `
& e( f: l4 f# T) i% p/ V
              b、蓝牙模块跳线部分
0 V" ]5 {8 H. j: f                   P61119-015726.jpg
1 K" s" ^5 J2 Q2 g; r7 y" y3 y, N8 i* k' m0 U7 X) l9 r, Q# x
            c、nucleoL432主控板,灯控线没有连接,所以看起来线不多,图中至连接了串口和usb
% _0 R8 N8 p& P9 _) A$ s                   P61119-015802.jpg 7 b+ v7 f! Z  _) J8 Q  Z; i

$ G6 J( g4 T( F9 [7 y% z     5、上电调试* s6 `( \$ E5 I4 P! h5 P4 r
         debug.jpg
0 a) U! m% f$ g, r6 e6 D, s. S. L
. Z5 p3 \+ k( J" g
至此:" X+ K2 x2 s4 o$ p  U: A3 |
    基本功能完成,其中灯控是以行为单位。代码实现了部分灯效(nucleol432自带的灯上测试通过),没能在键盘上测试不是我不想...只因为买的灯,至今还没送到,以后再也不用申通了!!!
+ B0 l2 V! F# n; i

! y' J1 p4 u$ l! Q: L以下是视频演示:; M' o; K+ ]0 h2 c3 j. {
    1、基于蓝牙的键盘部分
$ |7 B% B. u3 M7 H      0 _; n& w+ {2 J4 }3 m
% d/ k' {. C" Y  t1 E$ X6 G
    2、基于nucleoL432的usb键盘部分# t' W8 u# O; U5 j8 K
          i" `+ F: s" \8 S

9 C8 a' @# v) u! H) a    3、基于nucleoL432的灯控部分(灯控部分更新上传)
0 b% u" T+ G# B        / V0 p8 a4 a9 c# m7 @4 N
. B: s1 R8 A( @5 B' c0 s5 ]/ ]
最后、不足及待完善的部分:
; Z9 S; Q; [! W: h) K  a    1、键盘硬件支持全键无冲,现在软件只是实现了标准usb键盘设备,最多同时发送6个按键,全键无冲部分待实现;
5 v7 K' v& m" c    2、灯控现在是行控制,灯效扩展空间及其有限,以后会改为行列控制模式(飞线),甚至改成rgb行列模式(重画pcb),以实现更多效果;
  L- O/ u1 O& t+ O6 h    3、当前通信方式为串口,速率过慢,虽然感觉不到按键延迟,但是按键响应越及时越好,以后接下来会将改为spi;. m1 ?3 R+ q, ?& z' }& R* p
    4、电池电源管理和睡眠还没有实现,低功耗也是本次改造机械键盘的主要目的之一,待增加;( s) |; f6 m# G
    5、按键映射只做了基本按键功能,fn加按键的映射键位暂未实现;

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

6 E) V% g# V2 c8 P% Q! }3 J2 k8 G+ X# f2 C  }& l
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 编辑
& V3 t# H- _8 l# w1 \
紫宸 发表于 2016-11-25 21:08- W& \) r9 z2 m- h6 u8 `
请问用的蓝牙模块的蓝牙部分在哪可以参考?
3 W1 y( _4 k! E: }; {3 U& M' s
蓝牙部分 爱板网经验频道做过分享过经验【DA14580DEVKT-B评估板】http://jingyan.eeboard.com/article/75260  这是第一部分链接,一共7部分剩下的自己搜5 i8 \6 \1 X0 }2 a2 T  d
踏平幼稚园 回答时间:2016-11-23 10:25:30
watershade 发表于 2016-11-22 21:28
- T0 U" \9 s, q$ U3 s6 e) y我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。
6 A& [2 m$ s! z
6 o7 j) T) d& l) j, } ...

2 R2 M7 q1 c4 o$ f' y; x" \3 l+ o我也喜欢简约,对绚丽的灯效外观之类没太大兴趣   加灯只因为看着那么多没用的io口舍不得浪费
watershade 回答时间:2016-11-22 21:28:40
本帖最后由 watershade 于 2016-11-22 22:08 编辑 ( P9 ~$ r% ?! s7 u" U- x
踏平幼稚园 发表于 2016-11-21 21:49" J$ q, y1 U- Z: p" F
ikbc c87
$ S( M6 I2 F7 c1 N: E  r% `
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。! F5 D) |( }, b. N* W. D3 n

0 ~* A2 I1 S8 v( F2 c1 ^6 E+ @
zero99 回答时间:2016-11-19 07:21:33
感谢楼主的分享
天外流星_0 回答时间:2016-11-19 11:51:39
厉害!感谢分享
小小超 回答时间:2016-11-19 14:08:21
( j, O/ A( [" I. y% _6 y% R
感谢楼主的分享
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, b! ^; ^" e8 w7 O这键盘你哪儿搞的?看着不错
% d) h, D9 v& q. X, v/ p6 P. D& c% Q
ikbc c87   
wweeww 回答时间:2016-11-22 10:44:53
就冲着飞线,赞一下
踏平幼稚园 回答时间:2016-11-22 21:16:10
wweeww 发表于 2016-11-22 10:44
  E# J* C* f2 M0 R% ]4 }& q: h就冲着飞线,赞一下

9 V2 W( Q* ]0 n感谢 支持   
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 手机版