查看: 22261
回复: 32
参赛作品《基于STM32L系列的USB、BLE双模RGB机械键盘》

主题

回复
发表于2017-06-02 16:39:54 | 显示全部楼层
1# 电梯直达

【报名阶段需要填写的内容】


1. 参赛者姓名(必填项):

        谢添

2. 单位或学校名称(必填项):

        个人

3. 当前职务或职称(必填项):

        嵌入式工程师

4. 参赛作品的名字(必填项):

        《基于STM32L系列的USB、BLE双模RGB机械键盘》

5. 简要陈述您的idea和作品(必填项):

        目前的机械键盘多以USB为主,支持蓝牙的较少,且价格较高。本作品为一个支持USB和BLE(低功耗蓝牙),带有RGB灯珠的机械键盘。支持USB和BLE连接,可进行自由切换,使用方便。并且结合RGB灯珠,可带来炫酷的视觉体验。本作品以STM32L053作为主控芯片,NRF51822作为蓝牙芯片,所选芯片皆为低功耗IC。键盘不需要电源开关,在不使用的情况下,系统自动进入低功耗模式,以达到极低的功耗。

6. 拟用到的立创商城在售物料(必填项):

        STM32L053R8T6、NRF51822、RT9013、74HC595、TP4056、3528RGB LED、二极管、MOS管、电阻电容电感若干等

7. 拟用到的非立创商城物料或其它补充(必填项):

        cherry红轴、锂电池等



【作品正式发表(报名成功后进入设计阶段)需要填写的内容】


**********************************键盘制作进度更新,见2楼。**********************************


一、作品简介

例如,可以包括但不局限于以下内容:

1.作品的整机外观图片或焊接组装好的PCBA图片;

   

图1  整机外观图

 

图2  整机外观图

 

图3  整机外观图

  

图4  整机外观图

  

图5  PCBA

 

2.作品的研究背景、目的和功能、市场应用前景;


        市面上支持蓝牙的机械键盘较少,同类产品多使用经典蓝牙,功耗较高。而无线键盘对功耗要求较敏感。本作品使用低功耗蓝牙(BLE)作为无线数据传输。同时支持蓝牙和USB连接,在无线模式下,借助于BLE的优势,可以实现超长续航。


3.作品在创新性、趣味性、实用性甚至公益性方面,有哪些亮点可体现?

        1)使用低功耗蓝牙作为无线传输,配合低功耗的STM32L053系列MCU,带来超长续航。
        2)键盘采用84按键布局,类似普通笔记本键盘布局。在保证了基本功能按键的同时,使得键盘更加小巧,便于携带。


二、系统构架图

用流程图或思维导图等形式,描述您的作品的组成构架,即方案图。 

 

图6 系统框图


三、硬件部分的描述

1.附上原理图&PCB实物图的图片或者源文件(官方建议大家尽量用源文件上传),如果是图片,请确保图片是清晰可辨的;


原题图:Keyboard_SCH.pdf 



 

图7 PCB设计版图

 

图8 3D图

 

图9 3D图



2.用文字把该作品的实现原理、系统的工作过程大致讲解一下。

        STM32L053作为主控芯片,负责扫描按键和控制LED灯。当有按键按下时,通过USB接口将键值发送给电脑。同时将键值通过串口发送给蓝牙芯片。蓝牙芯片接收键值,并发送给蓝牙主机。


四、材料清单(BOM列表)

列出您这个作品所用到的主要器件(关键器件即可),比如单片机&ARM芯片、专用集成芯片(ASIC)、传感器、功能模块等。

如果所列出的芯片是来自我们立创商城上的,最好能写出该器件的商品编号或附上对应购买链接。


主要元器件:STM32L053R8T6、NRF51822、RT9013、74HC595、TP4056、3528RGB LED、二极管、MOS管、电阻电容电感若干等。

以上元器件均可在立创商城购买到。


五、软件部分的描述(选填)

如果您的作品涉及到软件,请列出作品对应的软件工作流程图,及关键部分的例程、源码(如果您想开源的话请上传全部源码)。

 

图10 软件流程图


    由于代码还未完善,还会进行第二版硬件的制作,因此这里暂时不上传代码。后续作品完善后,会进行开源。

六、作品演示

请上传您的作品的功能演示腾讯视频,并编辑到本楼(或附上视频链接)。按要求上传视频可获得5分,具体详见活动规则。


演示视频地址:https://v.qq.com/x/page/g0540dk7y9c.html

                        https://v.qq.com/x/page/q05409p4d9d.html


七、总结

例如您在完成该作品过程中的一些体会、碰到的技术问题或调试经验、作品的未来规划,及对我们主办方的建议和意见等。


遇到的问题:
        原计划主控芯片使用STM32F103系列,相应的USB程序等均已经调通。后面考虑到功耗,索性换成了STM32L053系列。第一次使用此款芯片,遇到的问题比较多。首先没有标准库,取而代之的是LL和HAL库。在库选择上就纠结了很久。一开始选择LL库,但发现USB部分只有HAL库。之后又统一选择HAL库,但发现该库官方代码封装得太好,用起来反而不够灵活。最后是除USB使用HAL库外,其它都用LL库。
        USB调试的时候,总是枚举失败。最后发现需要在USB初始化的时候就要进行接收准备。
        另外在USB主机(电脑)往USB设备(键盘)发送数据的时候,键盘没反应。用键盘测试软件发现电脑一直在发送。很明显是键盘挂掉了,主机发送数据没有响应,导致不停重发。比如按键盘的大小写锁定键,电脑会返回一个字节数据,其中某一位包含大小写锁定键的状态。定位到代码的USB接收处理部分,发现指针问题导致程序跑飞。

仍存在的问题:
        原先在做方案验证的时候,MCU通过串口与蓝牙部分通讯,蓝牙主机可以成功响应按键操作。但在实际的键盘调试中,发现当MCU通过串口发送数据时,会导致蓝牙芯片复位重启。调试蓝牙芯片发现是通讯错误。造成此问题的原因是,这里的串口通信只使用了RX和TX,没有使用硬件流控。而蓝牙协议栈处理的优先级最高。这样就会导致串口数据丢包。解决此问题的方法是使用硬件流控,这就需要在硬件上进行改动。
为了便于开发,本次蓝牙芯片选用的是NRF51822。天线匹配部分,需要很多阻容、电感。且这次的蓝牙信号质量不是很好。准备在第二版中换一款芯片,使用Dialog的14580。该芯片内部集成巴伦,需要的外围器件少,信号方面也不用担心。


后续计划:

  • 优化PCB布局
  • 更换蓝牙芯片
  • 优化蓝牙信号
  • 更换Mini-USB接口为Type-c接口


总结:
        一直以来都有制作键盘的想法,但总是因为各种各样的原因,没有真正去开始动手。恰好看到立创商城举办这个活动,而且活动时间也比较长,想着逼自己一把,索性就报名了。由于是业余时间搞这个,时间比较分散,战线拖得太长,不过总算是基本完成了。本次作品仅完成了USB功能部分,BLE部分因为硬件需要改动,留在下一版去完善。虽未完成所有的功能,但基本达到了预期的要求,目前可以当作主力键盘来使用。本篇帖子的大部分内容都是使用这个新制作的键盘敲出来的。
        最后在这里感谢立创商城举办此次活动,感谢幕后的所有工作人员!





主题

回复
发表于2017-08-20 17:08:11   |  显示全部楼层
13#
漂亮   话说 我想弄个 usb键盘 只要几个键  例如CTRL+x 为一个键  有没相关例程  打算用STM32F103C8T6 

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部