资源简介
%GY-85模块包含三轴加速度计ADXL345、三轴陀螺仪ITG3205、三轴磁力计HMC5583L
%本程序为上位机的处理程序,从串口com2接收下位机的数据,进行数据还原与校准处理,绘制实时数据曲线。
%图1、2、3为加速度x、y、z的数据,图4、5、6为角速度x、y、z的数据,图7为磁力计的y、z计算出的角度(认为x轴与地面垂直),图8为方向的指示。
%本程序需要与下位机的采集配合使用,下位机可以使用单片机,控制GY-85模块数据的采集与传输,这方面的资料网上很多。
%毕业设计的的一小部分,调试无误,但写的比较乱,仅供参考,敬请谅解。
代码片段和文件信息
%GY-85模块包含三轴加速度计ADXL345、三轴陀螺仪ITG3205、三轴磁力计HMC5583L
%本程序为上位机的处理程序,从串口com2接收下位机的数据,进行数据还原与校准处理,绘制实时数据曲线。
%图1、2、3为加速度x、y、z的数据,图4、5、6为角速度x、y、z的数据,图7为磁力计的y、z计算出的角度(认为x轴与地面垂直),图8为方向的指示。
%本程序需要与下位机的采集配合使用,下位机可以使用单片机,控制GY-85模块数据的采集与传输,这方面的资料网上很多。
%毕业设计的的一小部分,调试无误,但写的比较乱,仅供参考,敬请谅解。
%%观察传感器数据经过校准 accel_x(jj)=accel_x(jj)-976.153;accel_y(jj)=accel_y(jj)+5.1209;accel_z(jj)=accel_z(jj)-72.2687;
%打开串口
s = serial(‘com2‘);
set(s‘baudrate‘9600)
try
fopen(s);
catch err
fprintf(‘%s打开失败。\n‘ s.name);
end
fprintf(‘%s成功打开。\n‘ s.name);
jj=1; %用于存数据时的计数
ii=1;
accel_x=0;accel_y=0;accel_z=0;itg_x=0;itg_y=0;itg_z=0;HMC_x=0;HMC_y=0;HMC_z=0;
subplot(331);h1=plot(11);
subplot(332);h2=plot(11);
subplot(333);h3=plot(11);
subplot(334);h4=plot(11);
subplot(335);h5=plot(11);
subplot(336);h6=plot(11);
subplot(337);h7=plot(11);
subplot(338);h8=plot(11);
subplot(339);h9=plot(11);
while(1)
% hh=s.BytesAvailable; %记录下本次接收的数据的字节数
% if hh>=jj+2
hh=s.BytesAvailable;
if hh>=20
receive = fread(ss.BytesAvailable);
if receive(20)~=255;
disp(‘接收数据混乱‘);
end
%***********************加速度***********************************%
accel_x(jj)=(receive(1)*256+receive(2));
if accel_x(jj)>=32768
accel_x(jj)=accel_x(jj)-65536;
end
accel_x(jj)=accel_x(jj)*3.9;
accel_y(jj)=(receive(3)*256+receive(4));
if accel_y(jj)>=32768
accel_y(jj)=accel_y(jj)-65536;
end
accel_y(jj)=accel_y(jj)*3.9;
accel_z(jj)=(receive(5)*256+receive(6));
if accel_z(jj)>=32768
accel_z(jj)=accel_z(jj)-65536;
end
accel_z(jj)=accel_z(jj)*3.9;
%******************校准****************************
accel_x(jj)=accel_x(jj)-976.153;
accel_y(jj)=accel_y(jj)+5.1209;
accel_z(jj)=accel_z(jj)-72.2687;
%***********************角速度***********************************%
itg_x(jj)=(receive(13)*256+receive(14));
if itg_x(jj)>=32768
itg_x(jj)=itg_x(jj)-65536;
end
itg_x(jj)=itg_x(jj)/14.375;
itg_y(jj)=(receive(15)*256+receive(16));
if itg_y(jj)>=32768
itg_y(jj)=itg_y(jj)-65536;
end
itg_y(jj)=itg_y(jj)/14.375;
- 上一篇:基于matlab矩形阵波束形成
- 下一篇:hopfield神经网络matlab实现
相关资源
- matlab开发-MPU6050加速度陀螺仪
- MPU6050陀螺仪串口读取数据源码和参考
- 三阶卡尔曼计算加速度、速度、高度
- 加速度计原始数据进行matlab的fft分析
- 《matlab在振动信号处理中的应用》教
- 惯性仪器测试与数据分析 [严恭敏 编
- 基于MPU6050加速度传感器的跌倒检测与
- matlab开发-记录文件的绘图仪加速度、
- 位移、速度、加速度信号互转
- 计步器加速度计三轴数据峰值检测算
- 目标跟踪常速度CV及常加速度CA模型程
- matlab加速度积分为速度、位移
- Matlabimu 时域积分与频域积分,加速度
- 加速度计标定相关matlab代码
- 陀螺仪静态标定matlab程序
- trajection 用Matlab编写的轨迹发生器
-
Unti
tled1 产生陀螺和加速度计的数据 - Nav 利用陀螺仪和加表的输出进行惯导
- MPU6050蓝牙转串口测量信号读取matlab代
- 牛头刨床运动学分析matlab程序位移速
- 加速度计原始数据卡尔曼滤波
- 加速度计计算位移
- 六位置法加速度计标定
评论
共有 条评论