开源一个电子胸牌项目,很棒!

2024-05-18 17:58

本文主要是介绍开源一个电子胸牌项目,很棒!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

9f31a51d4f79b15f66eade911dbba6bc.png

摘要:关注RT-Thread的同学肯定知道,RT-Thread为了向众多开发者展示RT-Thread的最新开发和生态建设成果,每年都会举办一场开发者大会(简称:RDC),在2020年度的开发者大会上,RT-Thread给到现场的每个开发者们都发放了一个电子胸牌,胸牌的名称起名为ART-Bagde

一、ART-Badge是什么?

首先附上两张渲染图↓

8772760b175b03e16b7866f3cc11411b.png 9e47f7d698f55768c2d1f4ee6af45390.png

二、功能设计

首先让我们看一下,今年的电子胸牌比较去年款有哪些升级,增加哪些功能?

先看一下2020款ART-Badge的主要功能:

  • 微信小程序使用蓝牙推送开发者信息(姓名、公司职称)

  • 软件 RTC 同步时间

  • 首界面展示时间+手机推送的信息

  • 两个app demo:蓝牙传输助手+使用说明

今年,我们在去年的胸牌的基础上进行了大幅度的升级与优化,废话不多说,下面直接贴一张功能设计和拟用技术路线的导图

76232ec53dbcd94e2e36f799230d5a63.png
思维导图
200a4e1a2a578fddf18c88bb1209f974.png
开发流程图

概括一下,ART-Badge V2.0主要有以下新特点:

  • 自主设计的电路硬件,PSRAM 扩大为8M,电池换用300mAh锂电池,可反复充电。

  • 使用体积更小巧的SC7A20替换原有的mpu6050

  • 添加了ADC采样电路,可以采集电池电量信息。

  • 整体界面焕然一新,默认采用暗黑色主题背景。

  • 使用最新发布的 湃心OS V4.1开发,开发工具全新升级为基于VSCode插件模式的Persim Studio。

  • 增加游戏、音乐播放器、电子相册…等等丰富小程序app。

  • 小程序全新升级:蓝牙推送用户、城市天气信息。

  • 支持使用最新湃心OS小程序进行二次开发。

三、结构设计

e374ae255a7e2ea2d524b2560db0f425.png

由于去年的电子胸牌并没有外壳,胸牌背面的电子元器件都是裸露在空气中的,拿到手上会有明显的突出感,同时暴漏在空气中容易对电容触摸芯片产生干扰,影响用户使用效果,再加上今年的锂电池电路进行了调整:将纽扣电池更新为了锂电池,不使用胶带粘在背后无法固定

综上,今年的电子胸牌决定使用亚克力作为ART-Badge V2.0的外壳设计。

选择亚克力作为外壳结构有几个原因:

  • 其一是该方案的“视觉极客感”最强,由于直接使用透明盖板将PCB电路展现出来,颜值方面化繁为简,符合审美哲学

  • 其次是如果使用封闭式设计的话按键误触,锂电池的插拔就变成需要考量的因素了,而夹层式的开放设计则在这方面完全无需担心

  • 最后一个原因是,高性价比

53037c888bd40c721982d6813cae7a09.png

四、电路设计

21e79c53432ac217fcbe6fb8985081c7.png

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阻容),器件分布太密集,手工焊接采用的方法主要是风枪吹焊。

b2c38241e2a56bb60778ec70199f77f6.png
pcb焊接

进行焊接的第一步是制作钢网,也就是器件焊盘的掩模,这个在设计好PCB之后把相关的加工文件发给厂家就可以进行激光切割制作了。

9dd2fa363ef6ecc81315cd3c04adc9ea.png

上一步贴片完成之后就需要用风枪进行吹焊回流了。吹焊温度大概控制在250-300度,风枪的吹嘴去掉以增大风口便于均匀加热。

74dc3efd3a8d074edaf06d3d9e0d736c.png

五、软件实现篇

硬件搞定之后就开始移植软件啦,ART-Badge 运行的是基于RT-Thread 的湃心穿戴OS。

这里科普一下 湃心穿戴OS,它是一个超轻量级、已量产的产品级穿戴操作系统平台。中间层的模块包括 GUI 引擎、通讯组件、NFC、存储类工具等。中上层是由 JavaScript 搭建的应用程序框架,最上层则是轻量级系列众多的小程序。

c9bab89fde900ad90f094e4fc35c501b.png
湃心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之前数据的交互,统一管理和控制系统中的数据统,确保各模块间数据传输的性能

GUI 最上层的开发使用JS语法,这个就比较有意思了,使用过 Android Studio的小伙伴们可能很熟悉,安卓UI的应用开发是可以进行拖拽式的,这里和柿饼UI的设计器十分相似,Persim Studio和Android Studio 一样也是通过.xml 的方式对界面进行管理。所以熟悉或者有过安卓开发的小伙伴会有莫名的亲切感。

31bfb79f7dbfc14ce7a57a911f5bbd67.png

BLE使用的是RealTek自带的蓝牙协议栈,通过BSAL抽象层进行管理,BSAL(Bluetooth Stack Abstract Layer)软件包是由RT-Thread 针对不同 蓝牙协议栈接口实现的,目前支持的协议栈有:nimble,realtek 等协议栈。

Audio (音频)设备是嵌入式系统中非常重要的一个组成部分,负责音频数据的采样和输出。Audio设备通常由数据总线接口、控制总线接口、音频编解码器(Codec)、扬声器和麦克风等组成。

620881321f6a22bf44d9f9392078d7b9.png
嵌入式音频系统组成

RT-Thread Audio 设备驱动框架是Audio框架的底层部分,主要负责原生音频数据的采集和输出、音频流的控制、音频设备的管理、音量调节以及不同硬件和 Codec 的抽象等。在本系统中就将蜂鸣器设备注册到了Audio框架中,从而实现对蜂鸣器的开、关、音乐的解码、播放功能。

EMQ 消息队列具有以下功能:

  • 支持一发多收。一个生产者生产消息可被多个消费者使用

  • 支持多个消息绑定。一个消费者可以绑定多个不同的通道,接收不同生产者发送的消息。

  • 发布消息系统开销小,效率高。

  • 不同模块间低耦合。

  • 超轻量级的整数类型消息

  • 全链路可达

9a3c9fefb03007aec779fd3eb914c678.png
EMQ运作原理

DCM 数据缓存管理框架主要功能特性:

  • 支持 Value Change 模型

  • 支持存取任意类型数据

  • 支持多实例功能,解耦不同模块间数据处理;

  • 全链路打通,JS与C均能访问同一内存池

  • 支持订阅发布模型,可用于消息推送和通知

  • 支持数据持久化保存功能;

866a2d5cc49a4f71d5c4bed0c3e18e20.png
dcm_framework

在本项目中,像一些参数需要数据持久化存储、js端对adc采集电量数据的监听、获取屏幕亮度,小程序推送的信息等等都是用到了 dcm 组件。

六、结束语

看到这里你是不是对今年的电子胸牌产生了更多的期待呢?那么告诉大家一个好消息,到场参会人人都可以领取电子胸牌哦~

不论风云变幻,RT-Thread通过不断迭代和生态的完善,与开发者共成长。

快来报名参会领取属于你的电子胸牌V2.0吧!

↓↓↓↓↓↓

7dc91a5982dcbd9c6d071e021e25e333.png e63eb48230336df921ccf26fa14906c5.png

邀请你参加2021 RT-Thread开发者大会的六大理由

  1. 刷新RT-Thread最新技术动态和产业服务能力

  2. 聆听行业大咖分享,洞察产业趋势

  3. 丰富的技术和产品展示,前沿技术发展和应用

  4. 绝佳的实践机会:从MCU、AIOT、MPU、RISC-V、安全总有一个应用场景满足你

  5. 现场揭晓开发者专属纪念胸牌升级和新玩法

  6. 互动区体验掌握技术带来的魅力

立即长按识别下方二维码报名

d8bd8690ae0606d10b35b1818da78365.png

可以添加微信17775982065为好友,注明:公司+姓名,拉进RT-Thread官方微信交流群!

efe3faafdb8cc3e742fff9a56adedc99.png

1d500dd5d853d02c88f3abfad1428de4.gif

点击查看往期内容

(关注小麦大叔)

往期推荐

物联网居然有这么多通信协议...

CAN总线简易入门教程

6步!教你写一个mqtt调试助手

MQTT协议,终于有人讲清楚了

很强大!低耦合高内聚的MCU实用软件框架

94ba8b0059bac102506fb0e75cd74c13.png

长按识别二维码关注我

b476c59572f4b990827d4b03f279c2fa.png

你点的每个好看,我都认真当成了喜欢

点击阅读原文,报名参加

这篇关于开源一个电子胸牌项目,很棒!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995620

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免