基于FSR压力传感器的坐姿状态检测系统的设计
2023-01-11牛慧晖
牛慧晖
(山东科技大学,山东青岛,266590)
0 引言
坐立姿势(坐姿)是学生群体一天内工作和学习内绝大部分时间所处的状态。坐姿正确地保持不仅能够预防慢性疾病的出现,而且还能够提高工作和学习的效率[1]。但是,在面对沉重的学习负担的情况下,长时间的坐立状态使得身体的各个部位会产生不适的感觉,学生不得不调整自己的坐姿来舒缓疲惫[2]。在这个调整过程中人们很难一直保持正确的坐姿,会出现头部倾斜、躯干弯曲等不良坐姿的表现。随着时间的推移,不良坐姿引起的一连串的“职业病”对学生族的身体健康造成了危害,也影响着他们的正常生长发育。当前,为了更有效地降低因不良坐姿带来的消极影响,研究人员开展了坐姿检测领域的相关研究。通常采用的技术路线主要是两种,一是基于摄像头的视频图像识别技术,该方式识别效果好,设备简单,但是存在易空间干扰、数据处理复杂、实时性差,同时存在一定的隐私泄密问题[3~4]。二是基于可穿戴设备的识别技术,这种方式具有应用简单、信息处理速度快等特点,能够一定程度上地减小了隐私的侵入性[5~6]。综上所述,本文考虑系统的实用性和实时性,提出了一种基于柔性FSR压力传感器的坐姿实时检测系统的设计,实现了坐姿状态数据的实时采集与显示,具有良好的应用性和研究意义。
1 坐姿实时检测系统的设计方案
本文设计的坐姿实时检测系统由压力感知单元、压力信号采集、处理模块和上位机显示构成。其设计思路:当人体处于不良坐姿状态时,固定在人体表面的柔性FSR压力传感器会在颈椎以及脊椎弯曲时产生的突出力的作用下产生不同程度的挤压,依靠压力传感器的压阻效应,将测量的压力转换为电阻输出。信号经过放大由A/D将电阻变化信号转换为电压信号,然后由单片机处理发送到上位机显示。达到不同坐姿状态对应下的数据变化实时显示的目的。图1展示了系统的整体设计图。
图1 坐姿实时检测系统整体设计图
2 坐姿实时检测系统的硬件选择
2.1 压力传感器
本系统采用INTERLINK ELECTRONICS公司生产的FSR402型号的短尾电阻式压力传感器作为感知单元[7]。其感知区域内的压力越大,输出电阻越小,工作电压为5V,压力范围为<10kg,实物图如图2(a)所示。
图2 FSR传感器实物图及安装位置
为了使FSR传感器更好地感受到外部的压力,我们将其表面放置一层自制的硅橡胶突起触头。本文主要对脖子、后背、以及腰部长时间弯曲等不良坐姿状态进行检测。因此,在颈椎处放置一个压力传感器(定义为FSR1),用来检测颈椎弯曲状态。后背部位的脊椎处位放置一个压力传感器(定义为FSR2),腰部的脊椎处平行放置一个压力传感器(定义为FSR3),用来检测躯干脊柱的弯曲状态。传感器的安装位置如图2(b)所示。
2.2 主控芯片
考虑到本文设计的系统中压力信号采集简单,因此我们选用基于ARMv7-M体系结构的32位高性能、低功耗微控制器STM32F103VET6作为系统的主控芯片[8~9],其最高运行速度可以达到72 MHz,CPU的时钟运行速度与RAM的读取速度同步,拥有着丰富的片内资源和外设接口。该处理器具有丰富的通用I/O端口,可以自主设置为其他的外设功能口;内部集成了大容量的嵌入式Flash和SRAM,满足对大量数据储存和快速读写;内部集成多路双采样和保持功能集成的A/D转换单元,满足了同时对多个模拟量的快速采集;丰富的通信方式选择(两个SPI,两个I2C,五个USART, 一个USB,一个CAN通信,一个SDIO),易与其他外部模块的数据通讯。
2.3 传感信号采集模块
该系统包含的压力传感器数目少,单独接线,不需要设计复杂的阵列行列扫描采集电路。直接使用STM32芯片内部集成的模数转换器,实现对压力数据的快速采集和处理。其转换速率可达1MHz,转换范围为0~3.6V,采集速率能够满足传感器的实际采样需求。
2.4 放大电路模块
为了便于单片机对微弱电压信号的采集,采用基于AD620芯片的放大器模块对采样电阻的电压信号进行放大。该芯片具有精度高、成本低、功耗低及供电电源范围宽(±2.3V~±18V)等特点。可用于微伏、毫伏电压的放大,放大倍数易于调节(最大1000倍),适用于诸如传感信号检测、电压/电流转换等应用场合。
2.5 无线传输模块
为了便于传感信号的收集,采用WiFi的方式将单片机处理后的数据无线传输到PC端。WiFi模块微控制单元芯片型号为ESP8266,该芯片是面向物联网一款性价比高、开发成本低的可编程MCU,能实现与单片机之间的串口通信。其内部集成了多种模块包括:32-bit处理器、片上SRAM、天线开关、功率放大器滤波器和电源管理器等。这种领先特征,使其在开发和运行中拥有强大的片上处理和存储能力,最少地占用系统资源和外围硬件电路。ESP8266模块通过串口UOTXD与UORXD与STM32微控制器进行通信[10]。
3 坐姿实时检测系统硬件设计
3.1 核心电路
STM32F103VET6芯片和复位电路、晶振电路、下载电路以及电源电路共同组成了STM32最小系统,其电路原理图如图3~6所示。同时单片机最小系统和ESP8266芯片构成了系统的核心采集电路。本文基于STM32最小系统以及放大电路模块和FSR402压力传感器搭建了坐姿检测系统的硬件电路。
图3 复位电路
图4 晶振电路
图5 下载电路
图6 电源电路
3.2 系统检测原理
坐姿检测系统的信号检测原理结构图如图7所示,其中R1~R3为采样电阻,阻值为10kΩ。
图7 系统检测原理图
当采样电阻的两端输出电压经过放大电路放大a倍后,单片机内部A/D采集得到的电压为Vout,根据分压原理内部对传感器的电阻进行计算,以FSR1的电阻计算为例公式如下:
采样电阻两端电压为:
分压电路的电流为:
FSR1的电阻为:
3.3 系统程序设计
单片机需要编写执行程序完成控制内部A/D对传感器的压力数据采集,对数据内部处理、控制WiFi模块对数据无线传输等多个工作。软件系统采用模块化设计的思想由keil5进行编写,系统语言使用C语言。总体程序由主程序、I/O口配置程序、压力数据采集/处理程序、WiFi通信程序组成,系统程序流程图如图8所示,模块化的设计思路提高了系统的设计效率。具体工作流程如下:单片机上电工作之后,系统主程序开始对单片机的I/O配置初始化,对内部的A/D模块初始化,对ESP8266芯片以及WiFi协议栈初始化。系统初始化完成后,单片机按照设置的程序依次扫描每个压力传感器的数据并存储到RAM中,对数据进行处理,通过ESP8266芯片的WiFi功能将采集完成的传感器数据发送到PC端。电脑端口连接WiFi适配器,使用串口助手接收并实时显示接收到的数据。
图8 系统程序流程图
4 系统实验与讨论
坐姿实时检测系统组装调试完成后,将传感器用创可贴固定在学生颈部和躯干处,对志愿者的不同坐姿状态进行实时的检测。首先,我们对系统进行了可行性测试,实验结果如图9所示。结果表明,当学生身体处于弯曲状态时,设计的系统可以快速地检测和显示颈部、躯干处的压力信号,满足设计的需要。
图9 系统可行性实验
接下来,利用设计的系统对学生坐姿的实时状态进行测试实验。实验结果如图10所示。开始测试时志愿者先保持正确坐姿,从图10紫框的测试过程中可以看出此时传感器FSR1-FSR3采集的压力数据没有明显的变化。然后志愿者开始模拟不良坐姿(头部保持正常姿态),后背开始弯曲。此时传感器FSR2受到脊椎突出力的作用,输出明显的电阻变化。当躯干进一步弯曲时,腰部处安装的传感器FSR3也在脊椎突出力的作用下输出有了明显的变化。接下来,志愿者头部也开始弯曲下低,在颈椎作用力下传感器FSR1也输出了明显的变化。在图10黑框的测试过程中,传感器FSR1-FSR3处于长时间的输出变化状态,此时志愿者没有保持正确的坐姿,即不良坐姿。
图10 坐姿实时测试结果
5 结束语
本文设计了一种用于学生坐姿状态监测的测试系统,通对FSR压力传感器采集学生颈椎和脊椎的弯曲产生的压力信号,利用STM32单片机进行有效的检测和处理,最终将处理完成的传感器数据无线发送到PC端,实现了对不同坐姿状态下传感器压力数据的采集和实时显示。测试结果表明:设计的系统可以明显判断出不良坐姿状态的特征,可以对学生的坐姿状态进行远程监控。