Cannot use 'device' function to work via I2C communication. -MATLAB
17 次查看(过去 30 天)
显示 更早的评论
I want to use MPU 6050 to send data to MATLAB.
But there is an error => Undefined function or variable 'device'.
I am using MATLAB R2019a academic use, already have Instrument control toolbox.
The code I used =>
%% setup
clear all
hold all
a = arduino;
mpu = device (a, 'I2CAddress' , '0x68' ); % mpu adress is normally 0x68
writeRegister (mpu, hex2dec ( 'B6' ), hex2dec ('00 ' ), ' int16 ' ); % reset
data = zeros (10000,14, 'int8' ); % prelocating for the speed
j = 1;
a1 = animatedline ( 'Color' , [1 0 0]);
a2 = animatedline ( 'Color' , [0 1 0]);
a3 = animatedline ( 'Color' , [0 0 1]);
legend ( 'Accel_x' , 'Accel_y' , 'Accel_z' )
%% loop
while (true)
x = 1;
for i = 59: 72 % 14 Data Registers for Accel, Temp, Gyro
data (j, x) = readRegister (mpu, i, 'int8' );
x = x + 1;
end
y = swapbytes (typecast (data (j, :), 'int16' )) % if your system is big-endian remove the swapbytes function
addpoints (a1, j, double (y (1)));
addpoints (a2, j, double (y (2)));
addpoints (a3, j, double (y (3)));
j = j + 1;
drawnow limitrate
end
8 个评论
Johanens Harms
2019-8-16
Hallo Akira, have you found a solution to your issue yet? I have the same problem and am unable to fix it. Thanks!
Walter Roberson
2019-8-16
编辑:Walter Roberson
2021-8-26
回答(1 个)
Chris Bresee
2021-2-11
I've noticed that some versions of the arduino support package use a different function than "device". Don't know why this is, but try:
i2cObj = i2cdev(obj, address, varargin)
Example:
mpu = i2cdev(a, '0x68');
6 个评论
Hasto Priananto
2021-8-26
I cant even use both, the i2cdev() and device() on my matlab. Its says error on that point
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Arduino Hardware 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
