我目前正在进行最后一年的学习项目,我正在使用arduino due
和超声波传感器放在轮椅上制作一个自主的传感器。
所以我的问题是我正在读取传感器的距离,我需要将它们发送到matlab simulink
以便在模糊逻辑控制器块中使用它们但是我不能因为我和我#39;从ardiuno发送串行监视器就像是"
#distance1#distance2#...#distance10# "
这是一个字符串类型,所以如何使用串口获取数据(距离)以在matlab simulink中使用它们。
我是否必须更改arduino代码或者我应该在simulink中使用某些块? 任何回复可能都有帮助
答案 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