나는 XBee를 통해 가속도계의 모든 축의 실시간 그래프를 MATLAB을 통해 플로팅하려고합니다.
I는 지금까지 달성 한 다음 :XBee + Arduino를 사용하여 MATLAB에서 가속도계의 모든 축을 플로팅
- , I는 아두 이노가 Xbee 쉴드 접속있다. 이 목적으로 Series 2 Xbees를 사용하고 있습니다.
- 아날로그 핀 Arduino + Shield 콤보와 방패의 XBee (Co-Ordinator API)에 연결되는 ADXL335 브레이크 아웃 보드 가속도계가 있습니다.
- 수신 측에서 출력을 기록하고 MATLAB에서 플롯 할 컴퓨터에 XBee (라우터 AT)가 연결되어 있습니다.
나는 Arduino 코드 용 MATLAB 용 Arduino 라이브러리를 사용하고있다.
이제 Arduino를 연결하면 (예 : Xbee를 사용하지 않음) 가속도계의 모든 축을 완벽하게 출력합니다.
하지만 Xbee에 연결하여 arduino와 통신하려고하면 아무 것도 얻지 못합니다. 예 : 플롯 할 Xbee에게 명령을 사용할 때의 그래프이다 :
X
는 아두 이노가 연결된 COM 포트이다
a = arduino(COM X);
.
내 Xbee를 연결할 때 명령을 어떻게 변경해야합니까? (내 아두 이노와 가속도계가 컴퓨터에 연결하지만 내 수신 측 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