聚丰项目 > 手部动作捕捉与生理参数监测硬件平台
本项目基于中科蓝讯AB32VG1开发版以及RT-Thread软件框架,利用集成前端倾角传感器MPU6050与双通道血氧检测传感器MAX30100,设计了一套完整的可采集手部位姿、血氧饱和度、温度、心率等参数的硬件平台。 该硬件平台,具有且不限于以下应用场景: 手功能康复评估(医疗):对手部残疾或手指受伤术后康复患者,可以借助对指节温度、血氧饱和度、手指可活动范围(ROM)等客观指标进行可复现、高精度的手功能康复评估。 人机交互(VR/MR/MetaVerse):借助六轴陀螺仪对操作者手部姿势的高准确度还原,形成更自然、操作信息更丰富的人机交互手段。 动作捕捉(影视、游戏):同样借助六轴陀螺仪对操作者手部姿势的高准确度还原,应用于游戏、电影、动画制作等需要对真人手部动作捕捉的场景。 低成本多通道模拟开关的设计,大幅降低物料成本和MCU的IO占用,配套以自行设计的小尺存传感器电路板,整套设备成本控制在200元以内,结合基于RT-Thread框架的开源软件包的使用,十分方便复现。
jf_25703341
jf_25703341
团队成员
杨炳乾 软件设计
徐茂源 硬件设计
首先根据需求进行硬件方案的设计,在经过反复比对、开发板资源验证后,最终选择了五路独立传感器通道+开发板+DIY开发板拓展版的硬件方案。
硬件整体设计框图如下:
为了系统的表述硬件的设计思路,我们可以从最接近需求的设计部分——传感器电路开始介绍。
为了完成对手部动作的完整捕捉,以及考虑到医疗用途中患者手部受伤状况的复杂性。
传感器部分采取了独立、并行的硬件设计,分别布置在人手指末端的五个指节处,并可以根据需求进行放置位置的移动。
传感器电路主要完成以下四个参数的采集:指节位姿、血氧饱和度、心率以及温度。
指节位姿信息的采集,目前市面上主要流行的方法有应变电阻、电位器以及IMU的测量方案,考虑到在医疗场景中使用时,方便佩戴以及体积小巧是很重要的考虑因素,因此选择了使用IMU的测量方案,这里我们选择了MPU6050的六轴集成传感模块。
血氧饱和度以及心率的测量,由于考虑到医疗安全的角度,且对精度没有十分准确的要求,我们最好采用非侵入式的监测手段,而PPG(光电容积脉搏波)是一种很成熟的非侵入式监测方案,大致原理是通过人体血液中氧合血红蛋白与还原血红蛋白,对不同波长入射光的投、反射系数不同,通过对特定波长反射光光强的量化,即可得到PPG信号,单通道的PPG信号我们可以获得心率和血压信息,而双通道(双波长)的PPG信号则可以获得血氧饱和度的信息,最终考虑到传感器集成体积和成本,选择了MAX30100集成传感器进行血氧饱和度、心率以及温度信息采集。
电源设计及通信接口,MPU6050为3.3V供电,MAX30100同时需要3.3V和1.8V的供应电压,因此设计了3.3V和1.8V两路LDO。通信接口方面,两个集成传感器都使用IIC通信的方式。考虑到模块的更换方便与外观简洁,设计了Type-c的端口进行供电与数据传输。
传感器电路原理图与布局示意图如下:
传感器电路原理图
传感器电路立体图
电路布局示意图(背离人体面)
电路布局示意图(朝向人体面)
实物焊接效果如下:
二、前端数据电路(AB32VG1开发板拓展版)
此次拓展版的设计,主要考虑到以下两个方面的需求:
1. AB32VG1开发板的供电电流(500mA)可能无法支持5路传感器+开发板的同时工作。
2. 前端传感器出现IIC地址重叠
因此,为了满足这些需求,我们为拓展版设计了以下三个方面的模块:
电源管理模块,主要包括12V直流输入、DC-DC降压、LDO稳压,为开发板和前端传感器提供电源供应与基准电压,后续还可根据需要加入电池管理与充电IC。
多路模拟开关模块,利用TI的CD4051多路模拟开关,在采集对应通道的传感器数据时,进行特定选通,较低成本的解决了IIC地址复用问题。
OLED显示模块,方便设备在脱机使用时,显示一些本地信息和调试。
拓展板电路原理图及布局示意如下:
拓展板原理图
拓展板立体图
拓展板布局示意图
实物焊接效果如下:
最后是此次设计基于的开发板AB32VG1,厂商提供了详细的开发板资料、datasheet与例程,可以参考此次大赛的首页或公司首页获取这些资料。
焊接完成后,完成整体组装,因时间紧迫,尚未来得及设计外壳,后续视情况添加。
在硬件部分完成设计后,进行了软件框架的设计与编写调试。
首先说明一些本次设计引用到的开源代码与RT-Thread相关软件包:Invensense官方提供的eMPL姿态解算库MAX30102的软件包(与MAX30100驱动部分有差异,需自己修改)
软件部分流程如下图所示:
传感器初始化部分: 各通道轮流初始化,全部工作寄存器配置完成后,查询各传感器ID及状态,确保正常工作。
传感器数据采集: 这里采用信号量的方式进行各采集线程的同步,主要考虑到多路模拟开关只在各线程采集进入时切换通道,若中途发生线程优先级抢占或轮转,会采集到错误通道数据。
数据上传及查询: 原先的设计是增加串口上传线程,进行数据上报,但是由于时间紧张,上位机显示部分尚未完工,因此目前先采取MSH命令行查询的方式,验证采集数据的正确性。
最终佩戴至人体如图(后续会增加感器外壳,增加安全性):
上电工作:
各通道初始化(红光为MAX30100光电传感器光源):
血氧、心率数据采集(单通道显示):
以及原本计划编写手部实时捕捉的上位机显示部分尚未完工,因此暂时借用匿名四轴上位机进行数据显示,需要按照匿名上位机的格式进行数据发送(拇指):
多指节数据借助msh命令行输出进行验证(指节2、3的roll角度变化较为明显):
Gitee仓库地址:https://gitee.com/YangBingQ/RTT
jf_12392931: 这个软件做的不错
回复
jf_25703341: 匿名四轴上位机是别人做的哈哈哈哈,借用来演示。新的上位机正在完成
回复
jf_12392931: 为你点赞
回复
jf_60544308: 思路不错
回复
dianzi_0101: 666
回复
jf_82262998: 您好,我对这个项目很感兴趣,请问怎么联系您呢?
回复