多轴运动传感器步态信号的提取.doc_第1页
多轴运动传感器步态信号的提取.doc_第2页
多轴运动传感器步态信号的提取.doc_第3页
多轴运动传感器步态信号的提取.doc_第4页
多轴运动传感器步态信号的提取.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

密级:公开 多轴运动传感器采集步态信号的特征提取Multi-axis MotionSensor Gait Signal Acquisition and Feature Extraction学 院:信息科学与工程学院专 业 班 级:测控技术与仪器1004班学 号:100401418学 生 姓 名:周凯旋 指 导 教 师:许 会(教授)2014 年 06 月II 摘 要所谓的步态,就是人走路的姿态。它是一种生物特征,具有难以伪装,非侵犯性,受环境的影响较小的特征。所以说步态的特殊性为人的身份认证和识别提供了可靠的线索。而且,在医学上对异步病态的预防诊断和康复起着很显著的辅助作用。为了方便提取人的步态信号,本文提出了一种由无线采集系统构成的步态提取方式。本方案由信号采集系统、处理系统和信号传输系统三大部分组成。其中的信号采集系统主要由多轴运动传感器MPU6050和STM8003组成,信号传输部分主要由蓝牙模块HC-06和上位机组成,信号的处理主要依靠上位机和matlab来进行步态信号的曲线绘制。整个系统的工作过程是首先由信号采集部分采集人的步态信号,经过动态卡尔曼滤波处理,经由蓝牙模块与PC的上位机进行通讯,读取步态信号,并且存储到PC上,最后利用matlab的plot函数对离散数据进行绘图,最后根据图像进行步态的特征分析和提取。本文详细描述了传感器的详细数据,各部分的设计思路和依据,实物方便被人体携带、轻便,能够使人的步态更加自然。采集的数据准确,所测的的数据能够被软件处理。最终本设计可以完成人步态信号的特征提取。关键词:多轴传感器;步态信号;信息采集;特征提取AbstractThe so-called gait, is walking posture of the human. It is a kind of biological characteristics, which is difficult to camouflage, non invasion, the less affected by the environment . It provides reliable clues for special gait for identity authentication and identification of human. Moreover, prevention and diagnosis and rehabilitation of asynchronous morbid plays an auxiliary role is very significant in medicine. In order to facilitate the extraction of gait signals, this paper proposes a composed of a wireless data acquisition system for gait extraction method.The project is composed by signal acquisition system, processing system and signal transmission system. Signal acquisition system which is mainly composed of multi axis motion sensor MPU6050 and STM8003, the signal transmission part consists of Bluetooth module HC-06 and upper monitor, signal processing mainly rely on upper monitor and MATLAB to have gait signal curve plotting. The working process of the system is the gait signal first by the signal acquisition , through the dynamic filter processing of calman, communication via computer Bluetooth module and upper monitor in the PC, read the gait signal, and memory to the PC, the plot function of MATLAB drawing of the discrete data, based on the image of the gait to analysis and pick up the gait features.In this paper, a detailed description of the detailed data of sensor, design ideas and basis of each part, Products convenient to carrying by human, can make the persons gait more natural. The collected data is accurate, the measured data can be processing by software. Finally this design can complete the feature extraction of human gait signals.Keywords:Multi axis sensor; gait signal; Information collection; feature extraction40目 录 摘 要IAbstractII第1章 绪论11.1课题研究背景和意义11.3国内外研究现状11.4 章节安排2第2章 方案论证和传感器的选择42.1方案论证42.1.1 硬件部分设计42.1.2软件部分52.2 MPU6050介绍62.3 MPU6050引脚图、轴向及其说明72.4 MPU6050外围电路及其内部结构92.5 MPU6050时钟及其中断机制102.6 MPU6050及其蓝牙模块基本电路图122.7 本章小结13第3章 移动供电以及传感器放置143.1传感器的放置143.2 7805简介153.3 5V稳压电路163.4 本章小结17第4章 数据传输方式184.1 蓝牙模块HC-06简介184.2蓝牙通讯194.2.1蓝牙串口194.2.2 主从机交互204.3 上位界面及其使用简介234.4本章小结25第5章 软件系统的设计265.1卡尔曼滤波265.2 离散数据的绘制275.3 特征提取算法介绍30第6章 总结31参考文献33致谢35附录36沈阳工业大学本科生毕业设计(论文)第1章 绪论随着社会的发展,人的健康问题受到的重视越来越多。通过对人步态的研究,并且对其步态情况做出评价,可以为患有异常步态病的人的康复提供可靠的资料,具有对人体健康状况的监测作用和警示作用,以防止慢性病的发展。同时作为生物特征,步态特性是唯一的,所以步态特征还可以作为身份识别的一种手段。为了获取人的步态信号的特征,所以选择该题目,进行设计。1.1课题研究背景和意义 步态,即人走路的姿势。作为一种生物特征,它具有不受距离影响、非侵犯性、难以伪装、受环境影响小等独特的优点,因而近年来备受关注。国内外的许多知名大学和研究机构,如美国麻省理工学院、中国科学院自动化研究所等,都广泛展开了步态识别研究工作1。步态的独特性为人的身份识别和认证提供了有效线索,对医疗的异步病态、偏瘫等疾病的预防、诊断和康复也可以起到很显著的辅助作用。而且,在现代化的体育训练中,也可以通过步态特征来监测运动员的体能消耗情况、动作准确程度等,制定科学的训练方案。此外,步态在机器人的行走、人的行为理解等科学研究上也占有举足轻重的地位。国内外的许多知名大学和研究机构,如美国麻省理工学院、中国科学院自动化研究所等,都广泛展开了步态识别的研究工作2。步态识别是生物识别技术中的一个新兴领域,它旨在根据人们走路的姿势进行身份识别。步态具有难于隐藏性,并且可远距离、非接触性地识别。步态的独特性为人的身份识别和认证提供了有效线索,对医疗上的异步病态、偏瘫等疾病的预防、诊断和康复也可以起到显著的辅助作用;而且,在现代化的体育训练中,也可以通过步态特征来监测运动员的体能消耗情况、动作准确程度等,制定科学的训练方案。此外,步态在机器人的行走、人的行为理解等科学研究上也占有举足轻重的地位。1.3国内外研究现状在国内,许多大学和机构正在进行步态识别技术的研究,其中于领军地位的是由归国博士谭铁牛领导的中科院自动化研究所,其研究取得了令人鼓舞的成果,如王亮和胡卫明提出的基于统计主元分析的方法, 使用 14 个相互连接的圆台对人体建模,通过一定的运动约束,将人体用一个 12 维的动态特征向量表示,通过姿态评价函数对视频中的人体姿势进行恢复,提取模型参数进行步态识别。在国外,同样也有很多的学校和研究机构对步态的识别进行研究。 最早识别行人的方法是由 Niyogi 与 Adelson 提出的;Cunado 等不仅考虑人行走过程中双腿的运动情况, 用链接的钟摆模拟腿部的运动变化,而且从其倾斜角度信号的频率分量中获取步态特征;Lee 采用 7 个椭圆表达人的侧面二值化图像的身体的不同部分,每个椭圆用质心等 4 个特征表示,加上整个身体图像的质心的高度一共 29 个特征表示整个人体侧面图像, 通过模板匹配的方法进行步态识别;Yoo 等人根据解剖学的知识提取除头、脖颈、肩、胸、膝盖和脚踝的位置。 然后计算各个位置的运动学特征进行步态的分类识别3。对不同运动方式的加速度信号进行分类,属于步态识别的范畴。步态识别,根据获取人体生理信息的方式不同,可以分为基于图像的步态识别和基于加速度新华都步态识别。基于图像的步态识别,是通过对视频/图像序列进行一系列处理,实现自身动作的身份识别。基于加速度信号的步态分类(gait pattern classification),是将加速度传感器放在身体的某些部位,如腰部、大腿、手臂、脖子、手腕等,提取人体的运动加速度信号,并对加速度信号进行算法处理,以实现对不同运动方式的分类4。1.4 章节安排各章的研究内容安排如下: 第一章是绪论,主要是介绍了课题来源、研究目的和意义,并介绍了步态采集系统的国内发展现状以及整体方案的设计。第二章主要是方案论证,传感器选择及其外围电路设计。其中重点是多轴运动传感器参数的设计和选择。第三章主要介绍供电的设计以及传感器的放置问题。主要叙述如何根据步态的差异来选定传感器的放置问题。第四章介绍了本方案中数据的传输。第五章介绍了系统软件设计,包括软件工作流程及数据处理等。第六章是总结,总结本文的主要工作内容和课题最终进展程度以及本方案的最终结果与结论。第2章 方案论证和传感器的选择2.1方案论证为了方便提取步态,为了减少提取的干扰,我们决定使用基于蓝牙模块的无线通信的传输模式,通过与电脑蓝牙通信,将多轴运动传感器MPU6050提取的信号传达给电脑的上位机。再经由MATLAB处理其离散数据,绘制特征曲线,继而提取步态特征。 由于本设计后期数据的处理主要由电脑处理,所以硬件部分的设计主要内容是:步态信号的提取与传输。2.1.1 硬件部分设计为了缩短开发周期,本文使用了集成蓝牙模块HC-06,用电脑与此模块进行连接会在电脑上虚拟出一个COM口,内部蓝牙协议由商家已经调试完毕,为MPU6050与电脑之间的通讯起到了重要的作用。为了滤掉MPU6050监测时候出现的杂波,本设计在集成模块中添加了一个单片机进行动态滤波,使输出的波形更加准确。外围添加了稳压电路,使该电路在3.3V5V都能正常的运行,保证了系统的正常高效的工作。通过串口与电脑的串口调试助手连接,可以设定蓝牙模块的波特率,本设计使用9600的波特率。图2-1 蓝牙通讯模块 HC-06 图2-2MPU6050模块(含单片机)PC机软件处理信号蓝牙模块与PC进行通讯MPU6050读取步态信号图2-3 整体框图2.1.2软件部分软件部分主要是对硬件部分采集的数据进行处理分析,以及采集过程中的的滤波,所涉及到的计算方法。其中MCU读取MPU6050数据时候,使用的是动态卡尔曼滤波的算法,保证了杂波的滤除和读取的准确性。Matlab方面,使用PLOT函数对离散数据进行曲线绘制,通过对波形规律的观察,进而对步态特征进行选择和读取。检测帧头提取偏差量将偏差带入公式得出数据传到PC开 始结束 图2-4 程序流程图多轴运动传感器有很多的分类,例如有检测人体运动反映的,有检测机械运动以及他物体运动的,我们一般泛指的运动传感器是指电子类传感器。多轴传感器有三轴、六轴、九轴等类型,在不同的领域有不同的应用,由于在设计的前期,不确定使用那个轴向的何种变化,所以本设计方案中决定使用九轴传感器,以便为我们的提供更多的变化信息,来帮助我们确定采取何种特征值来识别一个人的步态信号。为了方便设计,缩短开发周期,选择多轴传感器作为运动量和电量的转换器作为转换的主要部分。2.2 MPU6050介绍MPU6050模块是InvenSense公司推出的一款低成本的9轴传感器模块,包括三轴加速度,三轴角速度,以及三轴角度。其体积小巧,用途非常广。做平衡小车,四轴飞行器,飞行鼠标等等,都是必不可少而且是最优的传感器解决方案。MPU-60X0 是全球第一款9 轴运动处理传感器。它集成了3 轴MEMS 陀螺仪,3 轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP(Digital Motion Processor),可用I2C接口连接一个第三方数字传感器,比如磁力计。扩展之后就可以通过其I2C 或串口(SPI) 接口输出一个9 轴的信号(SPI 接口仅在MPU-6000 可用)。MPU-60X0 也可以通过其I2C 接口连接非惯性的数字传感器,比如压力传感器。 MPU-60X0 对陀螺仪和加速度计分别用了三个16 位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为250,500,1000,2000/秒(dps),加速度计可测范围为2,4,8,16g。一个片上1024 字节的FIFO,有助于降低系统功耗。和所有设备寄存器之间的通信采用400kHz 的I2C 接口或1MHz 的SPI 接口(SPI 仅MPU-6000 可用)。对于需要高速传输的应用,对寄存器的读取和中断可用20MHz 的SPI。另外,片上还内嵌了一个温度传感器和在工作环境下仅有1%变动的振荡器。 芯片尺寸440.9mm,采用QFN 封装(无引线方形封装),可承受最大10000g 的冲击,并有可编程的低通滤波器。 关于电源,MPU-60X0 可支持VDD 范围2.5V5%,3.0V5%,或3.3V5%。另外MPU-6050 还有一个VLOGIC 引脚,用来为I2C 输出提供逻辑电平。VLOGIC 电压可取1.85%或者VDD。2.3 MPU6050引脚图、轴向及其说明MPU6050能分别检测x 、y、z三个轴向的加速度,角度,角加速度,其轴向和贴片封装如下。图2-5 MPU6050管脚图及其轴向总的来说,6050算是现在比较便宜好用的加速度陀螺仪芯片了,但是直接读取时噪声大,需要进行滤波。因此开始还找了一下卡尔曼滤波方面的资料,并且在网上发现了一种做好的6050+卡尔曼滤波集成的模块,而且输出改成了串口。用卡尔曼动态滤波算法,或者简化版的滤波,这种方法用好了效果会非常好,有些参数可以根据实际应用进行调整,改进效果。引脚编号MPU-6050引脚名称描述1YCLKIN可选的外部时钟输入,如果不用则连到GND6YAUX_DAI2C主串行数据,外接传感器7YAUX_CLI2C主串行数据,外接传感器8/CSSPI片选8YVLOGIC数字I/O供电电压9AD0/SD0I2Cslave地址LSB(AD0):SPI串行数据输出(SDO)9YAD0I2C slave地址LSB(AD0)10YREGOUT校准滤波电容连线11YFSYNC帧同步数字输入12YINT中断数字输入13YVDD电源电压及数字I/O供电电压18YGND电源地19,21,22YRESV预留,不接20YCPOUT电荷泵电容23YSCLI2C串行时钟24SDA/SDII2C串行数据SPI串行数据输入24YSDAI2C串行数据2,3,4,5,14,15, 16,17YNC不接表2-1 MPU60x0各管脚说明。2.4 MPU6050外围电路及其内部结构图2-6 MPU6050常用外围电路接法图2-7 MPU6050内部构造图2.5 MPU6050时钟及其中断机制MPU-6050 它有着比较灵活的时钟机制,内部的同步电路不仅可使用内部的时钟源还可以使用外部的时钟源。内部的同步电路包括信号调整、ADC、DMP 以及各样的控制电路与寄存器,它的时钟可由一个片上的PLL 产生。允许的内部时钟源:1. 内部的弛豫振荡器2. 陀螺仪的每一个轴(含有工作温度下1%漂移的MEMS 振荡器)都允许的外部时钟源:3. 32.768kHz (方波)4. 19.2MHz (方波)时钟源的选择不光考虑的是外部时钟的有效性,还有功率损耗,时钟精确性等因素。例如,如果功率损耗是主要考虑因素,当用DMP 处理加速度计数据时,使陀螺仪关闭,此时最好选择内部振荡器作时钟;然而陀螺仪工作的时候,使用其自带时钟可以保证更好的时钟精确性。当MPU-6050 初次启动时,要先使用其内部时钟,直到系统设置准备好使其他时钟源,比方说要使用MEMS 振荡器,就必须等到它可以稳定工作。运动中断(Motion Interrupt)与自由落体中断相似。为了排除重力所产生的误差,加速度计所测值都要通过一个可配置数字高通滤波器(DHPF)。通过高通滤波器后的值如果大于事先规定的阈值,那么就会被认为是有效的。对于每一个有效的采样值,计数器加1,而对无效值则计数器减1。一旦计数器累加值达到用户设定的计数阈值,则触发运动中断。产生运动中断的坐标轴及其方向可在寄存器MOT_DETECT_STATUS 中读出。类似于自由落体中断,运动中断也有一个可设置的加速阈值寄存器MOT_THR,精确到1mg,以及一个计数阈值寄存器MOT_DUR,精确到1ms。同样也有一个寄存器来设置刷新率,MOT_DETECT_CTRL。MPU-6050 有着灵活的时钟机制,对于内部的同步电路可使用内部或外部的时钟源。内部同步电路包括信号调整、ADC、DMP 及各样的控制电路和寄存器,其时钟可由一个片上的PLL 产生。允许的内部时钟源:1. 内部的弛豫振荡器2. 陀螺仪的任何一个轴(含有工作温度下1%漂移的MEMS 振荡器)允许的外部时钟源:3 32.768kHz 方波4 19.2MHz 方波自由落体中断(Free Fall Interrupt)通过检测3 个轴上的加速度测量值是否在所规定的阈值内来判断自由落体运动是否发生。对每一次的采样值,如果没达到阈值将会被忽略。一旦达到阈值,就会触发自由落体中断,而且会产生标志位。直到计数器降到0,标志才会被清楚。计数器的取值范围在0 和规定的阈值之间。可用FF_THR 寄存器设置阈值,精确到1ms。使用MOT_DETECT_CTRL 寄存器,可以设置是否用一个无效的采样值使计数器清零,或者以1、2 或4 的量衰减。静止中断(Zero Motion Interrupt)静止中断也采用数字高通滤波器(DHPF)以及同样的阈值、计数机制。每根轴上的测量值通过DHFT 后必须小于事先规定的阈值,可在ZRMOT_THR 寄存器设置。这会使计数器值加1,当达到在ZRMOT_DUR 中设置的计数器阈值时,则产生静止中断。和自由落体中断及运动中断不同的是,当第一次检测到静止以及不再检测到时,静止中断都会被触发。另外,自由落体中断和运动中断的标志位在读取后就会被清零,而从寄存器MOT_DETECT_STATUS 读取静止标志位后不会清零。静止中断(Zero Motion Interrupt)静止中断也采用数字高通滤波器(DHPF)以及同样的阈值、计数机制。每根轴上的测量值通过DHFT 后必须小于事先规定的阈值,可在ZRMOT_THR 寄存器设置。这会使计数器值加1,当达到在ZRMOT_DUR 中设置的计数器阈值时,则产生静止中断。和自由落体中断及运动中断不同的是,当第一次检测到静止以及不再检测到时,静止中断都会被触发。另外,自由落体中断和运动中断的标志位在读取后就会被清零,而从寄存器MOT_DETECT_STATUS 读取静止标志位后不会清零。可编程中断MPU-6050 有一个可编程的中断系统,可在INT 脚上产生中断信号。状态标志可以表明中断的来源。下图是一些中断源的列表:表2-2 MPU6050中断源Interrupt NameModuleFree Fall DetectionFree FallMotion DetectionMotionZero OverflowFIFOFPLL ReadyPLLDMP InterruptDMPData ReadySensor RegistersI2C Master errorsI2C Master I2C Slave 4I2C Master 2.6 MPU6050及其蓝牙模块基本电路图图2-9 MPU6050与蓝牙模块基本电路图P3为一个跳帽用于匹配和调节,当需要改变蓝牙模块的波特率的时候需要将跳帽取下,将串口的TX端口连接到图中的P3位置的1端口,串口的RX端连接到P1位置的TX端口,然后给系统供电,就可以通过串口助手进行波特率的调节,本方案默认波特率为9600。2.7 本章小结本章确定了多轴传感器的具体型号,尺寸工艺,封装,介绍了各个参数的大小,计算方式,中断方式,以及内部时钟,速度计数据输出方式等器件各个参数的大小,并且综合考虑了各个参数的匹配性后确定了最终的器件型号。并且对方案进行了初步的论证。第3章 移动供电和传感器放置设计在基于多轴传感器的步态特征提取系统中,特征值的选定占据着举足轻重的地位。而特征值的选定与传感器放置的姿态的息息相关,所以传感器的放置在本设计方案中有的相当重要的地位。为了做到无线测量,我们还需要给传感器和蓝牙模块做一个5V的稳压供电,以保证测量能够稳定的进行。设计并选择合适的稳压器件以满足整体要求。3.1传感器的放置为了保证加速度信号采集的可靠性,本设计方案决定将设备垂直放置到人体的腰部,x、y、z轴的正方向分别指向人体的右边、上方、后方。实验中,要求被测试者都穿平跟鞋,在走廊里沿着直线尽可能的以正常的步速走,所提取的数据被实时的记录到PC机,省去了添加储存模块的步骤。之所以以这种姿态来放置器件,因为经过多组数据的比对发现,不同人的在走路的时候左右脚的加速度是有差异的,而且其差异是明显的,人与人之间也是有不同的,更重要的是,对于这个特征的提取会相当比较简易,在所绘制的曲线上容易直观的对,综上所述,所以选取这种传感器与人体的绑定方式。图3-1 步态提取模块与人体的绑定方式3.2 7805简介参数符号测试条件最小值典型值最大值单位输出电压VoTj=254.85052V5.0mA1o1.0A,Po15WVi=7.5v to 20v4.755.005.25V线性调整率VoTj=25,Vi=7.5V to 25V4.0100mVTj=25,Vi=8V to 12V1.650mV负载调整率VoTj=25,lo=5.0mA to 1.5A9100mVTj=25,lo=250mA to 750mA450mV静态电流IQTj=255.08mA静态电流变化率IQlo=5mA to 1.0A0.030.5mAVi=8V to 25V0.30.8mA输出电压温漂Vo/Tlo=5mA0.8mV/输出噪音电压VNf=10Hz to 100KHz,Ta=2542V纹波抑制比RRf=120Hz,Vi=8V to 18V6273dB输入输出电压差Volo=1.0A,Tj=252V7805是常见的三端稳压器件,用7805系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电压为正6V,7909表示输出电压为负9V。因为三端稳压集成电路模块7805在电路中使用方便可靠,所以在电子设计中经常能够用到。表3-1 7805基本参数3.3 5V稳压电路由于简单易用成本低廉,所以本设计决定使用7805作为本设计方案的稳压模块,78*系列的稳压集成块的极限输入电压是36V,最低输入电压比输出电压高3-4V。还要考虑输出与输入间压差带来的功率损耗,所以一般输入为9-15V之间。所以本设计方案决定使用9V电池作为其供电电源。这样更加轻便,并且方便携带,不会因为电源过重而影响到被测试人的步态。图3-2 简易应用电路图3-3 7805供电电路实物底部图3.4 本章小结本章分析了并且确定了传感器与人体的绑定姿态,阐述了其详细理由,介绍并且借鉴了前辈们关于7805外围电路的设计,成功的完成了对步态采集系统的移动供电。第4章 数据传输方式由于蓝牙体积小、功率低,其应用已不局限于计算机外设,几乎可以被集成到任何数字设备之中,特别是那些对数据传输速率要求不高的移动设备和便携设备。所以在数据传输的时候选择轻便稳定的蓝牙是一个很好的选择,而且蓝牙的传输的距离可以达到10m,足够让人步伐稳定之后,走足够远的距离来采集数据。4.1 蓝牙模块HC-06简介作为一款民用级的蓝牙通讯模块,是一款主从一体化的蓝牙串口模块,与HC-05相比其指令更加简化,方便使用可以算短设计周期,供电电压.3.3.6V。主机:用来搜索从设备,不能被其他设备搜索。(带白点的蓝牙模块)从机:用来被搜索的设备,不能主动搜索其他设备。主从连上以后就相当于一根串口线使用,这个时候就不分主从,也就是所谓的透传模式。传输距离在空旷地带为十米左右,足够提取稳定的步态特征。图4-1 蓝牙啊模块HC-06实物及其部分引脚图使用注意事项:1、led引脚指示蓝牙连接状态,输出脉冲表示没有蓝牙连接,输出高表示蓝牙已连接并打开了端口2、电源电压3.3V,未配对时电流约30mA,配对后约10mA,绝对禁止接反电源。电源绝对禁止超过3.6V。3、接口电平3.3V,可以连接各种单片机(51,AVR,PIC,ARM,MSP430等),5V单片机最好串联一个1K电阻再与模块直接连接,按规格书公布的底板原理图转换,无需MAX232也不能经过MAX232。4、空旷地有效距离10米,超过10米也是可能的,但不对此距离的连接质量做保证5、配对完毕后,就当串口线一样使用,支持8个数位,1个停止位,奇偶或无校验(以规格书为准)6、在未建立蓝牙连接时支持通过AT指令设置波特率、名称、配对密码,设置的参数掉电保存。蓝牙连接以后自动切换到透传模式7、该链接为从机,从机能与各种带蓝牙功能的电脑、蓝牙主机、大部分带蓝牙的手机、PDA、PSP等智能终端配对,从机之间不能配对。常用的AT指令集如下:测试通讯 发送:AT 返回:OK更改蓝牙串口波特率 发送:AT+BAUD1 返回:OK120011200,22400,34800,49600,519200,638400(本设计方案选定的波特率为9600,因为若是波特率过高,信号干扰会使系统不稳定。)用AT设置好波特率之后,掉电之后不需要再次设置,可以掉电保存波特率更改蓝牙名称 发送:AT+NAMEname 返回:OKname更改蓝牙配对密码 发送AT+PINxxxx 返回:OKsetpin4.2蓝牙通讯4.2.1蓝牙串口蓝牙模块之间,蓝牙模块和蓝牙适配器之间,蓝牙模块和PDA蓝牙之间都可以通过SPP蓝牙串行端口复位来建立蓝牙串口数据传输。蓝牙模块准备把利用设备串口进行通信的应用覆盖在内。在一个简单配置实例当中,通信段就是设备之间的BT直接链路。如果通信段为另一网络,BT用于在该设备和网络连入设备(如Modem)之间建立路径。蓝牙模块只针对直接互连设备之间的连接,或者是设备与网络接入设备之间的互连。蓝牙模块支持其它的配置方式,如一端采用BT通信,另一端采用有线接口,这些设备不只是调制解调器,而且提供简单服务。通信两端设备必须兼容于蓝牙模块协议。第一类设备是诸如计算机、打印机等通信终端设备。第二类设备是通信段的一部分,如Modem。但是为了简化协议内容,蓝牙模块协议对这两种设备不作区分。在两个蓝牙模块BF10-A实体间传输信息也都支持这两类设备,其中有些信息只用于第二类设备。协议中也没有对两类设备所用信息进行严格划分。而是由用户决定使用哪些信息。由于一个设备并不知道通信路径上的其它设备的类型,所以每一个设备都应按照协议规定发送所有可用信息。替代串口线:用2个蓝牙模块,一个作为主模块,一个作为从模块,设置对应好的波特率。模块通过DB9接口连接到PC机。PC机可以通过串口调试工具进行数据传输。和已有的蓝牙适配器形成蓝牙串口连接:我采用一个蓝牙适配器连接电脑,使用IVT蓝牙驱动,一个蓝牙模块做为从模块连接到我的单片机嵌入式系统。使用BF10-A,IVT蓝牙驱动软件查找到蓝牙模块、连接并创建串口复位。此时则可以通过串口工具和单片机进行串口通信。4.2.2 主从机交互电平 :TTL 电平 (非 RS232电平) 波特率: 115200/9600 停止位 1,校验位 0。上位机至模块指令表4-1 上位机与蓝牙通讯部分指令表指令内容功能备注0FF 0xAA 0x52角度初始化使z轴的角度归零0FF 0xAA 0x61使用串口禁用I2C掉电保存0FF 0xAA 0x62禁用串口使用I2C掉电保存0FF 0xAA 0x63使用波特率115200采样频率 100HZ掉电保存0FF 0xAA 0x64使用波特率9600采样频率20HZ掉电保存模块至上位机模块发至上位机每帧数据分为三个数据包,分别为加速度数据包,角速度数据包,角度数据包,三个数据包顺序输出。波特率115200时每个10ms输出一帧数据,波特率9600时每隔50ms输出一帧数据。加速度输出表4-4 角度输出数据表数据编号数据内容含义00x55包头10x51说明这个包是加速度包2AxLx轴加速度低字节3AxHx轴加速度高字节4AyLy轴加速度低字节5AyHy轴加速度高字节6AzLz轴加速度低字节7AzHz轴加速度高字节8TL温度低字节9TH温度高字节10Sum校验和ax=(AxH8)|AxL)/32768*16g(g为重力加速度,可取9.8m/s2)ay=(AyH8)|AyL)/32768*16g(g为重力加速度,可取9.8m/s2)az=(AzH8)|AzL)/32768*16g(g为重力加速度,可取9.8m/s2)温度计算公式:T=(TH8)|TL) /340+36.53 校验和:Sum=0x55+0x51+AxH+AxL+AyH+AyL+AzH+AzL+TH+TL角速度输出表4-4 角度输出数据表数据编号数据内容含义00x55包头10x52识别这个包是加速度包2wxLx轴角速度低字节3wxHx轴角速度高字节4wyLy轴角速度低字节5wyHy轴角速度低高节6wzLz轴角速度低字节7wzHz轴角速度低高节角速度计算公式:wx=(wxH8)|wxL)/32768*2000(/s)wy=(wyH8)|wyL)/32768*2000(/s)wz=(wzH8)|wzL)/32768*2000(/s)滚转角的范围虽然是180度,但实际上由于坐标旋转顺序是Z-Y-X,在表示姿态的时候,俯仰角(Y轴)的范围只有90度,超过90度后会变换到小于90度,同时让X轴的角度大于180度。角度输出表4-4 角度输出数据表数据编号数据内容含义00x55包头10x53说明这个包是角速度2RollL轴角度低字节3RollH轴角度低高节4PithL轴角度低字节5PithH轴角度低高节6YawL轴角度低字节7YawH轴角度低高节角速度计算公式:滚转角(x轴)Roll=(RollH8)|RollL)/32768*180()俯仰角(y轴)Pitch=(PitchH8)|PitchL)/32768*180()偏航角(z轴)Yaw=(YawH8)|YawL)/32768*180()由于三轴是耦合的,只有在小角度的时候会表现出独立变化,在大角度的时候姿态角度会耦合变化,比如当X轴接近90度时,即使姿态只绕X轴转动,Y轴的角度也会跟着发生较大变化,这是欧拉角表示姿态的固有问题。4.3 上位界面及其使用简介首先要选择合适的串口,本设计中通过蓝牙模块虚拟出来的蓝牙串口默认为COM3,选择COM3端口,正常情况下,当步态提取部分正常工作的时候,大约五秒左右,两者就能匹配到了。随后就能观察各个方向的各种信息曲线。若需要调节波特率,也可以通过上位机提高或者降低波特率,来更改信号读取的频率,本设计方案采用都是9600的波特率。选择端口图4-2 端口设置选择合适的波特率图4-3 设置波特率配置完成够即可读取数据图4-4 上位机读取的姿态曲线点击记录/停止,即可记录这段时间内的离散数据,所得结果,保存在PC机,并且以文本的形式保存,下图为上位机所测传感器动作变化图: 图4-5 记录区间内离散数据到此为止,步态信号的从采集部分到PC机的传输部分基本结束。4.4本章小结本通过对蓝牙模块及其指令的介绍,对最基本的传输方式和方法进行了阐述,并且对数据从接受到上位机的简单处理和记录的流程做了简单的阐述。简明的介绍了数据传输的总体流程。第5章 软件系统的设计本设计方案需要设计到软件系统的有提取部分的滤波算法,还有就是绘制离散数据时候所需的matlab语言,以及提取特征时候的算法,这些算法可以形成一些分类器。5.1卡尔曼滤波简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等12。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计,也可以是对于将来位置的估计,也可以是对过去位置的估计。为了多轴传感器提取的动态信号更加准确的被传输到PC机,所以本设计添加了一个卡尔曼滤波的环节,这样就能得到更加准确的动态信号14。具体算法可以归纳为以下:首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:X(k)=A X(k-1)+B U(k)+W(k)再加上系统的测量值:Z(k)=H X(k)+V(k)上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是Q,R(这里我们假设他们不随系统状态变化而变化)。对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们结合他们的covariances 来估算系统的最优化输出(类似上一节那个温度的例子)。首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态: X(k|k-1)=A X(k-1|k-1)+B U(k) (1)式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的covariance还没更新。我们用P表示covariance: P(k|k-1)=A P(k-1|k-1) A+Q (2)式(2)中,P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应的covariance,A表示A的转置矩阵,Q是系统过程的covariance。式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k): X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1) (3)其中Kg为卡尔曼增益(Kalman Gain): Kg(k)= P(k|k-1) H / (H P(k|k-1) H + R) (4)到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要令卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的covariance: P(k|k)=(I-Kg(k) H)P(k|k-1) (5)其中I 为1的矩阵,对于单模型单测量,I=1。当系统进入k+1状态时,P(k|k)就是式子(2)的P(k-1|k-1)。这样,算法就可以自回归的运算下去16。5.2 离散数据的绘制在绘制采集的离散数据的时候,本设计决定借助于Matlab来绘制曲线来,通过观察曲线的变化来获取我们所需的信息。在Matlab中这种绘制曲线的方式我们称之为plot函数,例如plot(y),当y为向量时,是以y的分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线。若y为实矩阵,则按列绘制每列对应的曲线;plot(x,y)若y和x为同维向量,则以x为横坐标,y为纵坐标绘制连线图。若x是向量,y是行数或列数与x长度相等的矩阵,则绘制多条不同色彩的连线图,x被作为这些曲线的共同横坐标。若x和y为同型矩阵,则以x,y对应元素分别绘制曲线,曲线条数等于矩阵列数。因为上位机存储的数据存在一个文件名为DATA的文本里面,根据这个我们对其编写plot函数程序,主要的程序如下:newData = importdata(Data.txt, t, 2);data=newData.data;subplot(2,2,1);plot(data(:,1),data

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论