串行通信beteen arduino和MATLAB

时间:2016-04-12 08:23:31

标签: matlab arduino simulink serial-communication arduino-due

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

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

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

1 个答案:

答案 0 :(得分: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