1

問題の状況:

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' によって撮影された写真を提供します.

これを修正する方法を知っている人はいますか?

4

0 に答える 0