STM2F411智能手环设计

news/2025/2/13 17:56:46/文章来源:https://www.cnblogs.com/zyly/p/18578774

最近闲来无事就想制作一款智能手表,为此我直接从网上找到一个开源项目OV-Watch。这里我们就以这个开源项目为例,一步步就讲解,从最初的电路原理图绘制,到PCB打样焊接,到最后的程序编写烧录测试。

由于该开源项目包含了若干个版本,这里我们在复刻的时候以当前最新版本为例,即V2.4版本。

一、需求分析

我们要设计一款智能手环,我们通常需要经历如下几个步骤:

  • 市场需求调研,调研市场上销量比较高(受大众欢迎)的产品一般都具备哪些功能;
  • 技术方案预言,调研目前智能手环通常采用的硬件设计以及软件设计方案。

1.1 功能需求

设计一款智能手环涉及的功能多种多样,通常涵盖健康监测、运动跟踪、通知提醒、以及与手机的连接等功能。

1.1.1 健康监测功能
  • 心率监测:通过光学传感器(PPG,光电容积脉搏波传感器)测量佩戴者的心率;
  • 血氧监测:利用光学传感器测量血氧饱和度(SpO2);
  • 睡眠监测:通过加速度计和陀螺仪结合算法来监测睡眠阶段(深睡、浅睡等);
  • 压力监测:通过心率变异性分析来估算压力水平;
  • 体温监测:一些高级手环可以监测体温变化;
  • 步态监测:检测步伐和运动模式,帮助记录步数、运动量。
1.1.2 运动跟踪
  • 运动模式:支持跑步、骑行、游泳、登山等不同运动模式,并能记录运动数据;
  • GPS路径记录:使用内置GPS模块记录运动路径,或通过蓝牙与手机共享GPS数据.
1.1.3 通知提醒功能
  • 来电、短信、应用通知提醒:通过与手机的蓝牙连接,接收来电、短信、社交应用的提醒;
  • 振动提醒:当有通知时,通过内置的振动电机进行提醒。
1.1.4 电池管理
  • 低功耗:智能手环通常要求长时间待机,因此需要高效的电池管理系统,确保电池能够支持长时间使用;
  • 快速充电:支持快速充电技术,减少充电时间。
1.1.5 用户交互
  • 触摸屏:手环通常会有触摸屏,用于显示信息和交互;
  • 按键或触控感应:提供一定的物理按键或触摸控制功能;
  • 语音助手:部分高端手环可能内置语音助手,支持语音控制。
1.1.6 蓝牙连接
  • 手机同步:通过蓝牙与智能手机同步数据,查看运动、健康数据,接收通知等。
  • 蓝牙低能耗 (BLE):为了延长电池使用寿命,智能手环通常会使用BLE协议来降低功耗。

1.2 硬件组成

要实现这些功能,智能手环通常需要以下硬件组件;

1.2.1 MCU/SoC
  • 功能:作为智能手环的大脑,处理各种传感器数据,控制其他硬件模块;
  • 推荐芯片:低功耗的微控制器(如STMicroelectronics STM32系列、Nordic Semiconductor nRF52系列、Qualcomm Snapdragon Wear系列)或专用的SoC(如高通骁龙Wear系列)。这些芯片支持BLE、低功耗设计,适合穿戴设备;
1.2.2 传感器模块
  • 心率监测:光电容积脉搏波传感器(PPG)。常用的芯片如Maxim IntegratedMAX30100/30102LandoEM7028AMSAS7050等;
  • 血氧监测:PPG传感器也用于血氧监测(SpO2)。如前所述的MAX30100EM7028也可用于血氧检测;
  • 温度/测量:用于检测环境的温度和湿度。常见的芯片有 Aosong ElectronicsAHT20/AHT21
  • 海拔测量:用于测量大气压。常见的芯片有SensirionSPL06Bosch SensortecBMP180
  • 运动跟踪:
    • 加速度计和陀螺仪:用于测量佩戴者的运动和姿势。常见的芯片有:InvenSenseMPU6050(6轴传感器),STMicroelectronicsLSM6DSOX(6轴传感器),Bosch SensortecBNO055(9轴传感器)等;
    • GPS模块:对于需要高精度位置追踪的手环,可以使用GPS芯片,如u-blox NEO-M8NMediaTek 的 MT3333
    • 压力传感器:例如Bosch SensortecBMP280,用于监测气压和压力水平。
1.2.3 显示屏
  • OLED显示屏:许多智能手环使用OLED显示屏,因为它们能提供清晰、节能的显示效果;
  • 屏幕控制芯片:例如,SSD1306控制器,用于驱动OLED显示器。
1.2.4 电池和充电管理
  • 锂电池:大多数智能手环使用小型锂电池,容量一般在100mAh300mAh之间,具体视续航需求而定;
  • 充电管理IC:如Texas InstrumentsBQ24195、南京拓微的TP4056M,用于电池充电和管理;
  • 低功耗设计:优化电池的续航,利用低功耗MCU、屏幕和传感器设计,以及高效的电源管理模块。
1.2.5 振动电机
  • 功能:用于振动提醒功能;
  • 推荐:使用小型的LRA(线性振动执行器)或ERM(偏心旋转质量振动执行器)。
1.2.6 蓝牙模块
  • 功能:支持蓝牙低能耗(BLE)协议,进行数据同步、通知提醒等功能;
  • 推荐芯片:如Nordic SemiconductornRF52840BroadcomBCM43438Keen High ElectronicsKT6368A
1.2.7 外壳与传感器窗口
  • 功能:提供坚固的外壳保护,同时确保传感器的有效工作(如心率传感器需要透光设计);
  • 材料:常用的外壳材料有塑料、铝合金、陶瓷等,传感器窗口通常使用透明的塑料或玻璃。

二、OV-Watch简介

OV-Watch项目制作的是一个基于STM32F411CUE6FreeRTOSLVGL的低成本的超多功能的STM32智能手表。

img

其实现了日历、计算器、秒表、NFC、蓝牙无线升级、与手机传信息、抬腕亮屏、心率检测、环境温湿度检测、指南针、海拔测量等功能。

  1. 电源部分:手表使用的是3.7V锂电池,通过TPS63020(升压-降压转换器)提供3V3电源,V2.2版本之后,充电口留了两个焊盘,用来接触磁吸充电口;
    • 特别注意,V2.0版本使用的无线充电,使用了芯片T3168,但是用无线充电的话,加上线圈和多的器件,体积就非常大了,同时还有散热问题;
  2. 蓝牙部分:
    • V2.2用的是HC-04(邮票孔封装);
    • V2.3版本改成了用国产芯片KT6328A
    • V2.4换成了KT6368A
  3. NFC部分:
    • V2.0版本的IC卡复制器模块介绍详见:https://oshwhub.com/no_chicken/ICka-fu-zhi-qi
    • V2.2版本为了精简减小体积,仅有UID卡,可以被外部读卡器读写。而在V2.0版本中,用的是RC522和一张UID卡组成的,可以自行复制外部IC卡,然后也可以被外部读卡器读写如下图所示:
img

2.1 系统组成

系统框图如下所示:

其中:

  • 主控使用STM32F411CEU6
  • 操作系统使用FreeRTOS
  • 图形库使用的LVGL
  • 传感器部分:手势识别使用6轴MPU6050
  • 心率血氧使用的是EM7028
  • 海拔测量用的气压计SPL06-001
  • 电子指南针使用LSM303DLHC
  • 蓝牙芯片换成了KT6368AV2.4版本),有SPP功能,支持无线升级。

2.2 软件框架

智能手表的软件架构如下所示:

img

三、电路原理图设计

电路原理图分为两部分,核心板和背板,我们首先放上完整的原理图:

注意:这里没有KT6368电路原理图,这个下面我们单独介绍。

3.1 供电部分

3.1.1 TPS63020介绍

供电部分使用了TPS63020TPS63020设备为由双电池或三电池碱性、镍镉或镍氢电池、单电池锂离子或锂聚合物电池、超级电容器或其他供电轨供电的产品提供电源解决方案;

  • 输入电压:1.8V-5.5V
  • 可调整的输出电压1.2V-5.5V
  • 输出电流:当输入电压大于2.5V时,输出电压为3.3V时,电流2A
  • 转换效率高:工作静态电流:25µA ,带模式选择的节能模式;
  • 平均电流模式buck-boost转换:模式之间的自动转换;
  • 安全可靠的操作特性:具有过热、过压保护,停机期间断开负载回路。

TPS63020一共14个引脚:

  • EN使能引脚(12):启用输入(1启用,0禁用)不能为悬空状态
  • FB可调版本的电压反馈(3):必须连接到固定输出电压版本的VOUT
  • GND(2):控制逻辑接地;
  • L189):电感器连接;
  • L267):电感器连接;
  • PG14):输出功率良好(1良好,0故障;漏极开路),可以保持打开状态;
  • PGND(15):电源接地;
  • PS/SYNC(13):启用/禁用省电模式(1禁用,0启用,同步时钟信号)不能为悬空状态;
  • VIN1011):输入电压;
  • VINA1):控制级电源电压;
  • VOUT45):buck-boost变换器输出。
3.1.2 电路原理图

输入端接到3.7V锂电池,使能端TPS_EN接到MCUPA3(POWER_EN), 用于MCU控制使能, 软件控制供电。

同时Bat电池端接到开关, 即可以按键按下让供电芯片使能, 这个按键也复用为KEY2PA4(WAKE)为高的时候代表按键按下;

TPS63020输出电压由外部电阻分压器设置。电阻分压器必须连接在VOUTFBGND之间。反馈电压VFB500 mV标准值
,低压侧电阻器R13FBGND之间)必须保持在200k的范围内;

\[VOUT = (\frac{R_{12}}{R_{13}} + 1) \times VFB \]

由于R121MΩR13为v180KΩ,所以VOUT=3.3V,所以电路原理图中VOUT输出连接到3.3V

3.2 充电部分(TP4056M

充电部分使用TP4056M, 用于给标准3.7V锂电池充电, 输入为5V,接口通过过孔连接到Back的两个焊盘, 对应2.84mm磁吸线的两个触点, 一个+5V一个GND, 该芯片具体的外围电路设计可以详见手册;

VIN输入电压为5V,经过A7整流二极管,它的正向导通电压通常在0.7V左右,则到VBUS电压大概为4.3V.

VBUS连接到TP4056MVCC4)引脚,用于给该芯片供电。

右侧连接的两个发光二极管为充电状态指示灯;

  • CHRG7)连接的指示灯通常为红色,表示正处于充电状态;
  • STDBY6)连接的指示灯通常为绿色,表示充电完成。

BAT5)引脚为输出引脚,连接锂电池正极。

3.3 LCD

3.3.1 电路原理图

核心板可以外接SPI通信的LCD屏;

这里我们将MCU侧的引脚列出来:

STM32F411CEU6 AFC01-S18FCA-00
PA15 TP_RST
PB4 TP_SDA
PB6 TP_SCL
PB7 LCD_RST
PB5 LCD_MOSI
PB3 LCD_CLK
PB8 LCD_CS
PB9 LCD_DC
PB0 LCD_BLK
3.3.2 P169H002-CT

比如这里可以外接P169H002-CTP电容触摸屏;

引脚定义如下:

需要注意的是:LCD引脚和电路原理图中的引脚顺序是反过来的。

3.4 EEPROMBL24C02F

BL24C02F提供2048比特串行电可擦写存储器,组成256个字节,每页16个字节,共16页,其采用I2C通信;

这里我们将MCU侧的引脚列出来:

STM32F411CEU6 BL24C02F
PA12 PROM_SCL
PA11 PROM_SDA

3.5 背板I2C总线

背板原理图上使用了大量的传感器模块,主要通过I2C总线与各个I2C传感器通信;

3.5.1 MPU6050

MPU6050是一个6轴姿态传感器(3轴加速度计和3轴陀螺仪传感器),可以测量芯片自身XYZ轴的加速度、角度参数,通过数据融合,可以得到姿态角。其在四轴飞行器中使用的较多,这里我们需要使用该传感器进行运动检测;

MPU6050同样采用的I2C通信;

STM32F411CEU6 MPU6050
PB12 MPU6050_INT
PB14 MPU6050_SCL
PB13 MPU6050_SDA
3.5.2 SPL06-001

SPL06-001是一款小型的数字压力传感器,分辨率可达0.06pa

SPL06-001同样采用的I2C通信;

STM32F411CEU6 SPL06-001
PB14 SPL_SCL
PB13 SPL_SDA
3.5.3 AHT21

AHT21是一款小型温湿度传感器;

AHT21同样采用的I2C通信;

STM32F411CEU6 AHT21
PB14 AHT_SCL
PB13 AHT_SDA
3.5.4 LSM303DLHC

LSM303DLHC是一款由意法半导体(STMicroelectronics)推出的三轴加速度计和三轴磁力计组合传感器。它可以同时测量加速度和地磁场,因此常用于运动追踪、导航、地理定位等应用。

LSM303DLHC同样采用的I2C通信;

STM32F411CEU6 LSM303DLHC
PB14 LSM_SCL
PB13 LSM_SDA
3.5.5 EM7028

EM7028是一款低功耗心率传感器,通过光学检测来监测心率。它包括16ADC、可调增益和分辨率,以及接口模块,包括心率传感器(HRS)和带有2个绿色LED的内部LED电流驱动器

EM7028同样采用的I2C通信;

STM32F411CEU6 EM7028
PB14 EM7028_SCL
PB13 EM7028_SDA
PB15 LED_EN

3.6 KT6368A

KT6368A芯片是一款支持蓝牙双模的纯数据芯片,蓝牙5.1版本。芯片的亮点在超小尺寸SOP8封装,性价高。以及简单明了的透传和串口AT控制功能。大大降低了嵌入蓝牙在其它产品的开发难度和成本同时支持SPPBLE 。但是只能任选其中一个协议使用。

KT6368A采用串口通信;

STM32F411CEU6 KT6368A
PA10(USART1_RX) BLE_TX
PA9(USART1_TX) BLE_RX
PA8 BLE_EN

四、PCB打样焊接

4.1 PCB打样

既然要从头开始,那我首页我们就需要有一块PCB电路板,我们打开链接智能手表OV-Watch,找到PCB小节,然后点击在编译集中打开;选中智能手表OV-Watch项目,选择菜单栏【下单】中的【嘉立创-PCB/SMT】。

往我这里仅仅是打印了十块板子,大概花费了我50大洋,耐心等待两到三天,就可以收到寄过来的PCB板子。

4.2 硬件材料准备

这里我们需要购买电路原理图中的电子元件,涉及到二极管、发光二极管、三极管、贴片电阻、贴片电容、各种芯片、按键、排针等;

第一张图片为核心板的BOM清单,第二张图为背板的BOM清单;这些元件可以直接从立创商城购买;

不过还有部分元件立创商场可能购买不到,或者价格过于昂贵,因此我还从淘宝购买了部分元件;

除此之外,我们还需要从淘宝购买:

五、OTA升级

V2.4版本以后的手表的代码分为BootloaderAPP了,为的是方便用户戴在手上进行不用拆解的升级,BOOT区后面划分了一个Flag区,用于记录是否是完整的APP,这个位置是APP传输完成后才记录的,为的是保证程序完整性。

img

参考文章

[1] 立创硬件开源

[2] 油炸鸡开源硬件手册网站

[3] github仓库: https://github.com/No-Chicken/OV-Watch

[4] gitee仓库: https://gitee.com/kingham/OV-Watch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/844232.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强烈推荐!终于找到了一个查看 dotnet 源码的便捷方法

强烈推荐!终于找到了一个查看 dotnet 源码的便捷方法 快把这个网站加入标签栏 “https://source.dot.net/” ​​ 为什么推荐由GitHub生成,由Roslyn提供支持。 不需要梯子,快速访问如何使用 1、查找类型和成员声明、文件和程序集:搜索内容 示例完整或部分类型或成员名称。字…

20222406 2024-2025-2 《网络与系统攻防技术》实验七实验报告

20222406 2024-2025-2 《网络与系统攻防技术》实验七实验报告 1.实验内容应用 SET 工具,通过多步操作建立冒名网站,获取登录信息。 利用 ettercap 实施 DNS spoof 攻击,篡改特定网站 IP。 结合两种技术,用 DNS spoof 引导访问至冒名网站。2.实验过程 2.1 简单应用SET工具建…

学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第10周学习总结

作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第十周作业)这个作业的目标 <写上具体方面>计算机科学概论(第七版)第12,13,14章 并完成云班课…

20222325 2024-2025-1 《网络与系统攻防技术》实验七实验报告

1.实验内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有: (1)简单应用SET工具建立冒名网站; (2)ettercap DNS spoof; (3)结合应用两种技术,用DNS spoof引导特定访问到冒名网站。 2.实验过程 2.1 简单应用SET工具建立冒名网…

2024NOIP

T1 编辑字符串 题意 给定两个字符串,某些位置固定不动,其余相邻位置可以互换,求最大匹配长度 方案 考虑将俩串分为多段,使得每段互相匹配长度最长 将相邻可换的部分划为一段,不可交换位置的单独一段。 由下图可知,若 A 串某位置字符与 B 串两个位置字符都可以匹配,则它与…

第十周学习总结

学期2024-2025-1 学号20241414 《计算机基础与程序设计》第十周学习总结 作业信息这个作业属于哪个课程 <班级的链接>2024-2025-1-计算机基础与程序设计这个作业要求在哪里 <作业要求的链接>2024-2025-1计算机基础与程序设计第一周作业这个作业的目标 信息系统 数据…

20222410 2024-2025-1 《网络与系统攻防技术》实验八实验报告

1.实验内容 1.1 本周学习内容回顾 1.2 实验要求 (1)Web前端HTML 能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。 (2)Web前端javascipt 理解JavaScript的基本功能,理解DOM。 在(1)的基础上,编写JavaScript验证用户名、密码的规则…

黑马点评

黑马点评项目笔记代码仓库:https://gitcode.com/xu1feng/hm-dianpnig/overview 整体功能架构图短信登录 导入黑马点评项目 首先,导入数据库SQL文件hmdp.sql。 其中的表有:tb_user:用户表 tb_user_info:用户详情表 tb_shop:商户信息表 tb_shop_type:商户类型表 tb_blog:…

vxe-table 可编辑表格使用下拉树

vxe-table 可编辑表格使用下拉树<template><div><vxe-grid v-bind="gridOptions"></vxe-grid></div> </template><script> export default {data () {const regionEditRender = {name: VxeTreeSelect,options: [{label: 广…

Python蒙特卡罗MCMC:优化Metropolis-Hastings采样策略与Fisher矩阵计算参数推断应用—模拟与真实数据分析

全文链接:https://tecdat.cn/?p=38397 原文出处:拓端数据部落公众号 本文介绍了其在过去几年中的最新开发成果,特别阐述了两种有助于提升 Metropolis - Hastings 采样性能的新要素:跳跃因子的自适应算法以及逆 Fisher 矩阵的计算,该逆 Fisher 矩阵可用作提议密度。通过多…

数字技术助力电力行业低碳化发展路径及典型场景研究报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p=36371 在全球应对气候变化的大背景下,中国积极推进 “双碳” 战略,一场深刻的能源与经济变革正在展开。本报告合集汇总聚焦于能源领域多方面的关键议题,深入剖析其现状与发展趋势。能源作为中国碳排放的主导因素,火电占比过高致使排放问题…

关于Quartus的start按钮灰色无法下载的问题的解决

Quartus的start按钮灰色 可能一 首先记得连接实验板并且添加.sof文件 点击Hardware Setup选择USB-Blaster即可可能二 如果上面的找不到USB-Blaster,可进入电脑的设备管理器,找到其他设备中的USB-Blaster选项右击更新驱动,注意选择相应路径更新完成后再次回到Quartus应该就可…