Matlabとmbedは仲が悪い

研究室の同期から設計を頼まれたブツを作るために,センサデータの処理アルゴリズムをMatlabで考えようとしたんやけど,躓いたのでメモ.

まずやろうとしたことは,センサ<==>mbed<==>Matlabでセンサデータを散布図上にリアルタイムプロット.
プロットされたデータを視て,フィルタ考えるなり,アルゴリズム作るなり.
特に難しいことは無い.

 

しかし,mbedにセンサデータを送らせる為に以下のコマンドを実行すると
> fprintf(s,'T');

>>ERROR:
>>??? Error using ==> serial.fprintf at 144
>>An error occurred during writing.

と悲しい一言を吐いて止まる.

文法とか,データフォーマットとか特におかしいところも無いのに,必ずこのエラーを吐いて止まる.これは困った.

 

で,ネットで調べてみると,同様の症状で困っている人が.

http://www.mathworks.com/matlabcentral/newsreader/view_thread/299738

どうやらUSB-serial 変換チップのバッファがクリアできないタイプだと起こる現象らしい.

 

しかも”matlab mbed”でも検索すると,mbedで同様のスレが立ってた.

http://mbed.org/forum/helloworld/topic/3568/?page=1#comment-19556

どうやら,mbedも漏れ無くこのダメチップに該当するようで,根本的な解決策は無いそうなので,Try~Catch で凌ぐしかないようです.
Matlabとmbedはどうやら仲が悪いようです(笑

 

半日格闘した結果,無事グラフにプロットできましたとさ.
めでたしめでたし.

f:id:pokopokopeke:20131013180231j:plain