我想通过MATLAB以XBee无线方式绘制加速度计的所有轴的实时图。
我已经实现以下直到现在:使用XBee + Arduino在MATLAB中绘制加速度计的所有轴
- 在发射机侧,我有一个Arduino用的Xbee屏蔽连接。为此我使用了2系列Xbees。
- 我有一个ADXL335分线板加速度计连接到模拟引脚Arduino + Shield组合和屏蔽上的XBee(Co-Ordinator API)。
- 在接收端,我有一台连接到计算机的XBee(路由器AT),它将记录输出并将其绘制在MATLAB中。
我也想提一下,我使用的Arduino库为MATLAB的Arduino代码。
现在,当我连接Arduino(即我不使用Xbee)时,我可以获得加速计所有轴的完美输出。
但是,当我在Xbee中挂钩并尝试与arduino进行通信时,我什么也得不到。例如。使用的Xbee当命令绘制图形是:
a = arduino(COM X);
其中X
是其中Arduino的连接的COM端口。
我连接Xbee时应如何更改命令? (再次回顾我的Arduino和加速度计没有连接到计算机上,但我的接收端的XBee是。)
这里是我的MATLAB代码:
a.pinMode(15,'input');
a.pinMode(16,'input');
a.pinMode(17,'input');
a.pinMode(18,'output');
a.pinMode(19,'output');
a.digitalWrite(18,0);
a.digitalWrite(19,1);
xval = zeros();
yval = zeros();
zval = zeros();
xval(1) = a.analogRead(3);
yval(1) = a.analogRead(2);
zval(1) = a.analogRead(2);
pause(.001);
for i = 2:1000
xval(i) = a.analogRead(3);
yval(i) = a.analogRead(2);
zval(i) = a.analogRead(2);
xmod = (xval-496)/300;
ymod = (yval-511)/300;
zmod = (zval-508)/300;
subplot(3,1,1)
plot(xmod, 'r');
axis([1 1000 -0.5 0.5]);
title('x');
subplot(3,1,2)
plot(ymod, 'r');
axis([1 1000 -0.5 0.5]);
title('y');
subplot(3,1,3)
plot(zmod, 'r');
axis([1 1000 -0.5 0.5]);
title('z');
pause(0.001);
end