-1

我目前正在做我最后一年的学习项目,我正在使用arduino due放置在轮椅上的超声波传感器来制造一个自主的。

所以我的问题是我正在读取传感器的距离,我需要将它们发送matlab simulink到模糊逻辑控制器块中使用它们,但我不能,因为我从 ardiuno 在串行监视器中发送的内容类似于" #distance1#distance2#...#distance10# "这是一个字符串类型,所以我如何使用串口获取数据(距离)以在 matlab simulink 中使用它们。

我必须更改arduino代码还是应该在simulink中使用一些块?任何回应都可能有帮助

4

1 回答 1

1

您需要根据分隔符解析输入,并决定经常对传感器进行采样。

您希望您的输入在散列处被拆分。你应该使用类似的东西:

str = input;    % from arduino buffer
delimiter = "#";
C = strsplit(str,delimiter)
C = int(C)    % type case to an int

您可能应该根据传感器的频率每 5 个信号读取一次。如果传感器每秒进行 100 次测量,您可能只需要处理 20 次。这看起来像:

 C = C[1:5:end]

也许...

处理您可能想在某处使用传感器数据表中的错误标准的信号。解析输入可能在它被传递到 simulink 之前,或者作为第一个块之一。这取决于你(我不知道是否有最佳实践)。

我希望这有帮助!

str split 的文档在这里: http ://au.mathworks.com/help/matlab/ref/strsplit.html

于 2016-04-12T09:41:10.260 回答