MATLAB/SimulinkでRasberry Pi制御その3:Simulink OnlineからラズパイのGPIOにWriteして動かす(&ブザーを鳴らしてみる)

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

Simulink OnlineからRaspberry PiのGPIOにWriteして動かす

前回はSimulink OnlineでRaspberry PiのLEDを点滅させてみた。今回は、Raspberry PiのGPIOをSimulink Onlineから制御してみる。具体的にはGPIO Writeブロックを使って、ラズパイのGPIOをHIGH/LOW切り替えてみる。

またLEDをつないで確認しようと思ったが、それだと前回の内容と変わり映えしない。ということで、今回はアクティブブザーをラズパイのGPIOに接続して、GPIOの切り替えによってブザーがから音が鳴らしてみる。

ちなみにブザーは以下のキットのものを使った。

 

実行環境

Raspberry Pi 4 Model B

Raspberry Pi OS (Buster)

MATLAB online (MATLAB R2022a)

Simulink online

 

ラズベリーパイに接続する回路

回路はブレッドボードに組んでラズパイのGPIOに接続するが、回路図&ブレッドボード上の接続は以下の記事で書いたものをそのまま流用しているので、以下を参照。

【電子工作】Raspberry Pi 4で遊ぼう日記 まとめ

回路図だけ再掲しておく。NPNトランジスタを使ってGPIOの出力が不定のときはベースの電位をLOWに落としている。今回はGPIO19ピンを使用している。

実際に接続したのが以下の写真。

 

Simulink Onlineから動かす

次に、Simulink Onlineでモデルを作っていく。まずは前回同様にMATLAB Onlineを開いて

open_system('raspberrypi_gettingstarted')

を実行して、raspberrypi_gettingstartedを開く。今回はこれを「raspberrypi_gpio」という名前で保存して、GPIOを制御するように改造していく。

まずはライブラリブラウザーでgpioと検索すると、GPIO Write/Readのブロックが出てくる。今回はGPIO Writeだけ使う。

今回はLEDは使わないので、LEDのブロックを削除して、代わりにGPIO Writeのブロックを接続する。ブロックをダブルクリックするとパラメーターを設定できるので、BoardはPi 4 Model B、GPIOはトランジスタを接続したGPIO19を指定する。

今回はConnected IOを使って実行してみる。ハードウェアタブを開いて「IOを使って実行」をクリックする。

以下が実行した結果。Simulink上で信号を発生させているPulse Generatorから1秒ごとにHIGH/LOWが出力されているため、ブザーも1秒ごとに鳴っている。

これでとりあえずGPIO Writeを使ってみるという目的は達成。次回は、GPIO Readブロックも使って、ブレッドボード上の回路でスイッチを押したらブザーが鳴るようにしてみたいと思う。

 

参考文献

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

 

MATLAB/Simulink記事まとめ

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

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

 


投稿者: wakky

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

コメントを残す

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

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