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

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

[复制链接]
踏平幼稚园 发布时间:2016-11-19 03:30
本帖最后由 踏平幼稚园 于 2016-11-21 22:07 编辑
" U% I  m& {/ ~  c' n- P0 F' p% N8 {- X" D8 @
忙了2、3个月了,终于有点小成果了,下面跟大家分享一下。
4 |+ U+ _4 R& o" E- P
8 K5 |5 w- \$ k  L! {11月20更新:! B5 v+ x3 o; }( W& q1 K2 E. P
    1、灯控代码更新,解决灯效显示bug;# k; U! N  G# @3 A
    2、stm32l432引脚布局更改,解决灯控中有一路pwm的io脚与usb引脚冲突的bug;7 z" y" h% L$ {% b+ \
    3、灯终于到了,视频演示出增加灯控视频(目前实现了三种:全亮<亮度可调>、全呼吸<频率可调>、按键行点亮<度可调>);
  Y* e& A- M) u+ K3 o/ K
( H6 I1 P5 R& l

8 a7 W; p- z( E* u8 N* n4 `* J1 W; Q$ A. P
首先:说一下项目发起理由,主要是因为手上现有机械键盘为usb键盘,不支持蓝牙,灯效过少且定制性差。
* D. c' _5 O4 f

# ?5 t7 U5 F! V) O; _5 |项目目标:     改造键盘,增加蓝牙、usb、扩展灯效。1 m! O0 c& Q  {* B! I
% b5 b2 `- Z$ y' C; S! C  l; D7 d
方案:蓝牙da14583(就是那个功耗低到没朋友的货)主要实现按键检测,蓝牙键盘;stm32L432(这个功耗也非常低,性能也很强)实现主要usb键盘及灯控。补充:因为有吧友问到,这里说一下键盘型号:ikbc c87。% \2 r  j/ f) t; F3 Q
  I) u8 I5 H# V* K
9 M8 V+ \. ]9 f; M4 M5 o  Y
接下来分别介绍软、硬件部分具体实现
( ^. h: u" x' c* v% F: J+ n一、软件(蓝牙、stm32):- I- }! N8 [: g0 e  Z6 ^, z) A
    1、整体框架
' T- A+ o2 L  ]6 O# e: X+ }( U         概览.jpg
% k% ?) v. s' S# M    2、主程序流程
* z0 S9 g$ `3 r3 T      
  a、蓝牙部分:按键扫描,键码映射( 通过硬件部分可得到映射表),蓝牙按键发送,发送协议数据。流程如下:/ f$ S& z* t* s# s7 X; ^7 b8 h
               ble.jpg # |% w% h% Z  ?1 p
7 d3 c' ?6 p1 A

5 \$ L& P' ~: d& ^  a: |       b、stm32L432:主程序结构,协议处理,usb键盘枚举,usb按键发送,灯控。流程如下:0 ]/ v0 N( [8 r# Q; h
               l432.jpg
# O1 P# |  T& F: L9 _2 c$ m* e7 O+ @   
- m( a; ]% `) @; p4 A    3、通信协议介绍:
  U: G: _. t  C! ?) u0 j        目前使用的串口通信,为减少协议开销,提高按键实时性,协议由两个字节:+ h. r* T4 @7 w7 l- B) L3 z
             protocol.jpg . D# ~7 ]& s1 g
   
) o: {& P* {: c: c$ T    4、灯效
1 l4 J  |- T2 e
        目前实现的灯控包括:# D& {; p" u7 J' k: g9 j  }
            a、全灭;3 s1 v" W. X$ [1 F* i- z
            b、全亮(可调亮度);) u* W9 g* p* |- k; ?
            c、全呼吸灯(可调呼吸速度);, }: Y9 z2 w1 ^* X* K5 Q- k
            d、按键对应行亮(可调亮度);

. b+ O0 s- I# q7 p( g3 d# U! N4 R% G

  [9 _$ U3 N% z2 [3 V  o0 x二、硬件:
' ^3 R* k4 H2 `
    1、检测键盘引脚与主控引脚对应关系(主要包括按键行列引脚,led控制引脚,电源引脚),检测方法:万用表测导通% I* V6 B4 x% Y
             主控.jpg . \: `0 z; x: v2 ]

- t$ g4 e/ y. Z; K' E* v* ^' Q3 b   2、准备usb按键对应码表一份,如下图:https://pan.baidu.com/s/1gfwnVSR! ?/ h: w1 G- j. T" ^5 r
    hid.jpg
. ]: D- s2 u$ n# D        
5 n: ^% [+ j( C) R    3,再根据引脚关系和键码表,可得出下表% z3 c* ?2 K( u: I: L
         映射.jpg
" h8 F; K) F3 p; |- |' F
; w1 g- E9 x* H* i0 Y7 `5 R* k3 ]. d/ W: F0 s; x
    4、拆键盘主控,用飞线大法连接蓝牙,nucleoL432等! U  Q" j1 ?, H2 `) u5 w
          a、键盘主控引脚飞线,40多跟。。。。。累死了
6 N. \2 N, N6 }2 q$ [4 _& {                  P61119-015909.jpg
. R  E7 I& I' I$ N5 M  ~
1 _6 |% I! _! Q- K; V5 t! }0 F' A              b、蓝牙模块跳线部分
" y0 _) A- @/ K3 A8 K" n/ o6 C                   P61119-015726.jpg , ~" g" w- {* A" p" n

2 ?* J5 i/ i8 `0 g0 f* W! p8 h            c、nucleoL432主控板,灯控线没有连接,所以看起来线不多,图中至连接了串口和usb( Z4 k9 `) B, q4 D( i/ ?# z8 ^, Z
                   P61119-015802.jpg
1 {+ e% ]+ b; i  z( F% M, I5 F+ u3 M
     5、上电调试
1 w4 U6 R) \4 ?5 i8 I, k         debug.jpg
) `+ S' e( O) i' d/ ~3 f- A# f* M- t' g4 c4 s7 K( `
/ c$ ?; s# s; B" \9 O
至此:! S3 I% \5 ~" r8 W
    基本功能完成,其中灯控是以行为单位。代码实现了部分灯效(nucleol432自带的灯上测试通过),没能在键盘上测试不是我不想...只因为买的灯,至今还没送到,以后再也不用申通了!!!
$ L4 @4 p" G; K( s# z1 t. A8 c; s
$ x* }. l2 w1 Q" B3 a! L
以下是视频演示:
) `  h, v- g  Q' P1 l% h: o5 z    1、基于蓝牙的键盘部分. W4 G+ o. x4 M% K- e* [
      % t5 K- \5 w  |0 t7 u( a
2 b: z  L) u# o/ ~/ `5 b# |
    2、基于nucleoL432的usb键盘部分, \" G1 {7 U5 o1 C; k9 D
        1 q' |; N7 l( ^; c
/ r, y1 e' m3 ?" K; v2 A7 N
    3、基于nucleoL432的灯控部分(灯控部分更新上传)
. I" u/ M! F0 S6 |+ O4 o        
( p6 b- D, y9 o. r7 U
. X5 b+ o+ }+ ]4 j) [% l最后、不足及待完善的部分:
. U7 b0 [  p; z7 A/ S% ^" W    1、键盘硬件支持全键无冲,现在软件只是实现了标准usb键盘设备,最多同时发送6个按键,全键无冲部分待实现;
- H- o. m3 W6 |% Y! V& O- h4 ?    2、灯控现在是行控制,灯效扩展空间及其有限,以后会改为行列控制模式(飞线),甚至改成rgb行列模式(重画pcb),以实现更多效果;! f$ u% h, W2 k/ u, c
    3、当前通信方式为串口,速率过慢,虽然感觉不到按键延迟,但是按键响应越及时越好,以后接下来会将改为spi;4 g+ K* e. q, N3 J
    4、电池电源管理和睡眠还没有实现,低功耗也是本次改造机械键盘的主要目的之一,待增加;9 {9 Z  e# V/ g2 r, G% g
    5、按键映射只做了基本按键功能,fn加按键的映射键位暂未实现;
+ m- |( H" W7 @' q
    6、键盘目前是调试完善阶段,所以板子都是直接飞线裸露在外面,同时键盘也因此不能组装起来,待调试稳定之后,会为蓝牙增加ota功能,stm32L432增加串口升级固件功能,并集成到键盘外壳中。
, \0 I) S7 @4 I  Z* i

5 l4 t9 \+ G) |# c8 e( J2 w& Q. B7 T. u. ?% b' p
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 编辑
4 z! A- h3 ]7 Z
紫宸 发表于 2016-11-25 21:089 z$ T) J: I& A. E  h9 y& R
请问用的蓝牙模块的蓝牙部分在哪可以参考?
# R! r! d' g+ Q9 o3 B4 |3 |% T
蓝牙部分 爱板网经验频道做过分享过经验【DA14580DEVKT-B评估板】http://jingyan.eeboard.com/article/75260  这是第一部分链接,一共7部分剩下的自己搜1 T' h" Y: z! `) W
踏平幼稚园 回答时间:2016-11-23 10:25:30
watershade 发表于 2016-11-22 21:28
- b! h& I2 q8 `6 z' s( C2 n我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。' n; N' N+ x! w

: e9 z. t. d! }. D7 [- [% i( A' W ...

7 s" H7 g9 A. u9 n4 X$ E% E# {7 s我也喜欢简约,对绚丽的灯效外观之类没太大兴趣   加灯只因为看着那么多没用的io口舍不得浪费
watershade 回答时间:2016-11-22 21:28:40
本帖最后由 watershade 于 2016-11-22 22:08 编辑 ; y" N, q  l1 k
$ Y3 {8 l3 S$ a3 k+ u. c# y
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。$ i4 w! \2 _: m8 H4 m: T
# v2 r8 n3 l# P
zero99 回答时间:2016-11-19 07:21:33
感谢楼主的分享
天外流星_0 回答时间:2016-11-19 11:51:39
厉害!感谢分享
小小超 回答时间:2016-11-19 14:08:21
" T+ _4 l5 t6 Z- l* ]0 u" ]' f
感谢楼主的分享
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:384 C2 L8 Q5 x; l# K9 R
这键盘你哪儿搞的?看着不错

7 y, D: `, G  [; g  |ikbc c87   
wweeww 回答时间:2016-11-22 10:44:53
就冲着飞线,赞一下
踏平幼稚园 回答时间:2016-11-22 21:16:10
wweeww 发表于 2016-11-22 10:44
3 I* x' M, Q* f2 Y% W) t' r就冲着飞线,赞一下

6 w" z2 x2 M& ]/ t8 }- H4 k感谢 支持   
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 手机版