2016-04-12 33 views
-1

私は現在、arduino dueと、車いすに配置された自律型超音波センサーを使用しています。シリアル通信beteen arduinoとMATLAB

私の問題は、センサからの距離を読み取っているため、ファジィ論理コントローラブロックでそれらを使用するにはmatlab simulinkに送信する必要がありますが、シリアルモニタで送信するものardiunoから文字列型であるので、どのように私はMathWorks社のMATLAB、Simulinkでそれらを使用するシリアルポートを使用してデータ(距離)を取得することができます #distance1#distance2#...#distance10# "」のようなもの。

である私はArduinoのコードを変更しなければならないのか、私が使用する必要がありますSimulinkのブロック? 任意の応答が役に立ちます

答えて

1

区切り文字に基づいて入力を解析し、yoを決定する必要がありますあなたはしばしばセンサーをサンプリングする必要があります。

入力をハッシュで分割したいとします。おそらく、センサの周波数に基づいて、すべての第五信号をお読みください

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

:あなたのようなものを使用する必要があります。センサーが1秒間に100回測定する場合は、おそらく20回の処理が必要です。

たぶん
C = C[1:5:end] 

...あなたはどこかにセンサーのデータシートからのエラーSTDを使用する場合があります信号を処理

:これは次のようになります。おそらく、入力がSimulinkに渡される前に、または最初のブロックの1つとして入力を解析します。それはあなた次第です(私はベストプラクティスがあるかどうかわかりません)。

私はそれが助けて欲しい!

strの分割のためのドキュメントはこちらです: http://au.mathworks.com/help/matlab/ref/strsplit.html

+0

これは私にとって大きな助けになるかもしれないヨルダン・スチュワートありがとう –

関連する問題