APP下载

足底压力阵列分析系统的研究与开发

2021-11-07吴亮亮唐志伟

关键词:阻值上位鞋垫

吴亮亮 ,刘 鑫 ,唐志伟

(1.厦门南洋职业学院,福建 厦门 361102 2.深圳市汇川技术股份有限公司,广东 深圳 518101)

1 引言

足底压力分布可为前交叉韧带(ACL)损伤、足底筋膜炎、帕金森、糖尿病、中风后遗症等多种疾病的针对性评估治疗、康复观察或者体育训练方案制订等方面提供重要的参考[1-3]。目前足底压力分析系统在国内还是没有很成熟的产品,主要依赖进口。国外商业化的产品主要有平板式和鞋垫式。现有平板式产品有美国 GaitRite Electronic公司所提供的GaitRite步道,比利时RSscan公司的Footscan,德国Zebris、Novel、Medilogi、GeBioM、Currex,意大利 SensorMedica、BTS、Loran;鞋垫式产品较为成熟的有美国公司Tekscan生产的F-scan鞋垫。这些产品均价格不菲[4]。另外,国内研究大多把传感器针对性分布在拇指趾骨、中指趾骨、第一趾骨、足跟等关键受力点,需要量身定制,且不排除使用者行动中脚与检测产品相对位置稍微偏离带来的检测误差。本文研究的是鞋垫式阵列柔性薄膜压力传感器,有99个感知单元。感知器件数量多,受众面广,从生物力学角度出发能确保检测不同人足底压力静态、动态的分布变化情况[5]。对于国内便携式足底压力显示系统的研发有一定参考价值。

2 硬件系统设计

鞋垫式足底压力分析系统电路分为五个功能模块,分别是:电源电路、信息采集电路、STM32信号处理电路、无线传输电路、上位机显示,系统硬件框图如图1所示。

图1 系统硬件框图

2.1 信息采集电路

2.1.1 传感器型号比较选择

比起电感式、电容式、压电式的压力传感器,电阻式压力传感器在范围、响应速度、灵敏度,作为鞋垫组成部分在穿着的舒适度等方面更具优势[6],因此本系统选用电阻式压力传感器。

市场上电阻式柔性薄膜传感器型号多样,现针对市场上不同厂家几款进行比较如下表1。

表1 不同型号电阻式柔性薄膜传感器参数比较

从表格可以看出,电磁干扰EMI、静电释放、测试电压、初始电阻等几项参数基本相当,主要是量程、响应时间和恢复时间、工作温度几项比较,结合性价比,选择款式FS-INS-W99的柔性薄膜压力传感器采集信号。

一般人双足足底压力较为均匀,动态静态压力分布情况有明显差异,但和性别、年龄、身高、体重相关性不大。正常人平均动态和静态足底峰值压力分别为 (2.96±0.66)kg/cm2和 (1.2 8±0.3 3)kg/cm2[7]。本系统选用传感器尺寸为12×6mm,有效区域约为11×5mm,传感器有效面积S为0.55cm2,传感器受到压力峰值 F=(2.96+0.66)×0.55=1.991kg<10kg。因此,所选传感器型号完全满足系统设计需求。

2.1.2 信息采集转换电路设计

通过标定实验,在传感器上逐次增加砝码画出受力大小与传感器阻值之间关系,记录数据(见表2),做拟合压力与电阻关系曲线图(见图2)。

表2 ARDUINO NANO V3.0的技术参数

图2 压力与电阻关系曲线图

传感器为15行7列,如图3所示,共99个传感器,22条引出线。(第1行脚跟处少2个,第14行少1个,第15行脚尖处少3个)

图3 阵列传感器分布示意图

成人脚长在220mm~280mm之间,阵列式鞋垫选取260mm,可定制配套脚踝和鞋面有可调节长短鞋扣的特制鞋(如图4)供脚长小于260mm使用者穿着,可以满足220mm~260mm之间的人群数据监测。特制鞋鞋垫下表面要光滑、坚固、平坦,不能有可能导致传感器出现假触发的潮湿气体或污垢颗粒等。鞋底接触鞋垫处带一定凹槽,防止鞋垫错位。鞋垫表面附着薄弹性体,可以吸收不一致的力分布而引起的误差。

图4 含阵列传感器鞋垫的特制鞋的示意图

2.2 MCU信号处理电路设计

系统信息处理MCU选用STM32F103C8T6为主控芯片。STM32的核心电路包括电源、复位、时钟、调试四个部分。

电路设计实验过程中做了以下思考和尝试:

(1)传感器采用MCP6004等运算器做信号放大,运放的非线性部分的干扰影响标定准确性,标定过程也很复杂;

(2)使用24位高精度的多通道的AD数据采集模块AD7190与多路开关混合组成阵列,不在STM32执行AD采集,直接利用SPI接口读取数据。大大减轻标定的复杂程度,但是成本和产品体积也会明显增加。

最后方案是:为提高电路鲁棒性,不采用运算放大器做信号放大,传感器通过模拟开关做阵列扫描。传感器阵列分布扫描读取数据,需要选用模拟开关。德州仪器(TI)公司CD74HC4067是单16通道的多路模拟开关,供电电压+3.3V,模拟开关转换时间为100ns,导通电阻100Ω[8],适合本电路设计需求。

传感器7列引线连至STM32的AD引脚(PA0-PA6),传感器15行引线S0至S14依次接至模拟开关CD74HC4067的y0至y14,控制端A、B、C、D引脚接到STM32的4个GPIO口,如图5所示。上电后在使用过程中通过阵列扫描,采集变化的压力信号,得到实际电压值:

图5 信息采集电路原理图

程序用串行线SWD(Serial Wire Debug)下载,SWD仅用VCC,GND,SWCLK,SWDIO四线,操作简单接线少,可在线调试,在高速模式下比JTAG模式更稳定[9]。

2.3 无线通信电路

STM32通过USART1连接无线蓝牙,把各个传感器压力换算数值通过蓝牙发送到PC上位机端的蓝牙调试助手,实现人机交互。

2.4 PCB布局布线要点

(1)分割模拟数字区域:电路中模拟电源AVCC与数字VCC,模拟地AGND与数字地GND各自独立,连接地方使用钽电容做旁路电容,以抑制纹波。铺铜时也注意电源线和信号线分割,用0R5电感连接AGND与GND公共连接处,减少信号干扰,提高电路稳定性。

(2)地线和信号线不可折返,避免由于正反馈带来的信号自激影响电路正常工作;走线尽可能短,不允许走锐角线,尽可能减少尖端放电辐射产生的寄生干扰。

(3)选用小型化的贴片器件,元器件就近接地,减少分布参数造成的影响。

3 软件系统设计

3.1 CubeMX 设置

3.1.1 此次项目中使用STM32F103C8T6的PA7/PA8/PA11/PA12四个引脚链接CD74HC4067的A/B/C/D引脚,在System Core->GPIO中将四个引脚分别设置为:输出模式Output Push Pull、上下拉电阻Pull-down、输出速度为High。

3.1.2 在CubeMX软件中分别设置时钟、串行下载调试、引脚分布。采样周期SamplingTime设置太小,会影响采样准确性,设置太大会影响采样时间。根据奈奎斯特定理,采样频率要大于信号最高频率两倍,在实际应用中通常取2.56-4倍,以便更好的保留被测信号的完整性,采样时间T(us)=(12.5+SamplingTime)/ADC 时钟频率(MHz)[10]。

ADC1中勾选 IN0-IN6共七路 ADC,且在Paramemter Setting中将ADC的模式设置为Independent mode,数据对齐方式选择为右对齐,由于需等待模拟开关的控制端口设置好后进行采集,故选择单次采集,连续采集模式设为Disable,扫描模式设置为Scan;使用DMA对数据进行搬移,来减轻CPU压力,节省单片机资源。由于ADC采集模式为单次采集,故DMA模式设置为Nomor;单片机采集到的数据为12位的,将DMA搬运的数据长度设置为HalfWord。为了保证每次对数据的采集时间足够精确,使用定时器中断,在定时器中断中,完成对数据采集处理的一系列过程,为了方便调试,会将定时器中断时间间隔调整较大,0.02s采集一次数据。根据公式 T(S)=(ARR+1)×(PSC+1)/TIMCLK(Hz),设置定时的预分频PSC为7200-1、重装载ARR值为20-1;在NVIC Setting中打开使能TIM2的global interrupt;使能单片机的USART1,用蓝牙模块将数据无线传输到上位机。设置波特率为115200,数据长度为8,无校验位,1个停止位。

3.1.3 压力传感器有激活时间,采样电路上升到3.3V需要一定时间。因此上电开启定时器1S后做ADC校准HAL_ADCEx_Calibration_Start,开始开启ADC通道采样,保证数据准确。

3.1.4 在调试阶段,设置Optimization为Level0,局部变量分配到内存地址,虽然占用程序空间较大,但方便分析调试。调试开发周期结束再设置为Level3。

3.2 程序流程图

图6 数据处理流程图

4 电路校准实现

传感器采集垂直向上的力,人在静止或者运动过程中,通过压力变化改变阻值。压力传感器在无压力状态下阻值Rsp>1MΩ,需要外加电压通过变化中的电阻转换为电压的变化再由AD模块检测。

合适的固定阻值可以输出电压值呈现近似线性的关系,VOUT=Vcc×R0/(R0+Rsp=3.3×1K/(1K+Rsp)。

Vcc为供电电压3.3V,R0为串接电阻阻值,参照该型号数据手册,选择R0=1MΩ,即

STM32F1最大灌电流20mA,总体最大电流不能超过150mA。实际电路电流Imax=3.3V/Rsp最小≈6.6mA<20mA。总体电流不会达到150mA,也不会超过74HC4067模拟开关工作电流20mA,设计电路完全符合工作电压电流的要求。通电后上位机数据显示下图。未负载情况下,各个受力点电压值为0.00-0.02V,图7为串接1K欧姆阻值-未负载的上位机显示。

图7 上位机显示(串接1K欧姆阻值-未负载)

负载情况下(98斤重人静止站姿),受力点最大压力至为0.79V。图8为串接1K欧姆阻值,98斤重人站立姿势时上位机显示。

图8 上位机显示(串接1K欧姆阻值-98斤重负载)

压力显示数值较小,为确保误差尽可能小,软件方面修改显示数值,使小数点保留至5位,硬件方面用3K电阻更换原先串接的1K电阻。如图9为串接3K欧姆阻值,119斤重人站立姿势的上位机显示。

图9 上位机显示(串接3K欧姆阻值-119斤重负载)

如图10数据显示,单点最大压力值为1.68303V,更换体重不同的实验对象,分析比较数据,各个压力显示数值基本符合人体足底压力分布规律,证明电路功能可实现。

接下来需要对各个传感器采集压力采取抽样的方法开展标定实验。传感器各受力点压力为V(y,x),(0≤x≤6,0≤y≤14)。首先做静态分析,选择M3标准砝码,放在抽样选取的传感器受力点的托盘上(如图10),在量程范围内逐次增加后再逐次减少,重复多次读取其平均值并记录对应重量下压力显示数值(见表3),做压力与电压关系曲线(如图11)。应用MATLAB拟合数据,得出电压采样值与实际重量之间线性关系F=0.0003VOUT+0.0474,应用到程序算法部分,再次做应用验证。

图10 实验验证图

表3 压力与电压关系表

图11 压力与电压关系曲线

每个人体重不同,压力显示数值也会因此不同,采集的压力值不是最后要求的数值,作为判断依据的是个性化分析足底压力的分布比例。

5 总结

本文比较分析不同型号电阻式柔性薄膜压力传感器性能参数,基于STM32控制器、HAL库开发,自主设计并实现了足底压力实时显示系统,归纳硬件电路设计方面的要点,通过标定实验分析处理采集数据,验证系统的准确性和可靠性。在临床医疗、体育健身等多种领域有良好的应用价值,并且操作简单成本较低,对摆脱长期依赖欧美昂贵的进口产品,国内足底压力显示产品的研究发展有一定参考价值。

本文主要贡献有:

(1)鞋垫式电阻式压力传感器采用15行7列,阵列扫描读取数据,提升采样速率;鞋面设计鞋面罩,鞋垫监测点阵列排布数量多,在一定范围内可对足部尺寸不同的人进行检测,适用范围广。

(2)与以往研究不同,不做电压放大,尽可能减少线性放大带来的信号干扰和数据误差。采集数据直接由MCU主控芯片读取,电路简单、成本低、功耗小、运行稳定等优点。采用HAL库开发,可移植性强,效率高。

(3)足底压力数据不单纯显示压力值,有针对性显示不同人在静态或动态过程中足底压力分布比例。方便临床或者运动训练中做出合理判断。

本系统设计还有不足之处,因为经费问题本系统设计校准只做单脚实验。后续研究中要做双足数据比对和采样,进一步设计图形化显示界面和数据存储比较等功能,使显示更美观、使用更具人性化,提升产品的应用价值。这些问题将在之后做进一步深入研究和优化。

猜你喜欢

阻值上位鞋垫
一场史无前例的乐队真人秀
对一道电学实验题的思考
我学会了绣鞋垫
基础油“上位”
防走失鞋垫
电桥平衡条件的应用
基于VC的PLC数据采集管理系统
这道电学黑箱题有误吗?
巧处理断路和短路中的动态问题