問題の状況:
Arduino はオブジェクトの長さを測定します。長さが所定の間隔内にある場合、Arduinoシリアルは特定のCOMポートに「1」を書き込みます。MATLAB は同じ COM ポートで読み取るため、MATLAB 内で「1」を読み取ることができます。'1' (Matlab によって読み取られる) ごとに、ウェブカメラによって写真が撮影されます。次の While ループは、MATLAB 内で '1' を読み取る機会を与えてくれます。
clear all
clc
arduino = serial('/dev/tty.usbmodem1411','BaudRate',9600);
fopen(arduino);
Sensor = true
cam = webcam(2);
while (Sensor)
A = fscanf(arduino,'%d')
if A == 1
img = snapshot(cam);
imshow(img);
end
end
fclose(arduino);
しかし、ウェブカメラは私たちが撮りたい写真を撮っていません。
次の問題があります。
'1' が (Matlab によって) 読み取られるのは初めてで、写真は撮影されません。2回目は写真撮影です。3 番目の '1' までに、前の写真は少し変化します (しかし、Matlab は 3 番目の '1' によって撮影された写真を提供しません。その後、4 番目の '1' までに、Matlab は 3 番目の '1' によって撮影された写真を提供します.
これを修正する方法を知っている人はいますか?