エンジニア風味 (Engineer-taste)

電子系エンジニアのメモ帳

Simulinkからarduinoにアクセスする

MATLABでコードを書いてArduinoに転送して、Arduinoにつながっているセンサなどを動かすほかに、Simulinkで記述して、Arduinoに転送して動かす方法もあります。SimulinkArduinoを動かす場合は、一度コードを転送すると、Arduinoスタンドアロンで動いてくれるメリットがあります。デメリットは(当然ですが)Simulinkを持っていないとできないところかと思います。
Tutorialを元に、手順をまとめてみました。

まず、Simulinkのアドオンをインストールします。
MATLABのメニューバーから、アドオンをクリックし、「アドオンの入手」を選択します。

f:id:engineer-paju:20190330215917p:plain
図1
f:id:engineer-paju:20190330215936p:plain
図2

表示されたアドオンの中から「Simulink Support Package for Arduino Hardware」を選択します。

f:id:engineer-paju:20190330220045p:plain
図3

インストールボタンをクリックし、「インストール」を選択します。

f:id:engineer-paju:20190330220220p:plain
図4
f:id:engineer-paju:20190330220310p:plain
図5

Agreementを読み、「承諾する」を押します。あとは、「次へ」「次へ」を押します。

f:id:engineer-paju:20190330220407p:plain
図6

インストールが完了しました。「今すぐセットアップ」を押します。

f:id:engineer-paju:20190330220523p:plain
図7

スタートアップのチュートリアルはLチカのプログラムなので、LEDが点灯できるようにするとベターです。ここではUNOの9ピンに接続した場合を示しています。

f:id:engineer-paju:20190330220723p:plain
図8

ArduinoをPCに接続します。「次へ」を押します。

f:id:engineer-paju:20190330220858p:plain
図9

接続されているArduinoが表示されているか確認し、「次へ」を押します。

f:id:engineer-paju:20190330221025p:plain
図10

セットアップしますか?で「yes」にチェックが入っていることを確認し、「次へ」を押します。

f:id:engineer-paju:20190330221444p:plain
図11

接続テストをします。「test connection」を押します。

f:id:engineer-paju:20190330221617p:plain
図12

エラーが出てしまったときは、PCとArduinoの接続を確認し、「戻る」を押して、再度「test connection」します。

f:id:engineer-paju:20190330221736p:plain
図13

今度は、うまくいきました。「次へ」。

f:id:engineer-paju:20190330221822p:plain
図14

「サポートパッケージの例を表示します」にチェックが入っているのを確認し、「終了」。

f:id:engineer-paju:20190330221955p:plain
図15

Exampleが表示されます。今回は「Getting Started with Arduino Hardware」を選択します。

f:id:engineer-paju:20190330222134p:plain
図16

接続可能なArduinoの種類が表示されます。右上の「Open Example」をクリックします。

f:id:engineer-paju:20190330222202p:plain
図17

このサンプルではオシレータとArduinoのピン(ディジタル出力に設定)が接続されています。プログラムを起動するには、右上端の「Deploy To Hardware」をクリックします。

f:id:engineer-paju:20190330222520p:plain
図18

なぜかエラーが出ました。「ArduinoのボードがMega 2560でない」と言っています。

f:id:engineer-paju:20190330222700p:plain
図19

歯車のようなアイコン(モデル コンフィギュレーション パラメータ)をクリックします。

f:id:engineer-paju:20190330222822p:plain
図20

「ハードウェアボード」が「Mega2560」になっているので、「Uno」に変更します。

f:id:engineer-paju:20190330222943p:plain
図21
f:id:engineer-paju:20190330223002p:plain
図22

変更した後は、右下の「適用」を必ず押してから、「OK」を押してください。

f:id:engineer-paju:20190330223124p:plain
図23

「Deploy To Hardware」をクリックすると、今度はちゃんと動きました。

f:id:engineer-paju:20190330223221p:plain
図24

Arduinoに使えるSimulinkのライブラリを探すには、MATLABのコマンドウィンドウでslLibraryBrowserと入力します。

f:id:engineer-paju:20190330223242p:plain
slLibraryBrowser

Simulink Support Package for Arduino Hardware」の中のCommonが使えるようです。

f:id:engineer-paju:20190330223444p:plain
図26

アナログ出力(PWMではなく、DAC)もライブラリはあるのですが、ごく一部のArduinoのみのようです。

f:id:engineer-paju:20190330223630p:plain
図27