运动信息感知_第1页
运动信息感知_第2页
运动信息感知_第3页
运动信息感知_第4页
运动信息感知_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、运动信息感知实验1、 实验目的掌握各类MEMS传感器接口的使用方法;掌握加速度传感器、磁力传感器以及陀螺仪的工作原理;掌握加速度/磁力传感器数据的误差分析和标定方法; 了解物体运动姿态的概念,掌握物体运动姿态反演的方法。了解数据融合的方法。2、 实验内容利用加速度传感器测量重力加速度。利用磁力传感器测量水平放置的载体的指向。编写matlab数据处理程序,处理加速度传感器和磁力传感器采集到的数据,标定加速度传感器、磁力传感器数据的标度因数误差和零位误差。 实现同时采集加速度传感器和磁力传感器的数据,并编写matlab数据处理程序,利用采集到的载体在静止状态下的加速度和磁场强度数据反演载体的姿态。

2、 3、 预备知识IAR集成开发环境中编写和调试程序的基本过程。 I2C总线知识 运动信息获取的方法运动信息采集传感器工作原理 4、 实验设备及工具硬件: 物联网网关及基础实验平台、 无线智能传感节点、传感器模块、物联网与智能控制平台、频谱仪、计算机。 软件: PC 机操作系统WinXP/Win7 、IAR集成开发环境、TI Smartrf Flash Programmer烧写软件、串口调试助手。5、 实验原理(1)LSM303DLH加速度/磁力传感器 LSM303DLH 模块集成了三轴数字加速度传感器和三轴数字磁力传感器,可以感知三轴加速度和三轴地磁场强度。(2)误差标定磁力:将系统放置在水平

3、无磁转台并旋转一周,记录传感器输出值并得到输出值的最大值和最小值,再利用下式计算出磁力传感器X轴和Y轴的零位,同理可得Z轴的零位。加速度:以X轴为例对加速度传感器的零位和标度因数进行标定。首先让X轴垂直向上,且纪录X轴旋转一周的输出值。再使X轴垂直向下敏感1g重力加速度,且记录X轴旋转一周的输出值则加速度传感器x轴的零位和标度因数 6、 设计思路按照实验的要求,先测定x,y,z方向上的重力加速度然后标记零点,算出零点的值;然后测量在平面运动状态下的加速度值和磁场的值;经过零点修正后计算出实际加速度。再matlab上用算出的加速度值模拟出运动轨迹和磁场方向。7、 实现方式烧入实验程序,将节点分三

4、次分别平放、侧放、竖放测得ACC1的x,y,z,旋转180°测得ACC2的x,y,z。 将y轴指向北,记录MAG1;x轴指向北,记录MAG2。加速度三个方向x,y,z的零点为:ACC0(x,y,z)=(ACC1(x,y,z)+ACC2(x,y,z)/2实际加速度(实验为二维)为AC(x,y)=(ACC(x,y)-ACC0(x,y)/(ACC1(x,y)-ACC0(x,y)*g其中,g为重力加速度9.8m/s2通过加速度积分,算出采样时间的坐标位置,再连线画出路径磁场方向为tan=(MAG(y)/MAG1(y)/(MAG(x)/MAG2(x)8、 硬件代码#include "

5、ioCC2430.h"#include <stdio.h>#include <string.h>#include"console.h"#include "LSM303DLH.h"#define LED_ON 1#define LED_OFF 0int LedBlink = 0;BOOL LedSwitch = LED_OFF;void Timer1_Init() /定时器1复位 TIMER1_INIT(); /设定定时器相关参数 /128分频0000 1100 T1CTL = 0x0C; /溢出值低8位 T1CC0L =

6、 0x24; /溢出值高8位 T1CC0H = 0xF4; /定时器T1溢出中断使能 TIMER1_ENABLE_OVERFLOW_INT(TRUE); /定时器T1中断使能 INT_ENABLE(INUM_T1,INT_ON); /全局中断使能 INT_GLOBAL_ENABLE(INT_ON); /启动定时器1 TIMER1_RUN(TRUE);void halInitUart(void) IO_PER_LOC_USART0_AT_PORT0_PIN2345(); UTX0IF = 1; void sample_accmag_data(void) unsigned short data3;

7、 data0 = LSM303DLH_ACC_DATA_X(); data1 = LSM303DLH_ACC_DATA_Y(); data2 = LSM303DLH_ACC_DATA_Z(); conPrintUINT16(data0); conPrintUINT16(data1); conPrintUINT16(data2); conPrintROMString("n"); data0 = LSM303DLH_MAG_DATA_X(); data1 = LSM303DLH_MAG_DATA_Y(); data2 = LSM303DLH_MAG_DATA_Z(); conP

8、rintUINT16(data0); conPrintUINT16(data1); conPrintUINT16(data2); conPrintROMString("n"); void LED_init() P2SEL = P2SEL&0xFE; P2DIR = P2DIR|0x01; P2_0 = 0;void LED_on() P2_0 = 1;void LED_off() P2_0 = 0;void main(void) P1DIR = P1DIR|0x0C; P1SEL = P1SEL&0xF3; SET_MAIN_CLOCK_SOURCE(CRY

9、STAL); halInitUart(); UART_SETUP(0, 57600, HIGH_STOP); LED_init(); Timer1_Init(); LSM303DLH_ACC_init(); LSM303DLH_MAG_init(); conPrintROMString("nthe Acceleration sensor data_X data_Y data_Z and the Magnetic sensor data_X data_Y data_Z are:n"); while(1)#pragma vector=T1_VECTOR _interrupt v

10、oid T1_ISR(void) sample_accmag_data(); LedBlink = LedBlink + 1; if(LedBlink = 1) LedBlink = 0; if(LedSwitch = LED_ON) LED_off(); LedSwitch = LED_OFF; else LED_on(); LedSwitch = LED_ON; Matlab定位代码%加速度测路径syms tvx=0;sx=0;vy=0;sy=0;g=9.8;acc1=;%x,y,z的+gacc2=;%-gaccx=;%运动时测得的加速度xaccy=;%运动时测得的加速度yax=(accx

11、-(acc1(1)+acc2(1)/2)/(acc1(1)-(acc1(1)+acc2(1)/2)*g%零点修正ay=(accy-(acc1(2)+acc2(2)/2)/(acc1(2)-(acc1(2)+acc2(2)/2)*gfor k=1:length(ax) sx=sx+int(vx+ax(k)*t,0,0.25); sxx(1,k)=double(sx); vx=vx+ax(k); sy=sy+int(vy+ay(k)*t,0,1); syy(1,k)=double(sy); vy=vy+ay(k); plot(sxx(1),syy(1),'*');hold onen

12、dplot(sxx,syy,'o-');hold on %磁场方向mag1=; %y轴指向北的磁场mag2=; %x轴指向北的磁场magx=; %实测的x的磁场magy=; %实测的y的磁场for k=1:length(magx) mx=magy(k)/mag1(2); my=magx(k)/mag2(1); theta=atan(magy(k)/mag1(2)/(magx(k)/mag2(1); double(mx); double(my); quiver(sxx(k),syy(k),mx,my)end9、 设计时遇到的问题零点定标时发现旋转180°后有两组数据在变化,经过思考和运算,发现一组数据是正负方向反转过后应该得到的结果;而另外一组数据虽然看来变化很大,但是经过计算过后发现都是在零点附近波动且变化率较小。由于在单位采样时间(0.25s)内不是加速度不均匀,导致采样的时候只采到了某个时刻的加速度,用这个加速度来代表这个采样时间段内的

温馨提示

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

评论

0/150

提交评论