Two arduino Uno with 4 MPU6050 MATLAB
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Greetings,
I have connected two arduino uno with 4 mpu6050 IMUs and attached all of them to a body, i want to take accleration of the body if it moves, not when it is at rest. I donwnloaded Arduino support package for MATLAB, and tried different logic of code to take measurements from MPU6050 only when it moves, unfortunatley I get all the measurements while moving and at rest, please propose any modification to the code>>
%%
Generating IMUs readings through Arduino UNO:
% Identifying Two Arduino Uno
Right = arduino('COM9', 'Uno', 'Libraries', 'I2C');
LEFT = arduino('COM10', 'Uno', 'Libraries', 'I2C');
% Declaring 4 MPU6050 IMUs
imu1= mpu6050(Right,'SampleRate',160,'SamplesPerRead',10,'I2CAddress','0x68','ReadMode','Latest');
imu2 = mpu6050(Right,'SampleRate',160,'SamplesPerRead',10,'I2CAddress','0x69','ReadMode','Latest');
imu3 = mpu6050(LEFT,'SampleRate',160,'SamplesPerRead',10,'I2CAddress','0x68','ReadMode','Latest');
imu4 = mpu6050(LEFT,'SampleRate',160,'SamplesPerRead',10,'I2CAddress','0x69','ReadMode','Latest');
% logging measurements
IMU1_mueasurements=zeros(100,3);
IMU2_mueasurements=zeros(100,3);
IMU3_mueasurements=zeros(100,3);
IMU4_mueasurements=zeros(100,3);
accelReadings1=zeros(100,3);
accelReadings2=zeros(100,3);
accelReadings3=zeros(100,3);
accelReadings4=zeros(100,3);
[accelReadings1(1,:)] = readAcceleration(imu1);
[accelReadings2(1,:)] = readAcceleration(imu2);
[accelReadings3(1,:)] = readAcceleration(imu3);
[accelReadings4(1,:)] = readAcceleration(imu4);
for R= 2:100
[accelReadings1(R,:)] = readAcceleration(imu1)
if (accelReadings1(R)-accelReadings1(R-1))>0.5
IMU1_mueasurements(R)=accelReadings1(R);
end
[accelReadings2(R,:)] = readAcceleration(imu2)
if (accelReadings2(R)-accelReadings2(R-1))>0.5
IMU2_mueasurements(R)=accelReadings2(R);
end
[accelReadings3(R,:)] = readAcceleration(imu3)
if (accelReadings3(R)-accelReadings3(R-1))>0.5
IMU3_mueasurements(R)=accelReadings3(R);
end
[accelReadings4(R,:)] = readAcceleration(imu4)
if (accelReadings4(R)-accelReadings4(R-1))>0.5
IMU4_mueasurements(R)=accelReadings4(R);
end
end
%%
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur I2C Devices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!