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

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

[复制链接]
踏平幼稚园 发布时间:2016-11-19 03:30
本帖最后由 踏平幼稚园 于 2016-11-21 22:07 编辑 ; C2 ^5 ^, {- e3 c
0 l7 e6 b+ D) c& U& `& `
忙了2、3个月了,终于有点小成果了,下面跟大家分享一下。; ?; B5 I- M, W, r% J

) }' ?4 P8 W0 c4 z# ]0 S% E+ S8 q/ O4 _11月20更新:$ N& q6 X2 V8 h/ d9 z* j
    1、灯控代码更新,解决灯效显示bug;* a. G2 w7 @# H! ]
    2、stm32l432引脚布局更改,解决灯控中有一路pwm的io脚与usb引脚冲突的bug;5 C/ J* ~0 w+ J+ ~. L
    3、灯终于到了,视频演示出增加灯控视频(目前实现了三种:全亮<亮度可调>、全呼吸<频率可调>、按键行点亮<度可调>);
( [+ j, S" r) c" w. y" D* F0 S% O
; r5 y' |8 E( z9 C( |, d+ E8 U6 n/ D
/ W7 i2 f# }9 Y. c' `

8 P3 \; ~0 n- F2 H( ]首先:说一下项目发起理由,主要是因为手上现有机械键盘为usb键盘,不支持蓝牙,灯效过少且定制性差。 : p. {4 H% _) A+ [  `$ v) {

9 b9 b; _0 Q3 \# t. f项目目标:     改造键盘,增加蓝牙、usb、扩展灯效。
( h7 A! b' h5 f4 B) N
4 B$ B" Z# u( j& l7 a" w. x方案:蓝牙da14583(就是那个功耗低到没朋友的货)主要实现按键检测,蓝牙键盘;stm32L432(这个功耗也非常低,性能也很强)实现主要usb键盘及灯控。补充:因为有吧友问到,这里说一下键盘型号:ikbc c87。
9 K( R% y3 M9 B( |& o0 M& l
7 k. b& a2 r+ o: r( i: o) m: O" c" O$ i) T0 y$ q5 j
接下来分别介绍软、硬件部分具体实现) Z) d, P- K2 z! d/ r8 o3 d# v# n
一、软件(蓝牙、stm32):
( D7 Q" w: \2 M' R% g    1、整体框架* `+ D( B* o; N
         概览.jpg ) N6 Z1 ~  \; j3 o! {6 K
    2、主程序流程6 D# K# z( r8 q, W6 m( s
      
  a、蓝牙部分:按键扫描,键码映射( 通过硬件部分可得到映射表),蓝牙按键发送,发送协议数据。流程如下:; {) g1 z  b- Y% a. y- w
               ble.jpg 2 q6 I( H/ L& e, `0 B* d

+ B/ B) o3 y7 K9 y0 ^
/ V6 V6 e) `$ b       b、stm32L432:主程序结构,协议处理,usb键盘枚举,usb按键发送,灯控。流程如下:3 h8 e! ]7 u' t9 R4 c, ^5 B
               l432.jpg
7 K- L  ?) ~" a% U2 r    * P2 d/ _$ x5 j
    3、通信协议介绍:% q% G8 ]4 s/ x& T% x6 i
        目前使用的串口通信,为减少协议开销,提高按键实时性,协议由两个字节:# ?! ?3 i: K4 P: a+ k
             protocol.jpg
  F% d4 j2 J& j; y$ F    & _6 A) M( x; \% F; l/ ~, ^; I
    4、灯效/ S& R  n, q1 [# C
        目前实现的灯控包括:
% Y1 `" w1 j) }            a、全灭;
4 ?* U3 O6 k: B1 ^& Q            b、全亮(可调亮度);, t6 a  u, m! J9 g+ `+ C
            c、全呼吸灯(可调呼吸速度);( N4 t$ w4 H) I1 t
            d、按键对应行亮(可调亮度);
& l2 p( V0 B( \  g
, Z# q- S' w- H0 y6 N4 t2 e- j
* ]+ C! @/ x% f: Y, q1 w; [+ l* Y
二、硬件:

! a4 L# d9 I$ `5 \    1、检测键盘引脚与主控引脚对应关系(主要包括按键行列引脚,led控制引脚,电源引脚),检测方法:万用表测导通
7 b/ ]1 a  Q/ E+ [0 q, @             主控.jpg 9 ~, Y' K% w& U4 R6 N4 i8 h9 r

1 J) G5 n: C4 H1 N2 ^   2、准备usb按键对应码表一份,如下图:https://pan.baidu.com/s/1gfwnVSR; y( q, c0 g5 H/ A# o
    hid.jpg
; A- Y6 l& B: d. R- L        
1 ?3 h$ H( s4 f9 {1 f5 N' W    3,再根据引脚关系和键码表,可得出下表1 P; r5 ^; p3 p! A  ^1 K
         映射.jpg # E5 V  Y) W6 v$ A1 v
+ J: K  p3 D" v  ]9 X2 u
* h. Q* D3 W' G1 @* e
    4、拆键盘主控,用飞线大法连接蓝牙,nucleoL432等
$ P! d  I5 X  p3 ^7 t          a、键盘主控引脚飞线,40多跟。。。。。累死了
% y; i5 {$ J& Y; `1 B! G2 y+ R, K                  P61119-015909.jpg
+ l* q+ U$ x4 }# d8 A
% }. v7 K! V: n' P              b、蓝牙模块跳线部分
- _  ?( ]0 h( s+ i3 ]& B# C                   P61119-015726.jpg
% S" U- d! H$ ?+ |9 Q/ f9 L2 Z' e. Q+ u) n
            c、nucleoL432主控板,灯控线没有连接,所以看起来线不多,图中至连接了串口和usb! n# Y' Y( A6 a% G% _+ Z: i
                   P61119-015802.jpg & S2 @/ m+ P+ H, f. }
" Y1 K  M. G% S. o8 J" I: Y" q9 f
     5、上电调试; R) L" [" P2 i+ V6 \' K
         debug.jpg
: H) Q# v9 p7 z3 q  s" ^) P/ }8 {: ]$ L* g& e1 m
. i6 J, K' j; J
至此:0 U1 v: \3 B5 ]9 V# O1 x; b
    基本功能完成,其中灯控是以行为单位。代码实现了部分灯效(nucleol432自带的灯上测试通过),没能在键盘上测试不是我不想...只因为买的灯,至今还没送到,以后再也不用申通了!!!9 T( e. s; _4 t

# u% Q9 O7 p3 @" I1 Y$ q  F以下是视频演示:$ q% X( g& m0 Z* \2 H. K
    1、基于蓝牙的键盘部分
( u0 v' g0 }. `: {2 T4 }      , f& u+ f9 J: x; H( a
/ d: i! h6 s& t( ?5 ]2 L
    2、基于nucleoL432的usb键盘部分
/ h" ~1 I! e: T9 v* }1 y: g! O        / E/ u; L! v& I( z) C4 [+ L3 o) ^7 m1 t
* f6 n- v- b7 V+ v4 v, r9 ~
    3、基于nucleoL432的灯控部分(灯控部分更新上传)
5 ~6 o, N; ^. Z- C        ) z5 ^, q: h& c/ n# _

: @; ~% q3 U' V1 S4 j* V最后、不足及待完善的部分:
3 ~( w( _% W! R' n. Z3 u4 P    1、键盘硬件支持全键无冲,现在软件只是实现了标准usb键盘设备,最多同时发送6个按键,全键无冲部分待实现;
  T7 H0 P* R5 w0 L( e    2、灯控现在是行控制,灯效扩展空间及其有限,以后会改为行列控制模式(飞线),甚至改成rgb行列模式(重画pcb),以实现更多效果;1 ~2 {6 W# l8 f2 X- T* @5 z1 u
    3、当前通信方式为串口,速率过慢,虽然感觉不到按键延迟,但是按键响应越及时越好,以后接下来会将改为spi;! L4 B' d5 D, O. _
    4、电池电源管理和睡眠还没有实现,低功耗也是本次改造机械键盘的主要目的之一,待增加;5 L3 e* S, v8 A; @
    5、按键映射只做了基本按键功能,fn加按键的映射键位暂未实现;
6 Z' B" S  e7 P# L3 O- ^9 [
    6、键盘目前是调试完善阶段,所以板子都是直接飞线裸露在外面,同时键盘也因此不能组装起来,待调试稳定之后,会为蓝牙增加ota功能,stm32L432增加串口升级固件功能,并集成到键盘外壳中。; [9 _. r( l+ X
- h; z% x8 K1 t
$ Z: G5 X1 ~/ c6 `" j8 v
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 编辑 ( J+ w: R$ i6 o$ b; J
紫宸 发表于 2016-11-25 21:084 k" s& [0 k. g. ]& f0 |+ F; t& c
请问用的蓝牙模块的蓝牙部分在哪可以参考?

" s% ?7 c( h% `- u$ R6 J4 F" i蓝牙部分 爱板网经验频道做过分享过经验【DA14580DEVKT-B评估板】http://jingyan.eeboard.com/article/75260  这是第一部分链接,一共7部分剩下的自己搜% m, C3 Q8 a8 L8 m) p* M
踏平幼稚园 回答时间:2016-11-23 10:25:30
watershade 发表于 2016-11-22 21:28) R9 N! l8 O1 J9 O# t# h0 q0 G. [
我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。
" \: b! K8 y2 t- |& V5 `7 a" p& k( X4 F* z: @
...

# N" @  d8 j. p/ [" C6 `我也喜欢简约,对绚丽的灯效外观之类没太大兴趣   加灯只因为看着那么多没用的io口舍不得浪费
watershade 回答时间:2016-11-22 21:28:40
本帖最后由 watershade 于 2016-11-22 22:08 编辑
! ]# K0 b9 n  P# B* f  W5 D
踏平幼稚园 发表于 2016-11-21 21:493 K8 r, ~) c- w9 B' G) a7 ~; J
ikbc c87

; b! E" J4 V+ r0 h我说呐,国内现在许多键盘都是看着就绚丽的要命。这一个看着挺适合办公用。我就比较喜欢。5 l& E8 _/ }. y2 r3 D0 W
( e& k/ ], ^9 O* P3 W5 F; J- A1 q
zero99 回答时间:2016-11-19 07:21:33
感谢楼主的分享
天外流星_0 回答时间:2016-11-19 11:51:39
厉害!感谢分享
小小超 回答时间:2016-11-19 14:08:21

( N: a: o4 b) |( Z% 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
9 L6 R! k. z4 O- y; _( Q6 z, m$ }这键盘你哪儿搞的?看着不错

$ K$ Y4 b# D+ `& ^& n0 B! x( Pikbc c87   
wweeww 回答时间:2016-11-22 10:44:53
就冲着飞线,赞一下
踏平幼稚园 回答时间:2016-11-22 21:16:10
wweeww 发表于 2016-11-22 10:44
3 r% D. m* w/ |8 ~  {. x  o1 i就冲着飞线,赞一下
0 ?1 J; G+ a" {
感谢 支持   
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 手机版