问题的情况:
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 给出了第三个拍摄的照片。
有人知道我该如何解决这个问题吗?