simulinkでシリアル通信のサーボモータを動かせますか?
10 次查看(过去 30 天)
显示 更早的评论
シリアル通信のサーボモーターをDXSHIELD付きのarduinoで動作させたいのですが、simulinkで動作させることは可能でしょうか?
可能であれば、使用するブロックや参考になるモデルなどを教えていただきたいです。
{Arduino Support from SimulinkとarduinoIOは既にインストール済みです。}
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/434638/image.jpeg)
0 个评论
采纳的回答
Hiroshi Miyagawa
2020-12-1
编辑:Hiroshi Miyagawa
2020-12-1
Simulinkのライセンスがあれば追加費用はかかりません。
以下の手順で入手いただけます。
MATLAB - アドオン - ハードウェア サポート パッケージの入手
Arduino に搭載されているセンサ、アクチュエータ、通信インターフェースにアクセスするためのSimulinkブロックが含まれていますので、ハンドコードすることなく Arduino にご自分のロジックを実装できます。
また、以下のウェビナーもご覧ください。
3 个评论
Hiroshi Miyagawa
2020-12-2
编辑:Hiroshi Miyagawa
2020-12-2
すでにサポートパッケージをインストール済みでしたね。ご質問をよく読まずに回答してしまいました。大変失礼いたしました。
ArduinoからDXSHIELDを介してモータを動かした経験者が身近にいませんでしたので、以下「できると思います」という表現であることをご容赦頂ければ幸いです。
以下の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 ブロックについては以下のウェビナーで概要紹介していますのでご参照いただければ幸いです。
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Arduino Hardware 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!