《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于nRF51的智能计步器系统设计
基于nRF51的智能计步器系统设计
2016年微型机与应用第21期
李月婷,姜成旭
贵州大学 大数据与信息工程学院,贵州 贵阳 550025
摘要: 智能产品中计步功能已成为标配功能。根据运动三轴传感器LIS3DH设计了可放置于任何产品的智能计步器,主要对硬件系统设计、算法实现和软件设计进行研究。其加速度采集模块以三轴传感器LIS3DH作为运动数据的检测模块,其数据处理模块对LIS3DH三轴加速度传感器信息进行处理,通过数字滤波去除其他干扰信号的影响,利用加速度变化的正弦函数的特殊值采集实现计步功能,最后通过算法计算出人体运动步数;当连续运动时间不足计步算法规定时,将进入睡眠模式计算。实验结果表明,本设计具有功耗低、准确度高、结构简单的特点,能够提供高精度的计步功能。
Abstract:
Key words :

  李月婷,姜成旭

  (贵州大学 大数据与信息工程学院,贵州 贵阳 550025)

       摘要:智能产品中计步功能已成为标配功能。根据运动三轴传感器LIS3DH设计了可放置于任何产品的智能计步器,主要对硬件系统设计、算法实现和软件设计进行研究。其加速度采集模块以三轴传感器LIS3DH作为运动数据的检测模块,其数据处理模块对LIS3DH三轴加速度传感器信息进行处理,通过数字滤波去除其他干扰信号的影响,利用加速度变化的正弦函数的特殊值采集实现计步功能,最后通过算法计算出人体运动步数;当连续运动时间不足计步算法规定时,将进入睡眠模式计算。实验结果表明,本设计具有功耗低、准确度高、结构简单的特点,能够提供高精度的计步功能。

  关键词:计步器; 加速度传感器; 显示终端;高精度

0引言

  智能穿戴产品走进人们的生活,计步成为智能穿戴产品中的必备功能,本文设计的计步器不仅适用于手环,同时适用于其他智能穿戴产品。本设计主要采用LIS3DH三轴运动传感器,其具有体积小、功耗低和精度高的优点,经过算法和软件设计的处理,可以滤除三轴传感器数据杂波,得到的数据将更加精准,实时数据经计步算法处理后再经过蓝牙模块传送给远程APP,方便使用者查看动态数据和卡路里的消耗。本文主要研究内容:首先进行硬件系统设计,其中包括微处理模块、加速度采集模块、mbed技术、蓝牙模块和电源模块;然后进行算法实现与软件设计,完成计步算法设计和手机APP设计;其次根据数字滤波,将三轴传感器得到的数据进行滤波,去除干扰杂质[1];最后通过计步算法计算出运动行走步数,通过蓝牙模块把数据传输到手机APP上。

1硬件系统设计

  硬件模块主要包括微处理器模块nRF51、运动信息采集模块LIS3DH三轴传感器、蓝牙模块CC2540、电源模块和mbed开发环境。硬件系统框图如图1所示。

图像 001.png

  1.1微处理器模块

  计步器采用的微处理器模块nRF51单片机具有多引脚和小封装的特点,适用于超低功耗无线应用。nRF51单片机存在于各种数字电子产品中,在没有CPU参与的情况下,可与周边产品通过软件系统进行互动。nRF51支持 Dynastream Innovations 的嵌入式 S210 ANT 协议堆栈及 2.4 GHz协议堆栈。nRF51需要单独供电,若供电范围在1.8 V~2.1 V时,采用芯片上的线性整流器;若供电范围在2.1 V~3.6 V时,采用直流1.8 V模式芯片上的DCDC变压器。

  1.2加速度信息采集模块

  本文采用ST公司的三轴加速度传感器LIS3DH,可精确地测量出人行走时的运动状态。传感器作为检测装置,其三轴传感器主要是读取人体运动数据信息,并将读到的信息以一定的规律变换成本设计需要的电信号并进行输出,同时可以满足此过程中的数据存储、数据处理、数据传输、数据显示的要求[2]。三轴运动传感器LIS3DH具有3个轴加速度数字的输出,可三维感知人体行走过程中的信息,安放三轴传感器的位置应由三轴传感器数据输出的特性和人体的运动特性共同决定。通常手腕上的智能穿戴产品会根据人行走的运动状态来实时读取人的运动信息,x、y轴的数据变化无规律性,z轴会呈现出周期性的变化,这样可通过算法计算出人行走的步数。

  1.3mbed技术

  本文设计主要应用了mbed的开发环境,其是面向ARM处理器的平台,主要包括软件库、硬件库和处理工具3部分内容。其中软件库在mbed环境下,屏蔽了不同微处理器之间的差异,同时也可以使用不同ARM微处理器,相当于硬件抽象层;硬件库可为整体设计提供参考设计和程序下载接口,还包括单步调试接口和串口调试接口,方便设计中的测试过程,应用于软件开发中;处理工具主要是指程序编译、代码编写和版本调试等方面的工具。

  1.4蓝牙模块

  本设计中主要采用了CC2540蓝牙模块,其具有睡眠模式和超低功耗模式的转变,符合低功耗的需要。此蓝牙模块应用广泛,与智能穿戴产品进行数据传输,是解决低成本效益下单模式的低功耗蓝牙解决方案,它将微控制器、主机端及应用程序整合在一个元件上[3]。CC2540蓝牙模块结合主控制芯片,连接传感器得到的数据,建立一个快闪记忆结构体,快速、低功耗地进行数据传输,来得到稳定信号。

  1.5电源模块

  LM2596电源模块是集成电路,频率为150 kHz,内部具有多线性和负载调节功能,可稳定输出驱动电流和小于37 V的各种电压,设置稳定电压输出时,误差范围仅在±4%范围内,当有稳定电流待机时,可实现外部断电,同时在异常情况下断电时,该模块具有自我保护功能。

2算法实现与软件设计

  在单片机端进行计步算法处理,软件设计分为单片机端的计步算法程序设计和手机端的APP程序设计。

  2.1计步算法设计

  该计步算法流程如图2所示。人在行走过程中,可把该计步器放置在手腕上,在三轴传感器读取人体运动信息时,x、y轴信息变化没有规律,z轴如同单摆一样摆动,如图3所示,会呈现出周期性的变化。采集人体运动信息时会受到人体抖动的干扰,首先利用数字滤波,有效消除使系统产生误判的干扰信号[4]。

图像 002.png

  

图像 003.png

  数字滤波的具体算法如下:

  #define N 12

  char filter()

  {

  char count i ,j;

  char value_buf[N];

  int sum=0;

  for(count=0;count<N;count++)

  {

  value_buf[count]=get_ad();

  delay();

  }

  for(j=0;j<N-1;j++)

  {

  for(i=0;i<N-1;i++)

  {

  if(value_buf>value_buf[i+1])

  {

  temp=value_buf;

  value_buf=value_buf[i+1];

  value_buf[i+1]=temp;

  }

  }

  }

  for(count=1;count<N-1;count++)

  sum+=value[count];

  return(char)(sum/(N-2));

  }

  通过多人实验得出,人体行走过程中,1 s中人的步伐最快不能超过5步,最慢不能少于半步,根据人的行走步数,可以将行走频率设定为0.5 Hz~5 Hz,也就是人体行走过程中,步与步之间的时间间隔在0.2 s~2 s,不在此时间间隔内,设定为无效。通过三轴传感器LIS3DH读取出坐标位置,将其转换成x、y和z三轴上的加速度值[5],将读取的3个轴的值代入式(1),可得到各个轴的电压值:

  QQ图片20161208160942.png

  可以根据产品使用情况,设定零加速度的电压值,此电压值相当于加速度为0 g。通过加速度传感器得出此时的电压值,计算相对于0 g时电压值的偏移量。本设计设定0 g电压值VzeroG=1.65 V,实时计算出相对于0 g电压值的偏移量公式(2):

  QQ图片20161208160946.png

  通过计算得出了加速度计的电压值,需要把此时电压值转换成加速度值,转换过程中需要引入加速度计的灵敏度,通常单位取为mV/g。取加速度计的灵敏度为Sensitivity=478.5 mV/g=0.478 5 V/g。通过计算求出单位为g的加速度,如式(3):

  QQ图片20161208160949.png

  综合整理三轴加速度坐标转换为加速度值如下所示:

  QQ图片20161208160953.png

  令三轴角度分别为Axr、Ayr、Azr。观察由R和Rx、Ry、Rz组成的直角三角形:

  QQ图片20161208160956.png

  其中QQ图片20161208161000.png如图4所示。求出正向弦之后,看是否出现sin(Azr)=1,当连续出现次数大于3次时,进入计步状态,否则返回继续读取三轴坐标值。

图像 004.png

       2.2手机端APP的设计

  手机APP在蓝牙模块下与硬件系统连接,主要功能是储存人体运动信息。手机APP用于人机交互,通过蓝牙通信与后台服务器之间进行储存数据的信息交互[6]。图5为APP功能框架。系统启动时,首先设定个人信息,包括年龄、身高、性别和体重等,手机APP界面是控制硬件系统的主界面,通过蓝牙模块连接,可控制硬件系统进入计步状态,及时更新和显示硬件系统记录的运动信息,显示消耗的卡路里,并可分享到其他软件以及将这些信息存储在数据库中;闹铃设置主要是对手机APP进行闹铃设置,包括久坐提醒、起床闹铃和喝水提醒,可随时让使用者管理自己的身体健康;为了让使用者方便观察,可通过APP查看当天的行走步数;数据库主要存储人的基本信息和运动信息,使用者可以根据天数或次数进行查询,同时可以切换到详细信息的模式中[7]。

图像 005.png

3实验测试

  为了验证计步的精准度,由8人组成的测试小组分别行走100步。行走过程中,每个人的走路习惯不同,不定性因素手臂前后摆动的幅值不同,实验通过人实际行走的步数与软件显示步数进行比较,从而计算出准确率。硬件系统的操作结果如表1所示。由实验结果得出,该计步器的计步准确率极高。

图像 006.png

4结论

  本设计主要应用于智能穿戴产品中,可与其他智能模块进行融合,方便放置于智能穿戴产品中,在对空间和功耗有严格要求的情况下,都可以实现正常工作。使用的计步算法真实有效,在不同的频率下,行走的步数可以达到很高的精准度,同时可以让使用者方便地在手机APP上观看到行走的步数和消耗的卡路里信息,因此可以方便用户管理自己的身体健康。

  参考文献

  [1] 王淑华.MEMS传感器现状及应用[J].微纳电子技术,2011,48(8):516-522.

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

  [3] 许睿.行人导航系统算法研究与应用实现[D]. 南京: 南京航空航天大学,2008.

  [4] 苏丽娜,董金明,赵琦.基于加速度传感器的计步系统[J].测控技术,2007,26(10): 163-165.

  [5] LIM Y P, BROWN I T, KHOO J C T. An accurate and robust gyroscopebased pedometer[C]. 30th Annual International IEEE EMBS Conference, 2008: 4587-4590.

  [6] 韩文正,冯迪,李鹏,等.基于加速度传感器 LIS3DH的计步器设计[J].传感器与微系统,2012, 31(11):97-99.

  [7] 张红北,赵晓军,李瑞,等.基于Android的远程医疗监测系统设计[J].微型机与应用,2015, 34 (19):64-66,70.


此内容为AET网站原创,未经授权禁止转载。