今天和大家见面的是实验室里面一款:根据国家发布文书设计的青少年可穿戴智能近视防控设备;旨在通过监测用眼行为、环境光强度和头部姿态来帮助防控近视。

文章分为三部分,本体设计,使用体验,开发者指南;此为第一篇,旨在详尽的给出设备的内部设计以及性能相关的表现。

设备研发中依托的第一份文件是国家疾控局发布的技术指南:主要涉及儿童青少年近视防控的各项标准和建议。

指南
可视化紧迫程度

用眼行为监测与干预

根据文献的指导,设备集成了多种传感器来监测儿童青少年的用眼行为,尤其是检测阅读距离、光强度和头部姿态。这些传感器数据可以帮助识别影响近视的行为风险因素,例如不良的读写姿势、缺乏户外活动、长时间使用电子产品等。

设备会根据这些数据来判断是否存在不健康的用眼行为,并通过震动提醒用户,符合文献中关于用眼行为控制的要求。

学校和家庭视觉环境建设

学校:论文设计的设备包括传感器能够实时监测学生的用眼姿势和距离,保证符合《儿童青少年学习用品近视防控卫生要求》(如环境光照、课桌椅调整等)。

家庭:家庭环境也有相应的建议,设备提供了可供家长监控的功能,帮助家长确保孩子在合适的环境下进行学习与阅读。

日间户外活动与体育锻炼

文献提到的日间户外活动体育锻炼时间的要求(如每天至少2小时户外活动、每周至少14小时)为设备设计提供了背景数据。设备监测的用眼数据(如阅读时间和姿势)可作为促进户外活动和锻炼的辅助手段。

智能健康监测与反馈

设备设计结合了学校、家庭、社区的协同防控要求,能够为用户提供健康用眼建议,同时支持家长、教师等多方参与制定防控措施,确保全面监控和反馈。

小程序界面设计和后台数据分析也在文献中提到的健康教育和数据监控方面发挥了作用,支持家长和教师监控孩子的用眼健康状况,并通过数据驱动的方式制定个性化的干预措施。

可穿戴性与低功耗设计

设备的设计考虑了低功耗的要求,以延长设备使用时间,符合文献中关于长时间户外活动和家长与教师协同监控的需求。设备能够在不需要频繁充电的情况下运行,保障持续的监控功能。

通过这些设计,设备实现了文献中一级预防、二级预防三级预防的指导目标,即通过监测、干预与矫正,实现多方协同的近视防控。

第二份是一个国家标准,也是设备里面若干算法的来源。

标准号

目前是已经打造出了一款完善的产品:

硬件设计:包括集成三种传感器(红外测距、光强、三轴加速度传感器)来监测用户的读写距离、光照强度及姿态,并通过低功耗蓝牙实现数据传输。设备支持存储6300条历史用眼数据,并且设计了两种产品版本,提供不同佩戴方式和外观选择。(PS,因为我是搞硬件的,所以硬件设计的篇幅会多不少)

系统架构

因为有BLE数据传输,而且传感器众多,这里使用了4层板:

网分

使用网分等设备将系统射频功能优化到:在室外环境下,有效连接距离可达 12 米,在室内无遮挡环境中,有效连接距离可以达到 50 米

4 层板设计

PCB 板的顶层与底层用于电路走线和放置元器件,第二层设计为完整的地层,如图 2.2(a)所示,为信号传输提供稳定的参考平面,降低系统噪声和干扰。第三层用于电源和低频数字信号走线,如图 2.2(b)所示。

TI-BLE 产品线

因为不需要继续边缘特别强的运算能力,而且为了功耗限制,使用了TI的CC2640R2,当然了也是使用了M3和M0双核的配置。

框图

重点是功耗很低:

这个是数据手册中,不同外设的耗电情况
耗电情况

表格中列出了不同外设启用时对核心电流的附加影响,提供了每个外设模块启用时所增加的电流值。

启用外设时,电流的增加会影响系统的整体功耗,因此在设计低功耗系统时,合理控制各外设的启用非常重要,尤其是射频核心(RF Core)和DMA模块,它们对系统电流的影响较大。系统内使用的接口为SPI和IIC,也没有使用DMA,整体功耗控制较好。

系统还支持多样的功耗模式:

4 种模式
不同电源模式下的电流消耗和唤醒时间

我们可以清楚地看到:

活动模式 (ACTIVE) 电流消耗最大(约1.45 mA + 31 μA/MHz),而待机模式 (STANDBY) 和关机模式 (SHUTDOWN) 的电流消耗明显减少。

唤醒时间在关机模式 (SHUTDOWN) 和复位引脚保持模式 (RESET PIN HELD) 下较长,分别为1015微秒。

芯片有着内部DC-DC稳压器和外部稳压器两种供电方案

外部电压源:该配置使用了外部稳压器,输入电压为 1.7V 到 1.95V,并通过外部稳压器提供稳定的电压到芯片的所有 VDDS 引脚,排除了对内置DC-DC稳压器的依赖。

去耦电容:同样需要一个 2.2 μF 的电容来去耦外部电源,确保稳定供电。

内部DC-DC稳压器配置适用于需要高效能量转换和较高电压范围的应用,能够在较大范围内调节输入电压。

可以通过 PG 控制 MCU

将复位引脚与直流降压芯片 TPS62742 的输出状态指示引脚相连,当 TPS62742 无法提供稳定的 2.8 V 输出电压时,MCU 的复位引脚拉将被低,使系统进入休眠状态。避免系统在电压不稳定时潜在的逻辑混乱和硬件损害。

所有的硬件单元

为了从监控走向防治,还设计了震动提醒:

MOS 驱动

这些设计完MCU只有两个IO是空着了,其得到了很好的应用。

根据用户的实际使用场景,有些场所不适宜带入近视防控设备,需要设备能够像眼镜的组件一样方便拆卸,使用户不必临时更换眼镜。

目前这个版本是没有了,变成了开发者版本,直接开放BLE协议,让使用者自己控制以适配自己的场景。

最早的版本

这个外置的没有内置的视线判断准确,所以做了一次影响实验:

表格呈现

我将其可视化出来:

三个因素的可视化

展示了用户写字手对智能近视控制棒测量光强的影响。图中包含了不同的测量距离(20 cm 和 40 cm)与左右手势(左手和右手)对测量光强(单位:lx)的影响。

横轴:表示测量距离(20 cm 和 40 cm)。

纵轴:表示写字手势(左手和右手)。

深度轴:表示测量的光强(单位:lx)。

目前是将其设计在眼镜框镜腿之上,更加易用的版本也在同步设计中。

目前的版本

PCB的尺寸现在更小,更易集成

小尺寸 PCB 设计

固件设计:固件负责通过传感器数据分析用户的用眼行为,识别不健康行为(如不良姿势或光照不足)并通过震动提醒。它还具备动态调整工作频率、降低功耗的能力,使设备具有长时间的连续工作能力(约66小时的工作时间和13天的待机时间)。

使用了FreeRTOS,也是 TI 官方的推荐方式

这里面涉及了一个头部姿态检测用于实时监测用户的头部姿势,以便纠正不良的读写姿势。设备使用 ADXL362加速度传感器,并根据传感器采集的加速度数据计算出头部姿态的两个角度:倾角 (α) 和 **俯仰角 (β)**。

头部姿态计算过程:

加速度分量匹配

设备的佩戴方向与加速度传感器的安装方式进行匹配:前方对应加速度分量的 y 轴正方向,上方对应 x 轴正方向,左侧对应 z 轴正方向

倾角 (α) 计算

倾角是加速度分量 z 轴 与 xz 平面分量 之间的夹角。计算公式为:

目瞳瞳近视防控眼镜-本体设计

其中, 和  分别是 x 轴 和 z 轴 的加速度分量, 是 z 轴 的加速度。

俯仰角 (β) 计算

俯仰角是加速度分量 y 轴 与 xy 平面分量 之间的夹角。计算公式为:

其中, 和  分别是 y 轴 和 x 轴 的加速度分量, 是 y 轴 的加速度。

修正佩戴方式中的角度镜像问题:由于设备支持左右佩戴,因此需要对倾斜角度镜像问题进行修正。固件通过设置角度范围(0°到180°),并根据 x 轴矢量分量 修正倾斜角度,使得最终输出的头部姿态数据在两种佩戴方式下保持一致。

增强传感器的故障恢复机制:为提高数据可靠性,设计了加速度传感器的电源控制逻辑。如果传感器发生故障,系统会切断传感器电源,并在2秒后重新供电以恢复正常工作 。这一方法通过实时计算用户头部姿态并与预设的标准进行比较,能够及时纠正不良的读写姿势,帮助减少视力疲劳和近视风险。

模拟向量

根据模拟的加速度数据(x = 0.3g,y = 0.5g,z = 0.8g),计算得到的结果如下:

**倾角 (α)**:69.44°

**俯仰角 (β)**:30.96°

图中展示了加速度向量在三维空间中的方向。箭头表示加速度传感器检测到的加速度向量,它的方向与头部的姿势相关,帮助确定头部的倾斜角度和俯仰角度。

此模拟展示了如何通过加速度传感器数据计算头部姿态,从而实现对姿势的实时监测和纠正。

眼镜工作的时候会在不同的状态之间切换,称为工作状态管理主要是降低功耗。

工作状态和待机状态

工作状态:设备的红外测距传感器和数据传输功能工作时,功耗较高。传感器的工作电流为 22 mA,持续约 20 ms,而射频数据传输时的工作电流约为 6 mA

待机状态:在此模式下,系统主动断开蓝牙连接,并停止所有近视防控相关的数据监测和逻辑控制,极大地降低了功耗。

过渡状态

为了避免误判设备进入待机状态,系统设计了一个过渡状态。过渡状态下,系统降低了测距频率和数据传输频率,使得功耗介于工作状态和待机状态之间,并保留了设备对使用场景的监测能力。

状态切换逻辑

设备的静止状态是允许进入待机状态的前提;在待机状态下,如果设备开始运动,则会切换回工作状态。

当阅读距离小于 10 cm 且持续 1 分钟,系统会进入过渡状态;持续 3 分钟后,系统进入待机状态。如果光强低于 10 lx,且持续 10 秒,系统会进入过渡状态;如果光强大于 30 lx,系统将切回工作状态 。

这些策略确保设备在使用不频繁时能够进入低功耗待机模式,从而延长电池续航时间,同时又能够在需要时保持对用户行为的实时监测。

状态机

在资源受限且有无线连接的系统,射频相关的功能是必须要管理的,蓝牙广播信号控制讨论了如何合理控制蓝牙广播信号以降低系统功耗。:

广播功耗与广播间隔的关系

广播功耗与 广播间隔 密切相关。广播期间的系统电流范围在 30 μA 到 3.5 mA 之间。

广播间隔为 1 秒时,蓝牙广播会使系统电流增加 30 μA

广播间隔为 100 毫秒时,工作电流增加约 190 μA

为了平衡功耗和广播效果,最终广播间隔被设置为 80 毫秒,此时系统的平均工作电流为 355 μA

蓝牙广播关闭与最低功耗状态:

当 蓝牙广播关闭时,系统进入 最低功耗待机状态,此时平均工作电流降至 约 155 μA

关闭蓝牙广播信号后,蓝牙模块不再占用额外的功耗,从而显著降低系统的整体功耗。

蓝牙广播带来的额外工作电流约为 200 μA,占系统总电流的 **56.3%**。

广播信号控制的条件与逻辑:

广播关闭条件:当设备处于 待机状态 或 用户未连接小程序时,系统会关闭蓝牙广播以降低功耗。

广播开启条件:当蓝牙连接断开,或检测到用户 仰头达到 150°时,系统会自动开启广播并持续 30 秒。这一设计简便易用,既能避免误判,也能提供用户休息的机会,减缓视力疲劳。

对功耗的影响

即使在 正常工作状态 下,系统的平均工作电流为 790 μA,而 蓝牙广播 的额外电流是 200 μA,这意味着通过控制蓝牙广播的开启和关闭,可以显著减少功耗,从而延长设备的续航时间。

这些设计通过合理控制广播信号的开启和关闭,使得设备在低功耗模式下能够更长时间工作,同时保持必要的通信功能。

蓝牙广播信号控制

展示了不同广播间隔下的功耗以及其他相关状态:

  1. 蓝牙广播功耗:在 广播间隔为1秒 和 100毫秒 时,广播功耗分别为 30 μA 和 190 μA
  2. 蓝牙关闭时功耗:当蓝牙广播关闭时,系统进入最低功耗状态,功耗降至 155 μA
  3. 正常工作模式下的功耗:在正常工作状态下,系统的功耗为 790 μA,并且开启蓝牙广播时功耗升高至 355 μA

通过调整蓝牙广播的开启和关闭,系统可以实现较长的电池续航,并根据使用需求优化功耗。

有了上面状态和射频的管理以后,就要评估整体的功耗情况,讨论设备在不同工作状态下的功耗表现。通过 工作状态管理 和 蓝牙广播信号控制 的优化,系统在待机状态下表现出了极低的功耗。:

系统功耗数据

image-20250710123558253

表 3.2 中列出了不同工作状态下的 平均工作电流,如下所示:

工作状态:平均电流 790 μA,此时设备进行测距和数据传输。

过渡状态:平均电流 450 μA,测距频率降至 0.2Hz,广播信号仍然开启。

待机状态:平均电流 355 μA,设备仍保持基本功能,如传感器监测。

深度待机:最低工作电流 155 μA,此时系统关闭广播信号,进入低功耗状态。

深度待机状态下,系统的功耗仅为 0.5 mW,而设备在此状态下的运行稳定性也得到了验证。10 套设备的放电曲线一致性较好,深度待机模式下的运行表现非常稳定。

10 套

设备在深度待机模式下的运行时间

待机时长:测试结果显示,设备在深度待机状态下的平均待机时长为 333.5 小时,即超过 13 天,并且测试结果具有较小的标准差 5.5 小时

最长连续工作时长:设备的最长连续工作时长为 66.7 小时,标准差为 0.6 小时

功耗优化的效果

通过优化 蓝牙广播信号控制 和 工作状态切换逻辑,设备能够在不需要使用时进入 深度待机状态,极大地降低了功耗。这样的优化帮助延长了设备的 续航时间,确保其在长时间使用中的高效运行。通过这些优化设计,设备能够在提供全面近视防控功能的同时,有效地管理电池电量,并延长使用时间。

系统功耗效果

展示了不同工作模式下的功耗与电池使用时长的关系:

蓝色条形图:展示了在不同工作模式下的 平均电流消耗(单位:μA)。从图中可以看到,工作模式790 μA)的电流消耗最高,而深度待机模式的电流消耗最低,仅为 155 μA

绿色曲线:展示了在过渡模式待机模式下的电池使用时长。待机模式的使用时长为 333.5 小时,而在 工作模式下设备的最长连续工作时长为 66.7 小时

微信小程序设计:基于实时用眼数据,提供直观的操作界面和定制化的防控建议。小程序不仅支持数据的实时传输,还允许家长、老师和医生查看用户的长期用眼数据,从而制定个性化的防控策略。

用眼健康监测模型:设计了一种基于光强和用眼行为的数据分析模型,用于判断用户的室内外活动类型及不良姿态,并提供针对性的防控建议。还增加了头部操功能,通过动画引导用户进行颈部锻炼。

https://www./jbkzzx/yqxxxw/1699314959781326848/hOxQXZRZ.pdf

https://openstd./bzgk/std/newGbInfo?hcno=3F367939DB5EBBCE6FEF657173DB7618