MATLAB/SimulinkでRasberry Pi制御その2:ラズパイをSimulink Onlineから動かす(Lチカ)

投稿日:2022年12月17日
最終更新日:2022年12月17日

Simulink OnlineからRaspberry PiのLEDを光らせる

前回はMATLAB/Simulink Onlineからラズパイを制御するためのセットアップを行い、無事にラズパイを認識することができた。今回はSimulink OnlineからラズパイについているLEDを光らせてみる。

といっても、基本的には以下の公式チュートリアルをなぞっていくだけ。やることも同じだが、以下のページは英語のチュートリアルだが私のSimulink Onlineの環境は日本語なので(設定で英語にもできるとは思うが)、画像などもつけてやったことをメモっておく。

Connect to Raspberry Pi Hardware Board in Simulink Online

 

実行環境

Raspberry Pi 4 Model B

Raspberry Pi OS (Buster)

MATLAB online (MATLAB R2022a)

Simulink online

 

Connected IOを使ってSimulink OnlineからRaspberry Piと通信する

Simulinkからラズパイを動かすには、Connected IOという機能で動かす方法と、Simulinkのモデルをビルドして生成されたコードをラズパイにデプロイして動かす方法がある。今回はチュートリアルに沿って両方やってみるが、まずはConnected IOを使う方法から。

まずはラズパイと通信ができるようになった状態で、MATLAB Onlineを開いて以下を実行。

open_system('raspberrypi_gettingstarted')

しばらくするとSimulink Onlineで以下の画面が立ち上がる。ラズパイを動かすにはいくつか設定が必要なので(デフォルトで設定されている部分もあるが)、まず「モデル化」タブから「モデル設定」をクリック。

設定画面で、「ハードウェア実行」からハードウェアボードを「Raspberry Pi」にして、Target hardware resourcesのDevice Nameを、前回設定した自分のラズパイの名前にする。またConnected I/OをクリックしてInternetを選択する。これでOK。

あとはは「ハードウェア」タブで「指定されたIO」を選んで「IOを使って実行」をクリックすればラズパイ上で、Simulinkモデルの内容が実行される。初期サンプルでは、周期1秒でラズパイ上のLEDが点滅するLチカのモデルになっている。

以下が実際に実行してみた結果。無事にラズパイ上でLチカを実行することができた。

 

Simulink OnlineからRaspberry PiにSimulinkモデルをDeployする

次に、Simulinkモデルをビルドしてラズパイにデプロイする方法で光らせてみる。といっても設定はConnected IOで動かす方法とほぼ一緒で、実行するときに「指定されたIO」→「ボード上で実行」に変更して「ビルド、展開、起動」をクリックすればOK。

この方法でも光らせることができた。ちなみに、このサンプルではPulse Generatorでラズパイへの信号をつくっているので、Pulse Generatorのブロックをダブルクリックして開いて、設定を変えればLEDの光り方を変えることができる。例えば、以下のように周期20、パルス幅10にすれば、周期2秒でLEDを点滅することができる。

これでSimulink Onlineからラズパイを動かす流れがわかった。Simulinkで動かせるラズパイ用のモデルは以下のサイトの「Modeling」のページにまとめて書いてあったので、次回以降はそちらを参考にしながら、いろいろなモデルを試しながらラズパイを動かしてみたいと思う。

Simulink Support Package for Raspberry Pi Hardware Documentation – MathWorks 日本

参考文献

この本のMATLAB/Simulink 6か月ライセンスを使ってやってます↓
Interface 2022年 9月号

 

MATLAB/Simulink記事まとめ

MATLABとSimulinkの記事は以下にまとめてます。

MATLAB/Simulinkで遊んでみる まとめ


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください