微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于iNEMO模块的姿态检测及数据传输系统设计

基于iNEMO模块的姿态检测及数据传输系统设计

时间:07-14 来源:互联网 点击:

板连接器,全部引脚从该连接器引出,SIM300的网络状态指示灯引脚可根据模块的网络状态输出不同频率的电压脉冲,方便观测模块是否正常工作,对于不需要用的音频接口、LCD接口等,对应的引脚悬空即可;稳压芯片选择方面,可以使用开关型稳压芯片或者LDO线性稳压芯片,开关型稳压芯片转换效率高,但是需要的外围器件较多,且多为功率器件,占用空间比较大,为了节省PCB空间,设计中采用MIC5219-3.3BM5稳压芯片作为SIM300的电源调理芯片。

  图4 GPRS电路图

  4系统软件设计

4.1系统软件整体流程图

图5所示为系统软件整体流程图,首先对STM32进行初始化配置,包括时钟电路RCC高速时钟和低速时钟的起振、通用引脚GPIO输出输出模式的配置、串口USART波特率的设置,然后将SIM300设置为透传模式,进行网络连接(具体过程可参考3.3),成功连接网络之后,配置iNEMO模块各传感器的分辨率、字节对齐方式、读取频率等,然后分别读取腰部和腿部iNEMO模块的加速度、陀螺仪、磁力计原始数据,获得原始数据之后根据分别率的设置计算磁力计、陀螺仪、加速度的大小,最后通过扩展卡尔曼滤波融合得到腰部的俯仰角PITCH、腿部的偏航角YAW,结合两个角度信息通过查表法进行姿态判断,设置相应的标志位,通过GPRS将姿态标志位打包后发送到远程监控端。

  图5系统软件整体流程图

4.2姿态检测

如图6所示,iNEMO模块中L3GD20、LSM303DLHC以及LPS331AP通过I2C串行总线与单片机进行通信,I2C总线两根双向信号线一根是数据线SDA,另一根是时钟线SCL,通过上拉电阻接到正电源VDD,每个接到I2C总线上的器件都有唯一的地址,主机发送地址时,总线上的每个从机都将7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址。

  图6 I2C串行总线示意图

iNEMO各个传感器的地址码宏定义如下:

#define ACC_ADDRESS 0x32 //加速度计地址码

#define MAG_ADDRESS 0x3C //磁力计地址码

#define GYRO_ADDRESS 0xD6 //陀螺仪地址码

采集到传感器的数据之后,首先利用三轴陀螺仪信号,采用四元数的姿态表达式,积分求得姿态角,然后采用三轴加速度计和三轴磁力计,利用大地磁场和重力磁场在地理坐标系和运动坐标系之间的方向余弦进行绝对角度的解算,然后采用卡尔曼滤波进行前三者数据的融合,得到腰部的俯仰角PITCH、腿部偏航角YAW.通过大量实验建立姿态角与人体姿态的对应表如下:

  表1姿态与YAW、PITCH的对应表

4.3 GPRS发送

SIM300参数的设定、TCP/ IP连接的建立以及数据的传输都是通过AT指令来实现的,AT指令是终端设备与PC应用之间的通信方式,一般由终端设备(如PC、控制板等)向终端适配器(如GPRS模块等)发送。AT指令以AT开头,以回车作为结尾;每条指令是否成功执行都有相应的响应返回。SIM300的TCP/IP功能支持普通和透传两种模式,本文采用的是透传模式,一旦建立连接模块就进入数据模式。

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

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

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

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

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

5系统测试

为了验证系统姿态检测功能的可靠性,选取了不同的人分别佩戴该系统做了大量的实验,完成了对站立、坐下、行走、弯腰、躺下、趴倒的识别率的测试。从测试结果表2可以看出,大部分动作均可以准确无误的识别出来,行走、弯腰两个动作出现了误识别,这是由于不同的人佩戴该系统时,各个姿态对应的角度阈值会有少许的差别,但是百分之九十五以上的识别率足够满足用户的要求。

  表2测试结果

结束语

人体姿态检测装置实现了对人体姿态的检测,可以很好地应用在对老人的监护、体感游戏等领域。数字式传感器的应用简化了硬件电路,GPRS模块的网络传输突破了射频传输距离短的缺陷,扩大了传输距离,整个系统体积小巧方便、应用性强。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top