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),没有拍照。第二次拍了一张照片。到第三个“1”时,前一张照片发生了一些变化(但 Matlab 没有给出第三个“1”拍摄的照片。然后到第四个“1”时,Matlab 给出了第三个拍摄的照片。

有人知道我该如何解决这个问题吗?

4

0 回答 0