本科组控制系统类大连理工大学便携式多功能动人体平衡检测仪.docx
《本科组控制系统类大连理工大学便携式多功能动人体平衡检测仪.docx》由会员分享,可在线阅读,更多相关《本科组控制系统类大连理工大学便携式多功能动人体平衡检测仪.docx(20页珍藏版)》请在冰点文库上搜索。
本科组控制系统类大连理工大学便携式多功能动人体平衡检测仪
2011-2012德州仪器C2000及MCU创新设计大赛
项目报告
题目:
便携式多功能动人体平衡检测仪
学校:
大连理工大学
指导教师:
赖晓晨
组别:
本科组
应用类别:
控制系统类
平台:
Cortex-M
参赛队成员名单(含每人的邮箱地址,用于建立人才库):
张洪伟994841333@
迟博709094290@
柳继委1203717063@
视频文件观看地址(若未拍摄,请注明):
邮寄地址和收件人联系方式(快递发送,请不要使用邮政信箱地址)
辽宁省大连市开发区大连理工大学软件学院教学楼C区110
题目:
便携式多功能动人体平衡检测仪
摘要(中英文)
本文设计一种人体平衡机能测试系统,包括测试平台和手持终端两部分,能够对测试者重心移动情况做出实时测量,并在屏幕上显示出重心移动的轨迹,通过重心移动的轨迹来判断人体的平衡性,对于体育保健、医疗等行业有着重要的使用价值。
Wedesignedabalancemeasuresystem,whichismadeupofthetestplatformandthehandholddevice.Itcanmeasurethemovementofthetester’sbarycenter,anddisplaythetrackofthebarycenteronthescreen,thenthesystemcanestimatethetester’sbalanceabilitybasedonthetrack.Thissystemisusefultothephysicalhealthcareandmedicalaspect.
1.引言
平衡功能是人体神经运动系统的一项重要功能,许多神经系统疾病均表现出不同程度的平衡功能障碍。
人体平衡功能的检测在无创医疗检测、运动生理检测等领域正日益受到人们的重视并获得应用。
但是目前市场上使用的检测人体平衡能力的仪器大多体积较大、操作复杂、价格较高、功耗较大。
本文旨在设计一种操作简单、功耗较低的手持型人体平衡性检测设配,能够满足普通用户的使用。
2.系统方案
系统总体的结构框图如图1所示。
系统的硬件部分包括测试平台和目标板两部分。
前者是一块带有三个压力传感器的铁三角板,后者是包括LM3S9D90单片机、放大电路、通讯模块、存储模块、显示模块以及电源等几个部分;软件的核心部分是数据分析处理模块,此外还包括通信模块、人机交互界面、会员管理模块。
图1平衡仪检测系统的整体框架图
系统的工作原理:
在测试平台的三个角下面安装三个压力传感器,当测试者站在测试平台上时,三个压力传感器会输出相应电压信号,经过信号调整电路和数据放大采集电路后进过串口传给目标板,目标板根据力矩平衡原理,对数据进行实时处理获得人体重心在是平面上的投影坐标,从而绘制出重心移动轨迹。
3.系统硬件设计
本系统在硬件上主要完成信号的调整放大,多路信号的选择,A/D转换、数据通信以及数据存储。
系统的硬件设计框图如图3所示。
图3系统硬件设计框图
3.1处理器核心模块
首先,本系统中需要处理大量数据的采集、运算、存储与检索。
所以对处理器的速度要求较高。
其次,目标机必须具有便携式,所以要尽量降低系统的功耗。
同时,在保证以上条件下,处理器的价格要尽可能的低,以降低成本。
通过一系列的考虑与查询,我们最终选择了具有ARM公司最新32位内核的Cortex-M3的LM3S9D90芯片。
ARMCortex‐M3处理器由于采用了最新的设计技术,它的门数更低,性能却更强。
许多曾经只能求助于高级32位处理器或DSP的软件设计,都能在CM3上跑得很快。
它具有如下特点:
性能强劲。
在相同的主频下能做处理更多的任务,全力支持劲爆的程序设计。
功耗低。
延长了电池的寿命。
实时性好。
采用了很前卫甚至革命性的设计理念,使它能极速地响应中断。
代码密度得到很大改善。
使用更方便。
更简单的编程模型和更透彻的调试系统,为与时俱进的人们大大减负。
低成本的整体解决方案。
低端的Cortex‐M3单片机甚至还卖不到1美元。
本系统中采用的具体型号为LM3S9D90,它具有以下特点:
1)ARM®Cortex™-M3处理器核心
–80-MHz运行速度,性能100DMIPS
–ARMCortex系统滴答定时器(SysTick)
–集成嵌套向量中断控制器(NVIC)
2)片上存储器
–512KB单周期Flash存储器,速度可达50MHz;50MHz以上采用预取指技术改善性能
–96KB单周期SRAM
–装有StellarisWare®软件包的内部ROM:
•Stellaris®外设驱动库
•Stellaris®引导装载程序
•SafeRTOS™核心
•高级加密标准(AES)密码表
•循环冗余检验(CRC)错误检测功能
3)片外设备接口(EPI)
–8/16/32位外部设备专用并行总线
–支持SDRAM,SRAM/Flashmemory,FPGAs,CPLDs
4)高级串行通讯集成
–硬件支持IEEE1588PTP的集成MAC和PHY的10/100以太网
–两路CAN2.0A/B控制器
–USB2.0OTG/Host/Device
–三路支持IrDA和ISO7816的UART(其中一路带有完全调制解调器控制的UART)
–两路I2C模块
–两路同步串行接口模块(SSI)
–内部集成电路音频(I2S)接口模块
5)系统集成
–直接存储器访问控制器(DMA)
–系统控制和时钟,包括片上的16-MHz精密振荡器
–4个32位定制器(可用作8个16位),具有实时时钟能力
–8个捕获/比较/PWM管脚(CCP)
–2个看门狗定时器
•1个定时器使用主时钟振荡器
•1个定时器使用内部时钟振荡器
–多达60个GPIO口,具体数目取决于配置
•高度灵活的管脚复用,可配置为GPIO或任一外设功能
•可独立配置的2,4或8mA端口驱动能力
•高达4个GPIO具有18mA驱动能力
6)高级电机控制
–8路高级PWM输出,可用于电机和能源应用
–4个fault输入,可用于低延时的紧急停机
–2个正交编码输入(QEI)
7)模拟
–2个12位模数转换器(ADC),具有16个模拟输入通道,采样率1000k次/秒
–3个模拟比较器
–16个数字比较器
–片上电压稳压器
3.2电源供电模块
目标机电路板主要需要5V、数字3.3V和模拟3.3V三种电源。
数字3.3V与模拟3.3V采用电感在一点隔离。
由于目标板空间有限,且对电源的要求不是很高,所以选用SPX1117作为目标机的稳压芯片。
分别采用SPX1117-5和SPX1117-3.3为目标机提供5V和3.3V的工作电压。
SPX1117是一款三端正向电压调节器,其可以用在一些高效率,小封装的设计中。
这款器件非常适合便携式电脑及电池供电的应用。
SPX1117在满负载时其低压差仅为1.1V。
当输出电流减少时,静态电流随负载变化,并提高效率。
SPX1117可调节输出,也可选择1.5V,1.8V,2.5V,2.85V,3.0V,3.3V及5V的输出电压。
SPX1117提供多种3引脚封装:
SOT-223,TO-252,TO-220及TO-263。
一个10uF的输出电容可有效地保证稳定性,然而在大多数应用中,仅需一个更小的2.2uF电容。
以下为SPX1117基本特性:
1)0.8A稳定输出电流;
2)1A稳定峰值电流;
3)3端可调节(电压可选:
1.5V,1.8V,2.5V,2.85V,3.0V,3.3V及5V);
4)低静态电流;
5)0.8A时低压差为1.1V;
6)0.1%线性调整率/0.2%负载调整率;
7)2.2uF陶瓷电容即可保持稳定;
8)过流及温度保护;
9)多封装:
SOT-223,TO-252,TO-220及TO-263(现已提供无铅封装)。
如图4所示,为SPX1117的典型电路,其中VOUT的计算方法如下:
当输出电压范围为1.25V-15V时,VOUT的计算方法为
VOUT=VREF(1+R2/R1)+IADJR2
图4SPX1117典型电路
如图5所示,SPX1117的使用非常简单,仅需要几个电容即可,图中的LED灯是为了检验电源芯片是否正常工作。
图5电源供电路图
3.3数据采集放大模块
目标机采集压力传感器信号,由于压力传感器信号为差模信号,其中还混有共模信号干扰。
所以前端需要一个高共模抑制比的仪表放大器将共模干扰滤掉,同时放大微弱的差模信号。
INA326是美国德州仪器公司推出的精密仪表放大器。
它采用独特的拓扑结构,可实现电源的正负极输入/输出,非常适合于单电源、低功耗和精测量的场合。
如图6所示,为INA326单电源供电电路,R1和R2为可编程电阻,放大倍数为G=2(R2/R1)。
图6INA326单电源供电典型电路图
目标机放大电路分为两级放大,前端为仪表放大器滤除共模干扰后放大一次,然后信号经过电压跟随器,经低通滤波后输入第二级放大电路,然后信号由STM32进行AD转换。
OPA2365是由TI公司生产的单电源(2.5V~5.5V)供电、轨到轨、低噪声、低偏移、高共模抑制比放大器。
OPA2365集成了两个放大器,这样正好一个作为电压跟随器对AD623输出信号进行缓冲与滤波,另一个作为后端放大,减少了电路板面积。
如图7所示,为OPA2365的引脚定义。
图7OPA2365引脚定义
图8为一路数据采集放大电路的原理图,通过两次放大将采集到的电压先好放大100倍,然后将电压信号传送给处理器的A/D转换接口。
图8数据采集放大原理图
3.4人机交互模块
目标机处理器采用LM3S9D90,该处理器没有集成LCD控制器。
所以,必须选用一款集成了LCD控制器的LCD屏;目标机需要实时显示人体重心坐标,同时提供良好的人机交互界面,所以需要高分辨率的TFT屏幕;人机交互全部采用触摸屏,综合考虑,选取了一款3.2寸集成了4线电阻触摸、LCD控制器,分辨率为240*400、长宽比为16:
9、262k色真彩TFT屏幕。
目标机采用16位模拟总线方式驱动LCD。
电路如图9所示。
图9LCD驱动电路
在LCD屏幕上集成了四线电阻触摸屏,目标机选取了XPT2046作为触摸屏控制芯片。
XPT2046是一款4线制电阻式触摸屏控制器,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器。
XPT2046支持从1.5V到5.25V的低电压I/O接口。
XPT2046能通过执行两次A/D转换查出被按的屏幕位置,除此之外,还可以测量加在触摸屏上的压力。
内部自带2.5V参考电压,可以作为辅助输入、温度测量和电池监测之用,电池监测的电压范围可以从0V到6V。
XPT2046片内集成有一个温度传感器。
在2.7V的典型工作状态下,关闭参考电压,功耗可小于0.75mW。
XPT2046采用微小的封装形式:
TSSOP-16,QFN-16和VFBGA-48。
工作温度范围为-40℃~+85℃。
与ADS7846、TSC2046、AK4182A完全兼容。
如图10所示,为XPT2046典型应用电路。
图10XPT2046典型应用电路
3.4数据通讯模块
为了扩展系统的功能,目标板上留有minUSB接口、串口,通过这些接口可以与计算机通讯,完成更加复杂的功能。
串口收发器芯片采用SP3232,该芯片有一个高效的电荷泵,工作电压为3.3V时只需要0.1uF电容就可以进行操作。
电荷泵允许SP3232在+3.3V到5V内的某个电压下发送符合RS-232的信号,该芯片非常适合手持设备。
3.5数据存储模块
本系统中由于需要进行用户的信息管理,所以需要存储大量的数据。
同时为了节省目标板空间,我们选择一张4G的miniSD来存储用户数据。
在管理用户数据时需要手动输入用户的相关信息,所以选用T9输入法,全部的中文字库存放在M25P80中。
4.系统软件设计
本系统的软件部分由测试模块、系统设置模块、LCD与触摸屏模块、信息管理模块四部分组成。
测试模块主要进行测试功能,并能在测试界面显示当前测试者的基本信息、重心平面实时图像、即时速度等信息。
系统设置模块由时间设置和系统校准两部分组成。
LCD与触摸屏模块负责图形界面显示与校准触摸屏。
信息管理模块主要负责管理测试者的基本信息和对历史数据的定量分析与评定,数据全部存放于SD卡文件中,信息输入采用T9输入法,全部中文字库存放于M25P80中,SD卡通过FatFS进行管理。
软件结构框图如图11所示。
图11软件结构框图
4.1软件流程
本系统的软件使用前后台型程序结构,系统初始化完成之后,程序进入后台服务程序循环执行状态,使用了sysTick_1s,sysTick_50ms,sysTick_20ms,ad_signal四个标志来决定后台程序的执行,它们分别是系统时钟1秒标志,系统时钟50毫秒标志、系统时钟20毫秒标志和AD转换开始标志。
如果sysTick_1s为真,则后台执行时间更新显示功能,若同时ad_signal为真,则还会更新测试剩余时间和显示测试者的体重。
如果sysTick_50ms并且ad_signal为真,则读取AD转换的缓冲数组,并计算测试者的重心坐标。
如果sysTick_20ms为真,会进行触摸屏的识别。
系统的软件流程图如图12所示。
图12软件流程图
4.2测试模块
测试模块的核心部分为AD转换,使用LM3S9D90的AD转换功能对三个模拟信号输入进行模拟数字转换,并使用DMA方式将转换后的结果存放到缓冲数组中,系统使用均值滤波算法对采集的数据进行过滤。
开始测试之后,系统每50ms计算一次测试者的重心坐标,并在LCD显示屏上显示出来,每1s显示一次体重信息,并更新剩余时间。
体重数据存放在一个16个元素的数组中,使用滑动窗口的方式对其进行滑动均值滤波,以使显示的体重变化平稳。
4.3系统设置模块
系统设置模块主要负责测试时间设置、系统时间设置和系统校准。
系统对双足睁眼、双足闭眼、单足睁眼、单足闭眼、线性步睁眼、线性步闭眼这6个测试项目的测试时间分别进行设置,用户可以自行输入1-99范围内的时间。
系统使用LM3S9D90的RTC功能,实时显示当前时间,系统时间设置功能即为设置系统的当前时间。
由于长期使用或设备老化等原因,传感器的特性可能会发生变化,这时就需要对传感器进行校准。
本系统使用两点测试法,基于的原理是压力传感器的输出在限定范围内是线性的。
分别使用10KG与80KG两个砝码放在传感器上,使用质量作为横坐标,转换后的AD值作为纵坐标,即可算出该传感器的线性函数,如此测试三次,分别记录三个传感器线性函数的斜率与相位值。
测试模块的计算部分即使用此记录的数据计算。
以上的系统设置信息全部以配置文件的形式储存在miniSD卡中,每次系统开机初始化的时候会读取这些设置信息。
4.4LCD与触摸屏模块
我们自行设计了一种简易的GUI,使本系统能够拥有便于操作的图形界面,并且不会消耗过多的系统资源。
该GUI主要控件有button,checkbox,label,textbox,radiobutton,window每个控件都被定义为一个结构体,这些结构体都包含一个widget结构体成员,它定义了一个控件的基本信息,如大小、颜色、响应函数等。
系统的每一个界面为一个window,每一个window可以有若干个子控件,当这个window显示的时候,会依次绘制它的子控件。
由于本系统使用的是电阻式触摸屏,所以识别触摸手势的时,会先使用AD转换将输入的电压值转换为数字量,然后根据校准得出的最大值与最小值计算出触摸点的横纵坐标,得出坐标之后,系统判断该点是在当前window的哪个子控件的范围内,然后会调用这个控件的响应函数,即实现了触摸屏的识别。
4.5信息管理模块
本系统使用会员管理机制,每位使用者都可以建立并管理自己的个人信息以及会员信息,每一个会员会在miniSD卡的User目录下有一个以自己会员叫为名的个人目录,该会员的全部个人信息会存储他的个人目录中。
在信息的输入方面,本系统使用T9输入法,并在其基础上进行了改进,使其更适合该设备,并且更易于使用,以使用户有更好的使用体验。
进行系统登录的会员在进行测试之后可以点击保存按键,这样他本次的测试信息将会被保存在他的个人文件夹下。
保存的记录会长期存放在miniSD卡中,用户随时使用历史数据查看功能来查看自己的测试记录,以更好地了解自己平衡能力的变化趋势。
本系统可以使用串口或USB与计算机通信,将miniSD卡内存储的信息备份到计算机中,以使用户的数据更安全。
5.系统创新
本便携式人体平衡检测仪最大的创新即使用了便携式掌上设备,与以往使用测试平台与计算机软件组成的系统相比,掌上设备体积更小,成本更低,功耗更少,更适于普通用户使用。
Ø国内并没有类似的产品,而国外产品价格十分昂贵。
Ø使用高精度的压力传感器和低误差的放大电路,数据测量准确。
Ø能够根据测试者的重心移动情况绘制静态姿势图。
Ø使用独创的平衡性定量评价算法,能对测试者的平衡性能进行准确的评价。
6.评测与结论
6.1测试项目
针对本系统在需求部分提出的要求,主要设计了三个测试项目,分别是重量与坐标精确度测试、运动轨迹显示实时性测试和分析评价子系统区分度测试。
1.重量与坐标精确度测试
系统在对人体的平衡机能进行评价计算时,依赖于目标机采集并处理后提供的数据,因此,数据的精确度将直接影响到评价系统的精确度,甚至是系统的可用性。
对于本系统而言,精确度的主要评价指标包括重量和坐标的精确度。
所以,对重量和坐标的精确度进行测试是测试中的一项重要环节。
2.运动轨迹显示实时性测试
系统要求能够在屏幕上实时地显示测试者身体重心的运动轨迹,直观地展示其晃动情况。
身体重心运动轨迹显示的位置和速度都决定了观察者对测试者平衡能力的判断,因此,对于运动轨迹显示的实时性需要进行测试。
6.2测试需求
测试项目确定以后,需要根据测试项目设计测试方法,并选择测试时需要的物品,进行测试环境的搭建和配置。
1.砝码和支架
测量重量与坐标时,采用控制变量法,即使用确定的重量值和坐标值分别对系统进行测试。
由于人体重心的不自主晃动,人体测量时,系统无法得到确定的坐标值和稳定的压力,因此使用支架固定砝码的方法进行测量。
固定支架下端采用球形钢珠,上端为圆形支撑面,用铁质结构材料固定,保证了重量值能准确地作用于测力平台的小面积区域且不产生移动。
为覆盖1kg到120kg内所有整数重量值,以达到测试的全面性,需要使用规格为1kg的砝码5片、5kg砝码1片、10kg砝码3片和20kg砝码4片。
6.3测试步骤
测试环境搭建好以后,按照设计好的测试方案对项目进行严格的测试,本系统主要的测试流程如下。
1.标记测试点
对正三角形测力平台上以其几何中心为圆心,20cm为半径的圆内的点,以1cm为间隔进行标记。
2.对重量和坐标精确度进行覆盖性测试
对第一步中标记的每个点,将砝码通过支架放置于测力平台上的一个点上,然后通过上位机软件对计算出的重量和坐标进行读数,记录实际重量和坐标,以及系统计算出的重量和坐标。
测试范围为1~10kg每1kg为单位,10kg~120kg每5kg为单位,共21个重量值。
3.对重量和坐标精确度进行随机测试
随机抽取测力平台上的某些点,随机指定1kg~120kg以内的某个重量进行测试,记录测试结果。
4.对运动轨迹的实时显示进行测试
人体站立于测力平台上,主动地摇摆身体,观察屏幕上显示轨迹是否实时,是否有明显延迟。
6.4测试结果与分析
系统对不同平衡能力的测试者能给出具有区分度的测试结果,且大量测试者的测试结果基本符合正态分布。
对于单例测试者来说,测试时实时显示准确、流畅,可以直观地观察到测试者的动摇情况。
而重量和坐标的大量测试结果表明:
重量测量误差不超过0.47kg,方差为0.10kg2,位置测量误差不超过3.8mm,方差为3.54mm2,满足了系统需求中对重量和位置测量分辨率的要求。
表6.1包含了部分测量值与实际数据的对比情况。
表6.1部分测量值与实际数据的对比
实际重量
(kg)
测量值
(kg)
实际位置
(cm)
计算位置结果
(cm)
30
29.84
(-7,-10)
(-7.10,-9.887)
30
30.10
(-4,2)
(-3.88,1.86)
35
34.84
(0,-5)
(-0.04,-5.05)
35
34.97
(4,3)
(4.27,3.07)
40
40.21
(-13.4,-4.5)
(-13.29,-4.59)
40
40.10
(14.9,-4.9)
(14.58,-5.11)
45
44.84
(-3,-8.2)
(-3.20,-8.54)
45
45.27
(10,0)
(9.75,-0.39)
50
50.30
(-5,12)
(-4.87,12.21)
55
54.77
(-4,2)
(-3.91,2.06)
55
54.98
(4,3)
(4.04,2.87)
60
59.94
(2.8,-8.3)
(2.88,-8.47)
65
64.26
(-3,-8.3)
(-3.16,-8.51)
70
70.25
(-6.6,8.8)
(-6.58,9.08)
70
70.30
(6.4,8.3)
(6.29,8.13)
75
75.08
(5,12)
(4.96,12.29)
80
79.17
(0,-5)
(-0.10,-4.72)
80
79.81
(-10,0)
(-10.10,-0.08)
附录
测试平台与手持设备(开发板)
测试时间设置界面(这是在开发板上运行的效果)
测试界面(这是在开发板上运行的效果)
参加比赛设计的硬件