陀螺仪测试电路

背景介绍

  陀螺仪是无人机惯导系统最基本的组成元件之一,通过对陀螺仪输出的角速度进行积分,能够获得无人机的姿态角信息;在兴趣爱好的驱动下,近来购买了MPU-6050相关模块,通过串口把测试结果传输到电脑端,实现了位姿信号的采集,具体如下图所示:

陀螺仪测试电路_第1张图片

  MPU6050是一种非常流行的空间运动传感器芯片,可以对传感器当前三个加速度分量和三个旋转角速度进行采集。其中,上图中前三个数据分别表述为传感器x,y,z方向的加速度,后三个数据分别表述为传感器绕x,y,z轴的角速度,若mpu-6050设定的加速度倍率为2g,角速度倍率为1000°/s,那么加速度和角加速度的计算公式为:
a x = A C C _ X / 32768 × 2 g {a_x} = ACC\_X/32768 \times 2g ax=ACC_X/32768×2g g x = G R Y _ X / 32768 × 1000 {g_x} = GRY\_X/32768 \times 1000 gx=GRY_X/32768×1000

附录:补充资料

1、mpu-6050硬件原理图

  MPU-6050整合了三轴陀螺仪和三轴加速度计,分别用三个16位的ADC,将其测量的模拟量信号转化为可输出的数字量;其中,陀螺仪的测试范围为±250,±500,±1000, ±2000°/秒( dps),能够对快速和慢速运动的物体实现精确跟踪;加速度计的测试范围为±2, ±4,±8, ±16g(传感器的测量范围可以通过程序进行控制)。

  图a表述为mpu-6050实物图,模块的大小与指甲盖相差不大,具体为2cm*1.5cm;图b表述为mpu-6050坐标系定义的方式;图c表述为该模块的原理图,测试过程中,VCC、GND、SCL以及SDA分别与单片机相应的引脚相连接。

2、数据采集及上传

  mpu-6050每隔一段时间采集一次传感器的状态信息,通过延时函数实现该功能,本实例中采用的程序源码如下所示(部分),其中,delay(2000)表述为延时0.4s,即陀螺仪每秒钟输出2-3个数据点:

void main()
{ 
  delay(500);    //上电延时    
  init_uart();
  InitMPU6050();  //初始化MPU6050
  delay(150);
  while(1)
  {
    SeriPushSend('A');  
    SeriPushSend(0x20);SeriPushSend('X'); SeriPushSend(':'); 
    Display10BitData(GetData(ACCEL_XOUT_H));  //显示X轴加速度
    SeriPushSend(0x20);SeriPushSend('Y'); SeriPushSend(':');
    Display10BitData(GetData(ACCEL_YOUT_H));  //显示Y轴加速度
    SeriPushSend(0x20);SeriPushSend('Z'); SeriPushSend(':');
    Display10BitData(GetData(ACCEL_ZOUT_H));  //显示Z轴加速度
    SeriPushSend(0x20); 
    SeriPushSend('G');  
    SeriPushSend(0x20);SeriPushSend('X'); SeriPushSend(':');
    Display10BitData(GetData(GYRO_XOUT_H));    //显示X轴角速度
    SeriPushSend(0x20);SeriPushSend('Y'); SeriPushSend(':');
    Display10BitData(GetData(GYRO_YOUT_H));    //显示Y轴角速度
    SeriPushSend(0x20);SeriPushSend('Z'); SeriPushSend(':');
    Display10BitData(GetData(GYRO_ZOUT_H));    //显示Z轴角速度       
    SeriPushSend(0x0d); 
    SeriPushSend(0x0a);//换行,回车
    delay(2000);
  }
}
void delay(unsigned int k)  
{            
  unsigned int i,j;        
  for(i=0;i<k;i++)
  {      
    for(j=0;j<121;j++);
  }            
}

附1:研究表明,陀螺仪具有十分精确的短时定位精度,然而长时间工作时产生的累计误差会导致定位精度出现较大的偏差,后续可以通过多源信息融合解决该问题。

附2、前段时间完成传感器信号采集系统的搭建,具体见推文:数据采集系统实际测试效果,在此基础上能够很容易将传感器(陀螺仪等)应用到实际中,~

你可能感兴趣的:(力学所期间的工作内容,物联网,传感器,mpu6050,陀螺仪)