STM32和iNEMO模块的高精度计步器设计

2013-10-10 01:56:06袁宪锋周风余袁通周晨磊晁彦举
单片机与嵌入式系统应用 2013年9期
关键词:计步计步器加速度计

袁宪锋,周风余,袁通,周晨磊,晁彦举

(山东大学 控制科学与工程学院,济南250061)

引 言

步态作为生物特征之一,在身份识别、运动分析、室内定位等方面都有着重要的研究意义[1]。计步器利用人行走时的步态特征,可以准确地对人行走的步数进行记录。目前,计步器主要包括机械式计步器和电子式计步器[2]。机械式计步器成本低,但是准确度和灵敏度差。电子式计步器多采用加速度计,通过测量人行走时的加速度变化来实现计步功能。

MEMS(Micro-Electro-Mechanic system,微机电系统)是一种新的传感器制作工艺,基于此技术设计的加速度传感器具有体积小、功耗低、灵敏度高等优点[3]。本文利用ST公司基于MEMS技术的10自由度iNEMO传感器平台,采集人行走时的加速度信息,利用STM32单片机对加速度信息进行实时处理,实现高精度的计步功能。同时,为了方便对步态信息和计步数据的进一步分析和保存,本文还设计了基于SIM300的远程数据传输系统。

1 系统工作原理及整体设计方案

1.1 系统工作原理

为了实现计步功能,本文选用加速度这个参数来描述人的行走行为。如图1所示,iNEMO模块佩戴在人体腰部,定义前进方向为X轴,垂直方向为Z轴,侧向为Y轴,建立右手直角坐标系。

正常人在行走时,腰部会有明显的垂直上下运动,因此Z轴加速度变化最大,如果仅对Z轴加速度数据进行处理,则计步器在使用时要求Z轴必须严格垂直向上,否则会严重影响计步精度。本文通过对iNEMO模块加速度计三轴合加速度信息进行处理,极大降低了计步器使用时的佩戴要求。人在行走时,腰部加速度呈简谐波状变化,如图2所示。

图1 人体参考坐标系

图2 人行走时腰部加速度信号

首先对加速度信号进行滤波处理,然后利用峰值探测法进行计步。为了降低行走过程中身体抖动对峰值探测的干扰,引入时间和幅值双阈值法保证计步的准确性。利用SIM300GPRS数据传输模块实现步态信息和计步数据的远程传输。

1.2 系统整体方案

根据系统工作原理,本文选用ST公司ARM Cortex-M3内核的微控制器STM32F103C8T6作为主控制器,采用ST公司的iNEMO惯性导航模块对人行走时腰部加速度信号进行采集,采用SIM300GPRS模块实现数据的远程传输,采用2.4寸彩色液晶屏对行走步数、剩余电量等信息进行显示。系统整体架构如图3所示。

图3 计步器系统框架结构

2 系统硬件设计

2.1 iNEMO模块简介

iNEMO惯性导航模块框图如图4所示。利用MEMS传感器和主控芯片STM32F103RET6提供动静态方向和惯性测量功能。集成4种意法半导体传感器:三轴陀螺仪(L3GD20)、三轴加速度计+三轴磁力计(LSM303DLHC)以及气压传感器(LPS331AP)。iNEMO传感器平台主控制器通过I2C总线与各传感器通信。iNEMO传感器平台可以通过串口向外界提供各传感器原始数据,还可以提供各传感器经AHRS算法融合后的横滚、偏航及俯仰角度。

图4 iNEMO惯性导航模块框图

2.2 主控制器电路设计

主控核心模块电路如图5所示。包括主控MCU及其时钟电路、复位电路、电源滤波电路等。本系统选用STM32F103C8T6作为主控制器,工作频率最高可达72 MHz,内置高速存储器(64KB的Flash和20KB的SRAM),含有丰富的I/O口和连接到两条APB总线的外设,满足本系统的设计需要。STM32系列单片机具有高性能、低成本、低功耗等特点,并且保持了高集成度和易于开发的优势[4]。

2.3 基于SIM300的GPRS数据传输模块设计

SIM300是支持 GSM/GPRS 900/1800/1900MHz三频的低功耗模块,休眠模式下工作电流典型值为2.5mA,可提供高质量语音通信服务和GPRS Class 10的高速数据传输服务。SIM300的功能模块包括:键盘和LCD接口;两个串口;双音频通道。SIM300内部集成了TCP/IP协议栈,并且扩展了TCP/IP AT指令,使用户利用该模块开发数据传输设备变得特别简单、方便。

图5 主控制器电路

本设计采用SIM300进行GPRS数据传输模块的设计,对于不需要用的音频接口、LCD接口等,对应的引脚悬空即可[5]。SIM300的电源电压范围为3.4~4.5V,峰值电流要求为2A,采用输出电压可调的单片式开关型稳压器件LM2576S-ADJ即可满足要求。SIM300及其供电电路如图6所示。

图6 SIM300及其供电电路

3 系统软件设计

3.1 计步功能的实现

电子式计步器主要利用人行走时加速度信号的变化特征来实现步频探测功能。人在行走时,腰部加速度计输出的波形信号存在较多的“毛刺”,为了使波形变得平滑易于处理,需要对加速度信号进行降噪处理。人在行走时步频一般不超过5Hz,加速度计的采样频率设定为20Hz时能够较好地反映行走时加速度的变化特征。本文设计了窗口长度为5的前端滑动窗口均值滤波,可对加速度信号进行滤波处理,滤波后的波形如图2中实线所示。对滤波后的三轴加速度求其矢量和,以合加速度特征来进行步频探测可以降低计步器佩戴时的要求,不必水平或者垂直佩戴。

对合加速度进行峰值检测,采用峰值检测法实现计步功能。峰值点需要满足的条件为:tp[i-1]<tp[i]<tp[i+1]。当满足峰值条件时,再对合加速度信号进行幅度阈值条件和时间阈值条件的判断,以避免行走时身体抖动对计步的影响。计步功能实现的流程图如图7所示。

图7 计步功能实现流程图

3.2 GPRS数据包的发送

SIM300参数的设定、TCP/IP连接的建立以及数据的传输都是通过AT指令来实现的,SIM300的TCP/IP功能支持普通和透传两种模式。本文采用的是透传模式,一旦建立连接模块就进入数据模式,所有从串口接收到的数据都被看作是数据包发送出去的,数据模式和命令模式之间可以来回切换[6]。

SIM300透传模式的配置大致分为以下4步:

① 匹配波特率。发送“AT”指令后,延时一段时间发送“ATE0”。

② 注册网络。发送“AT+CREG?”,若返回“OK”,则网络注册成功。

③ 设置透传模式。发送“AT+ CIPMODE=1”,若返回“OK”,则设置成功。

④ 连接网络。发送“AT+CIPSTART="TCP","219.236.xxx.xxx","7000"”,其中 219.236.xxx.xxx为PC的IP地址,7000为端口号。连接成功则返回“CONNECT OK”。

3.3 系统整体流程图

如图8所示,系统上电后,首先对STM32F103C8T6及液晶屏进行初始化,然后对SIM300模块进行配置。若SIM300与远端PC机连接成功,则通过液晶屏提示使用者计步器可以正常使用,并接收iNEMO数据开始计步,并将步态信息及计步数据上传;若重复连接3次不成功,则提示使用者暂时只能提供基本计步功能,无法提供数据保存能力,并询问使用者是否重启系统。

图8 系统整体流程图

4 系统测试

为了保证设计的计步器计步功能准确、可靠,对本文所描述的高精度计步器进行了大量的测试。图9为测试人员行走19步时的合加速度波形。由图可见,静止时加速度的输出值约为1g左右,圆圈表示峰值检测的结果,峰值为19个说明了计步器计步算法的有效性。

图9 峰值探测(计步)实验

图10 为远程PC端接收到的计步器数据。其中,AX、AY、AZ分别表示X轴加速度、Y轴加速度、Z轴加速度;计步器上传的步数为19步,与实验结果一致。

图10 远程PC端数据接收界面

结 语

本文讨论了基于STM32F103C8T6及iNEMO模块的高精度计步器的设计与实现,并对具体的硬件电路和软件系统进行了详细的介绍。经过大量的实验证明,本计步器具有体积小、使用简单、通信可靠、计步准确等优点。

[1]刘燕,李月香.基于加速度计的步态数据无线采集系统设计[J].单片机与嵌入式系统应用,2009(5):43-45.

[2]宋浩然,廖文帅,赵一鸣.基于加速度传感器ADXL330的高精度计步器设计[J].传感技术学报,2006,19(4):1005-1007.

[3]王勇.MEMS技术发展及应用优劣[J].飞航导弹,2011(5):85-87.

[4]苏鹏,周风余,陈磊.基于STM32的嵌入式语音识别模块设计[J].单片机与嵌入式系统应用,2011(2):42-45.

[5]吴丽华,李砾,赵舒,等.基于SIM300的远程心电监护系统的设计与开发[J].哈尔滨理工大学学报,2010,15(1):112-115.

[6]王昆,陈晰志.基于GPRS的地下水动态水位监测系统研究[J].计算机测量与控制,2011,19(2):263-264.

猜你喜欢
计步计步器加速度计
魔方小区
基于加速度计的起重机制动下滑量测量
基于G-senor和步频的运动强度分析系统设计
移动手环的设计与实现
浅谈基于单片机的计步器设计
电子制作(2018年8期)2018-06-26 06:43:04
基于手机加速度传感器的波峰波谷计步算法研究
基于遗传算法的加速度计免转台标定方法
基于MTK平台的计步器功能软件设计
常温下硅微谐振加速度计零偏稳定性的提高
计步器