前言关注 RT-Thread 的同学肯定知道,RT-Thread为了向众多开发者展示RT-Thread的最新开发和生态建设成果,每年都会举办一场开发者大会(简称:RDC — RT-Thread Developer Conference),在 2020 年度的开发者大会上,我们 RT-Thread 给到现场的每个开发者们都发放了一个电子胸牌,胸牌的名称起名为 ART-Bagde。另外,特此感谢在电子胸牌制作过程中REALTEK、创凌对我们的支持!
ART-Badge是什么?首先附上两张渲染图↓
ART-Badge正面图片
ART-Badge反面图片
再来看视频↓
功能设计篇首先让我们看一下,今年的电子胸牌比较去年款有哪些升级,增加哪些功能?
先看一下 2020 款 ART-Badge 的主要功能:
- 微信小程序使用蓝牙推送开发者信息(姓名、公司职称)
- 软件 RTC 同步时间
- 首界面展示时间+手机推送的信息
- 两个app demo:蓝牙传输助手+使用说明
今年,我们在去年的胸牌的基础上进行了大幅度的升级与优化,废话不多说,下面直接贴一张功能设计和拟用技术路线的导图↓
思维导图
开发流程图
概括一下,ART-Badge V2.0主要有以下新特点:
- 自主设计的电路硬件,PSRAM 扩大为8M,电池换用300mAh锂电池,可反复充电。
- 使用体积更小巧的 SC7A20 替换原有的 mpu6050。
- 添加了ADC采样电路,可以采集电池电量信息。
- 整体界面焕然一新,默认采用暗黑色主题背景。
- 使用最新发布的 湃心OS V4.1开发,开发工具全新升级为基于VSCode插件模式的Persim Studio。
- 增加游戏、音乐播放器、电子相册…等等丰富小程序 app。
- 小程序全新升级:蓝牙推送用户 、城市天气信息。
- 支持使用最新湃心OS小程序进行二次开发。
结构设计篇由于去年的电子胸牌并没有外壳,胸牌背面的电子元器件都是裸露在空气中的,拿到手上会有明显的突出感,同时暴漏在空气中容易对电容触摸芯片产生干扰,影响用户使用效果,再加上今年的锂电池电路进行了调整:将纽扣电池更新为了锂电池,不使用胶带粘在背后无法固定。
综上,今年的电子胸牌决定使用亚克力作为 ART-Badge V2.0 的外壳设计。
选择亚克力作为外壳结构有几个原因:
- 其一是该方案的“视觉极客感”最强,由于直接使用透明盖板将PCB电路展现出来,颜值方面化繁为简,符合审美哲学
- 其次是如果使用封闭式设计的话按键误触,锂电池的插拔就变成需要考量的因素了,而夹层式的开放设计则在这方面完全无需担心
- 最后一个原因是,高性价比
亚克力外壳成品
电路设计篇RTL8762D 作为主控芯片,MCU 主频为90MHZ,运行 RT-Thread 操作系统,并整体使用睿赛德科技的湃心穿戴OS,外扩了8M的PSRAM,以及16M 的片外 flash 。
ART-Badge 主要使用到串口(用于调试和控制台输出),GPIO(用于驱动按键、蜂鸣器和ADC采集),I2C接口(用于和板载的 SC7A20 三轴加速度传感器通信)。
底板的PCB采用2层Layout。板载的IC主要有:
- 半反半透明屏幕,分辨率 240 X 240,颜色格式 RGB565,在关闭背光的情况下依旧能有出色的可视度。
- APS6404L-3SQR,PSRAM(动态随机存取存储器),用于动态加载图形资源,8M的容量十分富裕。
- ch340e,USB转串口芯片,也很常用,通过 USB 线把 ART-Badge 连接电脑之后,就可以直接用串口控制台使用shell了,后面的二次开发也是使用到了串口工具 UDB 下载。
- BS814A-1,电容触摸 IC,用于 ART-Badge 正面的按键交互。
- SC7A20,士兰微出的一款高精度12bit数字三轴加速度传感器芯片,内置功能丰富,功耗低,体积小,测量精确。
(补充一点:为了兼顾美观,正面是看不到走线的,(所以这是单面板?不)全部藏在屏幕背面了)
PCB投板回来之后就是焊接技能施展阶段了,主要用到的工具有:热风枪、烙铁、镊子、锡浆、吸锡带、助焊剂等。与直插元件不同,贴片的器件由于焊盘太小(大部分的是 0402 阻容),器件分布太密集,手工焊接采用的方法主要是风枪吹焊。
pcb焊接
进行焊接的第一步是制作钢网,也就是器件焊盘的掩模,这个在设计好PCB之后把相关的加工文件发给厂家就可以进行激光切割制作了。
上一步贴片完成之后就需要用风枪进行吹焊回流了。吹焊温度大概控制在250-300度,风枪的吹嘴去掉以增大风口便于均匀加热。
软件实现篇硬件搞定之后就开始移植软件啦,ART-Badge 运行的是基于 RT-Thread 的湃心穿戴 OS。
这里科普一下 湃心穿戴OS,它是一个超轻量级、已量产的产品级穿戴操作系统平台。中间层的模块包括 GUI 引擎、通讯组件、NFC、存储类工具等。中上层是由 JavaScript 搭建的应用程序框架,最上层则是轻量级系列众多的小程序。