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

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

[复制链接]
踏平幼稚园 发布时间:2016-11-19 03:30
本帖最后由 踏平幼稚园 于 2016-11-21 22:07 编辑
3 O2 H# K% ?4 ^
+ W7 E9 M. x% L忙了2、3个月了,终于有点小成果了,下面跟大家分享一下。9 r2 P( Y9 q$ R

3 i4 @$ C6 s) ?1 ~" N$ r5 c11月20更新:" ^  y" p0 u2 u0 T9 l
    1、灯控代码更新,解决灯效显示bug;
6 I# A( _( Y- p6 Z    2、stm32l432引脚布局更改,解决灯控中有一路pwm的io脚与usb引脚冲突的bug;
6 @$ w/ j( g5 `! i* q    3、灯终于到了,视频演示出增加灯控视频(目前实现了三种:全亮<亮度可调>、全呼吸<频率可调>、按键行点亮<度可调>);% d2 `0 e# f5 o+ j: P" ~

# A* X$ p9 h, B7 O+ U; g/ c, j
! P5 I3 i  y' a+ a! Y! s! ?3 `) T
首先:说一下项目发起理由,主要是因为手上现有机械键盘为usb键盘,不支持蓝牙,灯效过少且定制性差。 , Y5 f! X; C9 H( _! b( R

1 h$ X/ J  ~/ D, x- l/ a+ m- {项目目标:     改造键盘,增加蓝牙、usb、扩展灯效。4 ^3 S5 z  q$ |* d9 Q
, v9 x; L3 S% t3 Z% |, c
方案:蓝牙da14583(就是那个功耗低到没朋友的货)主要实现按键检测,蓝牙键盘;stm32L432(这个功耗也非常低,性能也很强)实现主要usb键盘及灯控。补充:因为有吧友问到,这里说一下键盘型号:ikbc c87。
4 l* f) o4 V( }3 y: B! W6 }. {

2 C" k+ X- U! Y# D接下来分别介绍软、硬件部分具体实现
9 c% A8 `* g& y一、软件(蓝牙、stm32):7 }, O* x* O3 Q2 e: }
    1、整体框架
, o1 t" \8 S; U( v9 {         概览.jpg 7 |1 V* W( O5 E
    2、主程序流程$ z0 R4 D( u4 |) C
      
  a、蓝牙部分:按键扫描,键码映射( 通过硬件部分可得到映射表),蓝牙按键发送,发送协议数据。流程如下:
# p% p8 S+ O' b               ble.jpg " ?  `% ?! A4 m1 `5 u4 Y
$ Q9 r5 n2 a& \; U) ~
9 l6 q! F! b- F% N# v1 c8 q7 N
       b、stm32L432:主程序结构,协议处理,usb键盘枚举,usb按键发送,灯控。流程如下:
2 K, }% N9 S  h. w               l432.jpg ; M1 s( G# n# w6 O
    $ w  ?) I$ F! t% {* U0 J( q+ w+ m
    3、通信协议介绍:
* v; x. M) s& Q& K6 G. v2 u        目前使用的串口通信,为减少协议开销,提高按键实时性,协议由两个字节:
9 V- ?$ o" {; Z3 D2 X7 w             protocol.jpg / \1 Z: V/ o( A9 i! C9 _
   
: u9 `1 y/ s7 _" c5 O) K* z    4、灯效7 J6 {$ V4 B/ z( F& d
        目前实现的灯控包括:
+ d: O* z* O" H. z/ D: F: H            a、全灭;
8 q( _  F. G; G8 j+ x$ b            b、全亮(可调亮度);
4 I7 T0 t' C6 z, `# V            c、全呼吸灯(可调呼吸速度);; r, ~3 Y) L; @/ m$ d
            d、按键对应行亮(可调亮度);

8 _6 U+ w( y9 [/ Y( m# T- B" B4 d! ?0 F5 O% e- ]
4 M; U, a9 T" h# r
二、硬件:

0 B0 l, {8 U7 \& y    1、检测键盘引脚与主控引脚对应关系(主要包括按键行列引脚,led控制引脚,电源引脚),检测方法:万用表测导通
7 ^6 z  B( b. Q/ N4 i3 C             主控.jpg
% a" H, v$ U. r4 z/ ?$ Z4 N+ \
' ~5 m( P" u$ e; F% C   2、准备usb按键对应码表一份,如下图:https://pan.baidu.com/s/1gfwnVSR. C. J  u( U# l; P/ P3 M; \6 c
    hid.jpg * z( M  s% P( @) t+ S- z" |
        * Z7 d( V7 G; [% e) p
    3,再根据引脚关系和键码表,可得出下表; p; D# Q7 ^6 {" Q( C: Z2 A
         映射.jpg
) }; c% U( L& B3 j" U# V* d! C6 J$ i

$ f; A: W% v" H$ S' }% L( `    4、拆键盘主控,用飞线大法连接蓝牙,nucleoL432等* c0 X/ g6 k' H5 z$ v
          a、键盘主控引脚飞线,40多跟。。。。。累死了
& r/ r4 p8 I0 B                  P61119-015909.jpg # C0 F4 ^. b* Z1 D$ a

( G8 M# R8 e8 ]$ `& a              b、蓝牙模块跳线部分
& T9 q; L' \2 `+ o3 |# s                   P61119-015726.jpg
) k4 ^$ H( H" y  O4 U% f6 w$ t8 L* J3 A* E
            c、nucleoL432主控板,灯控线没有连接,所以看起来线不多,图中至连接了串口和usb
4 v, `' a. K. l( {0 R' H: [( Y                   P61119-015802.jpg
# ]9 E9 ^( E1 v0 M' K' y# ?7 p
     5、上电调试
" }/ J3 B8 v; z. i         debug.jpg ; G6 ?3 X2 {' ^! Y5 [. D! X; j' s

% i- l' a( u. Q: F  ]
! Y1 T; S" I; E0 O; y7 p至此:: o8 q. x4 i  W( j  p7 w" |% i
    基本功能完成,其中灯控是以行为单位。代码实现了部分灯效(nucleol432自带的灯上测试通过),没能在键盘上测试不是我不想...只因为买的灯,至今还没送到,以后再也不用申通了!!!
6 b8 [/ X& p  |7 f! P# ?0 {

* N! T2 U% n' f- m2 f7 z, [以下是视频演示:% n# \# @$ H: p9 x1 ]
    1、基于蓝牙的键盘部分
  B8 ~: P1 M3 P! z3 l1 Z/ O      ( A3 M1 P. r4 @* q/ x

$ U3 X3 G2 E) G) [% D    2、基于nucleoL432的usb键盘部分; V# h' q% @9 Z2 b% B2 Q
        
3 {5 }& z  H2 \: J. h- s& ^/ j
5 D, A2 p3 o* F: L1 [  e    3、基于nucleoL432的灯控部分(灯控部分更新上传)) H# S0 z* [6 c) R2 o; }) |: H
        
! u8 [" C+ U0 A& U' f
1 P! K$ X5 ?/ v! k最后、不足及待完善的部分:# a" q7 P  y# v1 [
    1、键盘硬件支持全键无冲,现在软件只是实现了标准usb键盘设备,最多同时发送6个按键,全键无冲部分待实现;8 T3 M0 N+ k0 A: @9 g- ?  d
    2、灯控现在是行控制,灯效扩展空间及其有限,以后会改为行列控制模式(飞线),甚至改成rgb行列模式(重画pcb),以实现更多效果;
' X! S7 N5 Z# Y8 }    3、当前通信方式为串口,速率过慢,虽然感觉不到按键延迟,但是按键响应越及时越好,以后接下来会将改为spi;8 J# y4 H) C: C. T- F  v. _
    4、电池电源管理和睡眠还没有实现,低功耗也是本次改造机械键盘的主要目的之一,待增加;
& V! k7 S3 e/ V9 H) E, O- f0 E    5、按键映射只做了基本按键功能,fn加按键的映射键位暂未实现;

; _( ^5 a# H) w+ H6 f( w$ w    6、键盘目前是调试完善阶段,所以板子都是直接飞线裸露在外面,同时键盘也因此不能组装起来,待调试稳定之后,会为蓝牙增加ota功能,stm32L432增加串口升级固件功能,并集成到键盘外壳中。
# a# `8 `+ z! d0 R

9 U% z! j! T5 p7 B# ?9 r# s7 b" W+ p6 ?2 X
nucleoL432代码(已更新): 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 编辑
! y9 n  C( ]; v, H" }, Z$ x+ S
紫宸 发表于 2016-11-25 21:08+ B$ W+ [: l4 F5 [
请问用的蓝牙模块的蓝牙部分在哪可以参考?

2 X; q6 d( r2 u( r" E4 T. F蓝牙部分 爱板网经验频道做过分享过经验【DA14580DEVKT-B评估板】http://jingyan.eeboard.com/article/75260  这是第一部分链接,一共7部分剩下的自己搜% P; Y8 d4 c) |! C- [
踏平幼稚园 回答时间:2016-11-23 10:25:30
watershade 发表于 2016-11-22 21:280 f# u5 F, D  r# R7 V+ @
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。8 _+ m2 L* Y6 j. `7 Y& }/ h0 G

" l% g. D0 s; H. W  M4 f4 h ...

% c2 ?; g# l9 ^我也喜欢简约,对绚丽的灯效外观之类没太大兴趣   加灯只因为看着那么多没用的io口舍不得浪费
watershade 回答时间:2016-11-22 21:28:40
本帖最后由 watershade 于 2016-11-22 22:08 编辑 - Z: P, v: u: K1 v0 v
9 w3 t, ?* v: s
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。3 A. D, C; k' H+ w& F

( H& ^# x& A2 x0 N
zero99 回答时间:2016-11-19 07:21:33
感谢楼主的分享
天外流星_0 回答时间:2016-11-19 11:51:39
厉害!感谢分享
小小超 回答时间:2016-11-19 14:08:21

/ o, T) A3 O9 `感谢楼主的分享
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:385 I1 C, c* F# Q9 l8 j! ~9 U
这键盘你哪儿搞的?看着不错

: n; l1 }3 t' r) C* pikbc c87   
wweeww 回答时间:2016-11-22 10:44:53
就冲着飞线,赞一下
踏平幼稚园 回答时间:2016-11-22 21:16:10
wweeww 发表于 2016-11-22 10:44
, Z  L. [9 _  j* i就冲着飞线,赞一下
1 H6 {  R3 I8 ~5 |! x; L
感谢 支持   
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 手机版