MPU6050 CAPTURA DE DATOS EN TIEMPO REAL
Publicado por MPU6050 (2 intervenciones) el 23/09/2019 05:16:59
Bueno, me encuentro desarrollando un proyecto con el cual deseo capturar datos del sensor MPU6050, lo estoy realizando en un guide, pero las gráficas de aceleración que me dan son muy extrañas, ya que no muestran una curva si no un trazo extremo, es decir si inclino el sensor un poco la curva va hacia arriba hasta un límite y si lo giro al lado opuesto vuelve y baja de la misma forma.
Revisé en los registros pero no encuentro como puedo suavizar eso, ya que el código que se utiliza en arduino ha una curva mucho más apropiada.
Revisé en los registros pero no encuentro como puedo suavizar eso, ya que el código que se utiliza en arduino ha una curva mucho más apropiada.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function pushbutton2_Callback(hObject, eventdata, handles)
set(handles.uipanel3,'visible','on');
a=arduino;
mpu=i2cdev(a,'0x68'); %mpu adress is normally 0x68
writeRegister(mpu, hex2dec('6B'), hex2dec('00'), 'int16'); %reset
n=300; %cycles
data=zeros(n,14,'int8'); %prelocating for the speed
j=1;
a1 = animatedline(handles.axes1);
a2 = animatedline(handles.axes2);
a3 = animatedline(handles.axes3);
while(j<=n)
x=1;
for i=59:72 % 14 Data Registers for Accel,Temp,Gyro
data(j,x)= readRegister(mpu, i, 'int16');
x=x+1;
end
Acel=swapbytes(typecast(data(j,:), 'int16'));
addpoints(a1,j,double(Acel(1)));
addpoints(a2,j,double(Acel(2)));
addpoints(a3,j,double(Acel(3)));
j=j+1;
drawnow limitrate
pause(0.0001);
end
Valora esta pregunta


0