一种运动姿态测量系统的设计
2017-10-12葛峰峰
葛峰峰
(南京理工大学 江苏 南京 210094)
一种运动姿态测量系统的设计
葛峰峰
(南京理工大学 江苏 南京 210094)
为了实现运动姿态的测量,设计了一个基于微处理器CC2530和芯片MPU6050的系统。采用MPU6050传感器采集加速度信号,处理器CC2530计算出运动角度,与设定的标准角度比较,实现如俯卧撑,仰卧起坐等运动的计数,再通过CC2530芯片带有的无线RF收发器对计数进行无线传输。实测中系统性能稳定,操作简单,达到设计目的。
CC2530;无线通信;MPU6050;加速度;角度计算
Abstract:In order to realize the motion measurement,this paper designed a system based on the combination of the microprocessor,CC2530, and the chip,MPU6050.The MPU6050 sensor acquires acceleration signal, calculates the movement angle, and compares to the standard angle we set.Through those steps, the sensor realize the counting of exercising such as push-ups, sit-ups etc.Then through the CC2530 with wireless RF transceiver chip transfer the counting.In experiment,the performance of system is stable and easy to operate.The system meet the design purpose.
Key words:CC2530; wireless communication; MPU6050; acceleration; angle calculation
随着社会发展,军人在日常训练中对于人体运动如俯卧撑,仰卧起坐等提出了规范化的要求,本设计应运而生。本设计包括若干传感器节点,和一个网关节点。网关节点与传感器节点进行一对多无线通信,实现控制与信息获取。传感器节点接收网关命令启动运动姿态检测,如俯卧撑,仰卧起坐的计数,再将计数值通过无线回传给网关节点,网关节点通过串口传输给上位机[1-4]。
1 系统总体框图
运动姿态测量系统主要由核心模块、传感器模块、电源模块、数据传输模块,串口模块等部分组成,传感器节点与网关节点的差别在于是否含有传感器模块,系统总体框图如图1所示。MCU采用TI公司的CC2530单片机作为控制芯片,该芯片具有串口输出,2.4 GHz无线通信功能,抗干扰能力强;传感器模块采用MPU6050,负责采集加 速度信号[5]。
图1 系统总体框图
2 系统硬件设计
2.1 核心模块
核心模块主要完成传感器数据的读取,计算,以及控制命令,实时数据的传输。模块采用德州仪器的CC2530F256集成芯片。这款芯片集成业内标准的增强型8051控制内核,以及优良性能的业内领先的2.4 GHz RF收发器,自带256 kB的大容量闪存。搭载了TI研发的业内领先的ZigBee协议栈 (ZStackTM),用户可以在这个基础上进行自己程序的开发[6-7]。同时这款芯片有多种运行模式,可以在休眠,低功耗,正常运行之间切换,节约能源消耗。使设备运行更长时间。应用电路如图2所示。
图2 CC2530应用电路
其中将I/O口的P1.5脚定义为输出,连接小灯,可以观察单片机运行状况,P0.4与P0.5与传感器模块相连,模拟I2C通信,接收数据,P0.2与P0.3与上位机进行串口通信。P2.1与P2.2连接下载器进行程序下载调试。
2.2 MPU6050传感器模块
传感器选用MPU6050芯片,这款芯片集成了一个3轴加速度计与一个陀螺仪,在本设计中利用其3轴加速度计部分,这款芯片有两种通信方式,选用其I2C通信,进行数据传输。主要工作过程为芯片采集X,Y,Z 3个轴的加速度电压值,通过内部的16位AD信号转换器,转成数字信号通过I2C总线传输给主芯片,使用最小驱动电路[8-10]。MPU6050芯片主要的引脚功能说明如表1所示。
2.3 数据传输模块
表1 MPU6050的主要管脚功能
本设计需要对人体的运动达标姿态进行数量统计,使用有线数据传输不符合工程需求,因此数据传输部分使用无线方式,运用2.4 GHz频段进行无线通信,再由网关总机将每个节点数据通过串口传输到上位机。为了设备简洁,轻便,采用PCB天线。通过比较选用倒F天线设计。
倒F型天线,顾名思义,是由于其结构形如英文字母F倒置而命名[11-12]。天线结构已经设计了接触地金属面,可以降低模块中接地金属对其的干扰,所以非常适合用在小型2.4 GHz无线装置中。另一个优点是,由于倒F型天线仅仅需要设计适当尺寸的金属导体配合适当的阻抗匹配及将天线短路到接地,所以这款天线制作成本很低,而且可以直接绘制在PCB电路板上,一体化设计,非常方便,节省空间。
3 系统软件设计
3.1 传感器节点软件设计
传感器节点部分主要有两个任务,一个是运动姿势的测量,一个是无线传输。运动姿势的测量,流程如图6所示。主要过程通过抽象建模,实际运动过程中重力加速度方向一直朝下不变,3个轴在转。但我们抽象建模将3个轴方向不变,3个加速度值抽象成一个空间向量坐标,建立一个空间坐标系,相当于重力加速度在转,因此运动角度可以通过向量夹角求出。运算过程为开机初始化边界向量A,B都为最初加速度值;在读取下一时刻值,建立向量O,比较AO夹角与BO夹角,AO大则更新B,否则更新A。接下来判断AB夹角情况,达到标准则将标志加一,标志达到2即一去一回则算作完成一次运动。同时可以记录AB的中间向量,作为参考,如果达标的两次中间向量夹角太大可以不计次数,清零初始化重新来。以上为整个运动计数功能设计。
无线通信部分利用2.4 GHz频段,设置节点信道,通信增益,节点短地址,然后接收控制命令。在这个过程中通过TXPOWER,FREQCTRL两个寄存器设置通信功率和信道。再设置自身短地址,通过basicRfReceive (pRxData,APP_PAYLOAD_LENGTH,NULL)函数接受数据识别其中控制命令,根据命令通 过 uint8 basicRfSendPacket (uint16 destAddr,uint8*pPayload,uint8 length)函数发送相应信息。
图3 运动计数流程图
3.2 网关节点软件设计
网关节点部分负责接收上位机命令下达给传感器节点,然后接收传感器节点数据返回给上位机。网关节点软件主要是节点底层应用编程,无线传输协议使用德州仪器CC2530自带的RF点对点发送[13]。以C语言为基础,在通用程序的基础上修改,实现自己需要的功能,包括查询在线节点,数据收发等功能[14],具体的软件设计如图4所示。
图4 网关节点无线通信设计
网关节点还负责与上位机通过串口通信。涉及到对串口接收到的数据进行识别,截取有用部分,本设计中对数据进行格式固定,字头两个0x66,字尾两个0xBB,从缓存中读一段数据,先找到字头,再找到字尾,然后将控制命令从数据中识别出。根据命令进行相应无线传输。
3.3 PC上位机软件设计
利用C++语言面向对象开发PC机端的管理软件,使用者可以通过管理软件看到运动计数,在线节点编号,电压等信息,可以实时下达运动开始,结束的命令,设置运动标准角度,一组运动持续时间等信息。上位机软件通过串口与网关节点通信,他在整个系统中是非常重要的。网关节点对传感器节点发回的数据实时上传,因此上位机需要对串口输入的缓冲区进行实时管理,避免网关节点发回的数据被相互覆盖,为了实现相应功能,专门编写了CnComm类[15-16]。
4 实验数据与系统测试
先采集传感器数据通过串口输出,验证算法的有效性。数据为人体做俯卧撑时的3轴加速度值的变化。经过计算发现与实际运动个数相符,但由于加速度会有某些尖峰,当运动速度过快会产生多计,因此需要滤波,采用移动平均法,滤波宽度为20,开始时采集数据次数不满20,直接取平均,数据多于20个时,每次有新数据时将20个数据总和减去平均值,再加上新数据值,返回新的平均值;同时采用时间限制,太短时间内所产生的计数不计入有效范围之内。
再加上无线通信部分,传感器节点能够做到在13 ms内接收命令,计算,回传数据。测试主要目的为计算人体俯卧撑速度,根据世界纪录最快大概,1秒3个,滤波20次260 ms,能满足1秒3个的速度。本系统在室外进行了系统组网测试,数据传输测试,传输距离测试。采用一台上位机,一部网关,10个传感器节点,测试能够到达60 m稳定传输。上位机软件主要有个数、时间显示,以及网络检测,参数设置,检测电压,启动,结束等几个部分。如图5所示。
图5 上位机软件界面
5 结 论
人体运动姿态测量系统以CC2530单片机为主芯片实现了无线通信,配合MPU6050芯片实现运动角度测量。实测中能够做到多点同时测量,数据准确,传输实时性好。该系统做到了运动标准化计数的可穿戴设计,具有很强的现实运用意义。
[1]林宇,方方,林泽萍,等.基于MPU6050三轴倾角测控设计[J].数字技术与应用,2016(1):181.
[2]卓从彬,杨龙频,周林,等.基于MPU6050加速度传感器的跌倒检测与报警系统设计[J].电子器件,2015(4):821-825.
[3]刘莉,郑冬云,刘晓军.基于MPU6050的老年人跌倒监测系统设计[J].中国医疗器械杂志,2015(5):327-330.
[4]陈克涛,张海辉,张永猛,等.基于CC2530的无线传感器网络网关节点的设计[J].西北农林科技大学学报:自然科学版,2014(5):183-188.
[5]赖义汉,王凯.基于MPU6050的双轮平衡车控制系统设计[J].河南工程学院学报:自然科学版,2014(1):53-57.
[6]龚文超,吴猛猛,刘双双.基于CC2530的无线监控系统设计与实现[J].电子测量技术,2012(6):33-36,49.
[7]Xin Zhenghua,Chen Guolong,Li Xianwei,et al.Research on the ZigBee Network and Equipment Design Based on the CC2530[J].Sensors&;Transducers,2013(15):8-11.
[8]徐秀林,姚晓明,徐奚娇.MPU6050在评定人体上肢关节角度中的应用 [J].生物医学工程学进展,2015(3):137-141.
[9]徐斌,裴晓芳,李太云.穿戴式智能计步器设计[J].电子科技,2016(3):178-182.
[10]李士垚,唐星阳,吕迪洋.基于MPU6050六轴传感器的悬空鼠标设计与实现 [J].电子制作,2016(15):26-27.
[11]李俊斌,胡永忠.基于CC2530的ZigBee通信网络的应用设计[J].电子设计工程,2011(16):108-111.
[12]汤镇辉,张正明.基于CC2530的ZigBee无线路灯节能智能监控系统[J].微型机与应用,2011(19):81-83.
[13]Dawood Moeinfar,Hossein Shamsi,Fatemeh Nafar.Design and implementation of a low-power active RFID for container tracking at 2.4 GHz frequency[J].Advances in Internet of Things,2012,2 (2):13-22.
[14]蔡利婷,陈平华,罗彬,等.基于CC2530的ZigBee数据采集系统设计 [J].计算机技术与发展,2012(11):197-200.
[15]李志方,钟洪声.IEEE802.15.4的CC2530无线数据收发设计 [J].单片机与嵌入式系统应用,2011(7):43-45.
[16]章伟聪,俞新武,李忠成.基于CC2530及ZigBee协议栈设计无线网络传感器节点[J].计算机系统应用,2011(7):184-187,120.
A design of exercising attitude measurement system
GE Feng-feng
(Nanjing University of Science and Technology, Nanjing210094,China)
TN925+.92
A
1674-6236(2017)19-0027-04
2016-08-25稿件编号201608190
葛峰峰(1992—),男,江苏南京人,硕士。研究方向:控制理论与控制工程。