【发布时间】:2014-02-24 20:36:25
【问题描述】:
我正在尝试通过 XBee 通过 MATLAB 无线绘制加速度计所有轴的实时图。
到目前为止,我已经实现了以下目标:
- 在发射器端,我有一个与 Xbee 扩展板相连的 Arduino。为此,我正在使用 Series 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
【问题讨论】: