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

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

[复制链接]
踏平幼稚园 发布时间:2016-11-19 03:30
本帖最后由 踏平幼稚园 于 2016-11-21 22:07 编辑 4 i+ Z1 z: [8 V6 v( X; s) t: V
/ ?# V9 F. Y0 L$ K' c
忙了2、3个月了,终于有点小成果了,下面跟大家分享一下。
9 f4 b: u( p7 ~$ c2 T5 x+ N* K: W
& c8 a/ d+ p0 t3 }$ Q11月20更新:
: _" t* u! D" A9 m# K, ~  i) ]+ V) C    1、灯控代码更新,解决灯效显示bug;9 V0 s7 [5 u( Y+ s$ h0 }
    2、stm32l432引脚布局更改,解决灯控中有一路pwm的io脚与usb引脚冲突的bug;
3 F; }4 B) ?4 C6 d+ e    3、灯终于到了,视频演示出增加灯控视频(目前实现了三种:全亮<亮度可调>、全呼吸<频率可调>、按键行点亮<度可调>);* F3 }! G2 f. f

0 x4 s6 _; S* U- e& Y8 a1 ]6 b! k+ U$ W- J

0 L6 r/ N8 K4 C& `+ D7 D! a$ _& O首先:说一下项目发起理由,主要是因为手上现有机械键盘为usb键盘,不支持蓝牙,灯效过少且定制性差。   Q' }" g3 _3 l3 X; V9 \- [$ r) M4 h

- `/ |+ f/ D# v. B: \项目目标:     改造键盘,增加蓝牙、usb、扩展灯效。
- \3 S1 T9 R: n* Z3 v8 L# I
3 z* N) P/ y) Z# N% k4 E4 o' s7 C方案:蓝牙da14583(就是那个功耗低到没朋友的货)主要实现按键检测,蓝牙键盘;stm32L432(这个功耗也非常低,性能也很强)实现主要usb键盘及灯控。补充:因为有吧友问到,这里说一下键盘型号:ikbc c87。
4 f. T, l. G1 q" K1 P, T' u4 k
! e  T9 q0 z. N2 x+ z4 g6 t+ ]1 p0 j1 m
接下来分别介绍软、硬件部分具体实现
* ?: ]$ G! I( N4 r+ J/ P一、软件(蓝牙、stm32):) a; ~& n+ ]0 p; n: Z: J7 ]- ~
    1、整体框架9 ]& d/ {* ^! n5 f+ `6 G2 c
         概览.jpg
5 f. A- A4 }  C: k* ?4 J, x    2、主程序流程
7 f5 F) k2 K2 V# a3 \      
  a、蓝牙部分:按键扫描,键码映射( 通过硬件部分可得到映射表),蓝牙按键发送,发送协议数据。流程如下:
4 n& W& |2 n6 \9 |               ble.jpg 4 k2 K. E) p, P( x! j

+ }) I, w; h! D6 m7 @# A6 ?" I! M7 D) {3 ~
       b、stm32L432:主程序结构,协议处理,usb键盘枚举,usb按键发送,灯控。流程如下:- v0 q6 ^! J" V( `
               l432.jpg
9 F3 c9 `! U" }1 V8 _. C   
) i, r$ W, W+ G: _0 ]* p    3、通信协议介绍:8 G- p! t( l  l' e
        目前使用的串口通信,为减少协议开销,提高按键实时性,协议由两个字节:
9 e8 y6 D4 K# Q             protocol.jpg 6 z8 N+ V/ y( i
    & v, `8 r- T6 Z3 {5 c
    4、灯效2 m, U" U" T  E
        目前实现的灯控包括:- r5 h  {& U7 t  e8 W
            a、全灭;
$ o6 u$ K, l# c& h0 v            b、全亮(可调亮度);
0 [/ y, p* L% i+ D            c、全呼吸灯(可调呼吸速度);) Q$ F: c' g8 g0 E
            d、按键对应行亮(可调亮度);

& J( V8 W" W: b4 o. i1 c
% U1 n1 c: ^: o- v1 `; ]2 ]' l  h0 O. Q" z) O- p
二、硬件:
( \5 ^9 ^: \, K& h
    1、检测键盘引脚与主控引脚对应关系(主要包括按键行列引脚,led控制引脚,电源引脚),检测方法:万用表测导通
, o! K7 Q! G6 F  W# ^. w7 w             主控.jpg * @: N4 l  I' _8 M7 `8 g

* S0 O( c. H6 U   2、准备usb按键对应码表一份,如下图:https://pan.baidu.com/s/1gfwnVSR* \" X* s2 {$ H; n/ j, L
    hid.jpg / p7 R  y0 K0 [% _. }/ [2 W: ~
        
; X1 `% q; r) k) |3 }3 ^    3,再根据引脚关系和键码表,可得出下表1 x! s( p' k* c! D  f! B$ D6 I
         映射.jpg
2 `" \; i: W, I3 A1 |; R5 K) A5 r. Q- g) n& C! U3 C  @+ l
2 Q. z+ }( a( u. W
    4、拆键盘主控,用飞线大法连接蓝牙,nucleoL432等
4 h! F0 r+ b7 N( P& q          a、键盘主控引脚飞线,40多跟。。。。。累死了4 \" ~% R( P; q- {2 N* |! C4 D
                  P61119-015909.jpg
) x3 A" F0 V: [! o6 l2 v  U- k5 p' v4 J3 S
              b、蓝牙模块跳线部分
% t2 P, O; i1 b1 V+ `0 p9 L+ a6 x" J  U                   P61119-015726.jpg ! [% J6 m8 a3 ]/ K( D6 m: Q

  ?& m! g4 \3 o4 H6 \8 A! {, W& F6 V            c、nucleoL432主控板,灯控线没有连接,所以看起来线不多,图中至连接了串口和usb+ r3 h( e  x* R' |$ |- z) k- l* }5 C
                   P61119-015802.jpg & L! Z* r9 C# ?/ t
) q% w2 I8 ~* L  z) ]2 B
     5、上电调试6 A% ^9 L3 E4 i0 b% C9 c" z1 g" O
         debug.jpg % h7 L3 \2 K4 P. K$ Z& ]$ b% K1 I
; @. I6 V  W. |/ ~

! P# l- T/ Q3 M9 S至此:4 X3 [9 Q, Q) }3 G4 O  f
    基本功能完成,其中灯控是以行为单位。代码实现了部分灯效(nucleol432自带的灯上测试通过),没能在键盘上测试不是我不想...只因为买的灯,至今还没送到,以后再也不用申通了!!!
# x9 ~) ^% n. \) s
5 S) q: R8 n  Z% s. u5 O
以下是视频演示:
  Y0 t( C7 ~$ S) E3 g    1、基于蓝牙的键盘部分3 n6 S( C; i: I% T6 T; T7 c/ x% {0 \1 }
      
1 t: ~. T" G6 C5 X0 S
0 l( p6 \: E) ^1 e# d1 M1 b9 M
    2、基于nucleoL432的usb键盘部分
" F% J" W# ?' \1 X        ) Q3 @* P: t- U- J; u1 ?

' X) C0 D! R. @/ i& w& c' O( @    3、基于nucleoL432的灯控部分(灯控部分更新上传)
, q0 f. m9 K  J3 {        ) ~* X6 u5 `! ?8 F7 u
6 v- b: ?  r+ M+ \' \+ b
最后、不足及待完善的部分:4 w+ s( S$ W9 y7 \1 b7 ?% J
    1、键盘硬件支持全键无冲,现在软件只是实现了标准usb键盘设备,最多同时发送6个按键,全键无冲部分待实现;
7 V/ w' h$ h+ c    2、灯控现在是行控制,灯效扩展空间及其有限,以后会改为行列控制模式(飞线),甚至改成rgb行列模式(重画pcb),以实现更多效果;
  |, ~( N# u( a( s2 o    3、当前通信方式为串口,速率过慢,虽然感觉不到按键延迟,但是按键响应越及时越好,以后接下来会将改为spi;# Q& L, z7 L$ q8 U; e: W$ b
    4、电池电源管理和睡眠还没有实现,低功耗也是本次改造机械键盘的主要目的之一,待增加;6 R. D8 f0 H  P4 O
    5、按键映射只做了基本按键功能,fn加按键的映射键位暂未实现;

& M4 T; C  E8 H    6、键盘目前是调试完善阶段,所以板子都是直接飞线裸露在外面,同时键盘也因此不能组装起来,待调试稳定之后,会为蓝牙增加ota功能,stm32L432增加串口升级固件功能,并集成到键盘外壳中。
7 W' R: s& d8 F: |+ G, r0 c! ]. ]
) F  Z, \7 m3 e+ s) L  J9 X* m# B

7 \0 w& m* T" r& XnucleoL432代码(已更新): 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 编辑
( f" a, e' Q( y( M* a+ ]+ m4 Y; f6 @, H
紫宸 发表于 2016-11-25 21:08+ k0 M; `6 z' T
请问用的蓝牙模块的蓝牙部分在哪可以参考?

4 T# a% b: ~- ?4 A7 e6 i6 @蓝牙部分 爱板网经验频道做过分享过经验【DA14580DEVKT-B评估板】http://jingyan.eeboard.com/article/75260  这是第一部分链接,一共7部分剩下的自己搜
2 y: E) b6 h% S+ K
踏平幼稚园 回答时间:2016-11-23 10:25:30
watershade 发表于 2016-11-22 21:28# A+ q" Y+ G4 K* ~
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。
9 o: m# Z8 c, z  a0 l4 u9 V
3 y, S$ a( |# H% E0 p# k ...

7 j" T/ V) W5 M我也喜欢简约,对绚丽的灯效外观之类没太大兴趣   加灯只因为看着那么多没用的io口舍不得浪费
watershade 回答时间:2016-11-22 21:28:40
本帖最后由 watershade 于 2016-11-22 22:08 编辑 / M3 H: ^0 y2 |
+ ]4 T( s; d( Y/ y) X
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。- X: z2 i3 b, \/ Q5 y' ?

: D, q" ^1 I* _5 w) ]
zero99 回答时间:2016-11-19 07:21:33
感谢楼主的分享
天外流星_0 回答时间:2016-11-19 11:51:39
厉害!感谢分享
小小超 回答时间:2016-11-19 14:08:21
0 M+ z+ v6 Q2 D, 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
/ F: @; y$ m+ Z/ X0 i" d0 I这键盘你哪儿搞的?看着不错

& b; E" w0 V/ e$ v6 bikbc c87   
wweeww 回答时间:2016-11-22 10:44:53
就冲着飞线,赞一下
踏平幼稚园 回答时间:2016-11-22 21:16:10
wweeww 发表于 2016-11-22 10:44
* ]' x& Z8 J. m/ G8 H就冲着飞线,赞一下
% j* c5 ^+ N' _* q
感谢 支持   
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 手机版