极客感十足的电子胸牌 ART-Badge V2.0开发记录!
扫描二维码
随时随地手机看文章
前言
ART-Badge是什么?
首先附上两张渲染图↓
再来看视频↓
功能设计篇
首先让我们看一下,今年的电子胸牌比较去年款有哪些升级,增加哪些功能?
-
微信小程序使用蓝牙推送开发者信息(姓名、公司职称)
-
软件 RTC 同步时间
-
首界面展示时间 手机推送的信息
-
两个app demo:蓝牙传输助手 使用说明
-
自主设计的电路硬件,PSRAM 扩大为8M,电池换用300mAh锂电池,可反复充电。
-
使用体积更小巧的 SC7A20 替换原有的 mpu6050。
-
添加了ADC采样电路,可以采集电池电量信息。
-
整体界面焕然一新,默认采用暗黑色主题背景。
-
使用最新发布的 湃心OS V4.1开发,开发工具全新升级为基于VSCode插件模式的Persim Studio。
-
增加游戏、音乐播放器、电子相册…等等丰富小程序 app。
-
小程序全新升级:蓝牙推送用户 、城市天气信息。
-
支持使用最新湃心OS小程序进行二次开发。
结构设计篇
-
其一是该方案的“视觉极客感”最强,由于直接使用透明盖板将PCB电路展现出来,颜值方面化繁为简,符合审美哲学
-
其次是如果使用封闭式设计的话按键误触,锂电池的插拔就变成需要考量的因素了,而夹层式的开放设计则在这方面完全无需担心
-
最后一个原因是,高性价比
电路设计篇
-
半反半透明屏幕,分辨率 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之后把相关的加工文件发给厂家就可以进行激光切割制作了。
软件实现篇
硬件搞定之后就开始移植软件啦,ART-Badge 运行的是基于 RT-Thread 的湃心穿戴 OS。
湃心穿戴 OS 有几大特色:
-
GUI采用可用于MCU上的第四代柿饼 GUI,具备类 Android 界面交互,支持多点触摸,效果更加炫酷,同时支持矢量图形库,具备增强的图形处理能力。
-
小程序的开发模式。采用类微信小程序开发模式,上手极快,应用轻量级,支持应用商店,极速安装体验,支持多国语音。
-
提供 MVVM 应用开发框架。应用的界面开发和业务逻辑是互相解耦的,贴合前端工程师习惯。
-
跨平台能力。软件一次开发,即可在任一硬件 CPU、MCU 及 MPU 平台上运行;
-
湃心穿戴 OS 还具备一些创新性的组件,如消息管理引擎(EMQ)、数据管理组件(DCM)、KVDB 及 TSDB 数据库、DIY 开发套件。
-
GUI模块(Graphical User Interface,图形用户界面),用于人与设备进行交互
-
BLE模块(Bluetooh Low Energy,语音合成),通过广播方式与小程序连接接受信息
-
AUDIO(音频播放解码模块),用于无源蜂鸣器对音乐的解码、播放
-
EMQ(Enhance Message Queue,发布订阅式的消息队列组件),能够打通 C 到 JS ,JS 到 JS ,C 到 C 的消息链路,能够很方便的将消息发到任意一个地方
-
DCM(Data Cache Management,数据管理组件),主要用于 JS 与 C 之前数据的交互,统一管理和控制系统中的数据统,确保各模块间数据传输的性能
-
支持一发多收。一个生产者生产消息可被多个消费者使用
-
支持多个消息绑定。一个消费者可以绑定多个不同的通道,接收不同生产者发送的消息。
-
发布消息系统开销小,效率高。
-
不同模块间低耦合。
-
超轻量级的整数类型消息
-
全链路可达
-
支持 Value Change 模型
-
支持存取任意类型数据
-
支持多实例功能,解耦不同模块间数据处理;
-
全链路打通,JS 与 C 均能访问同一内存池
-
支持订阅发布模型,可用于消息推送和通知
-
支持数据持久化保存功能;
在本项目中,像一些参数需要数据持久化存储、js 端对 adc 采集电量数据的监听、获取屏幕亮度,小程序推送的信息等等都是用到了 dcm 组件。