simulinkでシ​リアル通信のサーボモ​ータを動かせますか?

17 ビュー (過去 30 日間)
遼 江口
遼 江口 2020 年 11 月 30 日
コメント済み: 遼 江口 2020 年 12 月 4 日
シリアル通信のサーボモーターをDXSHIELD付きのarduinoで動作させたいのですが、simulinkで動作させることは可能でしょうか?
可能であれば、使用するブロックや参考になるモデルなどを教えていただきたいです。
{Arduino Support from SimulinkとarduinoIOは既にインストール済みです。}

採用された回答

Hiroshi Miyagawa
Hiroshi Miyagawa 2020 年 12 月 1 日
編集済み: Hiroshi Miyagawa 2020 年 12 月 1 日
Simulinkのライセンスがあれば追加費用はかかりません。
以下の手順で入手いただけます。
MATLAB - アドオン - ハードウェア サポート パッケージの入手
Arduino に搭載されているセンサ、アクチュエータ、通信インターフェースにアクセスするためのSimulinkブロックが含まれていますので、ハンドコードすることなく Arduino にご自分のロジックを実装できます。
また、以下のウェビナーもご覧ください。
  3 件のコメント
Hiroshi Miyagawa
Hiroshi Miyagawa 2020 年 12 月 2 日
編集済み: Hiroshi Miyagawa 2020 年 12 月 2 日
すでにサポートパッケージをインストール済みでしたね。ご質問をよく読まずに回答してしまいました。大変失礼いたしました。
ArduinoからDXSHIELDを介してモータを動かした経験者が身近にいませんでしたので、以下「できると思います」という表現であることをご容赦頂ければ幸いです。
以下の2通りの実現方法があると思います。
  1. サポートパッケージにあるシリアル通信ブロックを使う
  2. DXLIB_ArduinoをS-Functionから使う
1.
DXSHIELDを接続しているArduinoのピン番号を確認し、シリアル通信ブロックに設定します。
パケット処理プログラムをSimulinkで記述しその結果をシリアル通信ブロックに入力します。
2.
S-Function や S-Function Builder でDXLIB_Arduinoライブラリをコールするように記述する方法もありますが、R2018b以降なら'C Caller'、R2020a以降なら'C Function'というブロックがあります。DXLIB_Arduinoライブラリの全ての関数には引数と返り値があるようですので、'C Caller'ブロックが使いやすいと思います。
C Caller ブロックについては以下のウェビナーで概要紹介していますのでご参照いただければ幸いです。
遼 江口
遼 江口 2020 年 12 月 4 日
実現方法をご提示いただきありがとうござます。
1つずつ確認して、試していきたいと思います!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeArduino Hardware についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!