7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MATLAB&SimulinkでArduinoを使い始める (電子工作初心者のLED点滅まで)

Posted at

はじめに

これは「ArduinoとMATLABで制御系設計をはじめよう」を参考にしながら, 電子工作をほとんどしたことがない大学生がArduinoに初めて触れて, LEDを点滅させた記録です.

平田光男, ArduinoとMATLABで制御系設計をはじめよう, TechShare株式会社

使っているマシンのOSはWindows10 Home, MATLABはR2021aです.

購入したもの

今回用意したのは, "Arduino Uno R3" を含むスターターキットです. (今後もArduinoと末永くお付き合いしたいと考えて, いっぱい遊べそうなものを選んじゃいました..)

https://www.elegoo.com/collections/uno-r3-starter-kits/products/elegoo-uno-most-complete-starter-kit
arduino.PNG

LEDの点滅のみを行いたい人は, キットではなく,

  • Arduino本体 (Arduino Uno R3 / Arduino Mega 2560 R3)
  • ブレッドボード
  • ジャンパワイヤ
  • LED
  • 220[$\Omega$]抵抗

があれば十分だと思います..

LED点滅実験

Support Packageによる連携 (今回行ったもの)

参考書では, ArduinoIOを使っている(後述)が, ここでは,

を用いる.

まず, MATLABを開いて[ホーム]->[アドオン]->[アドオンの入手]から上記二つをインストールする.
インストールの後, 両方とも「ハードウェアセットアップ」があり, [Arduino Uno]と[COM3]を選ぶ以外は[次へ]を押してセットアップを完了しました.

LED点滅実験

Simulinkからの実験

MathWorksサイトに書かれている例を用いて, SimulinkによるLED点滅実験を行った. 作成した回路は以下である. (今回用いているのはArduino Unoなので, ボードの形状が少し違うが, Pin9およびGNDにジャンパワイヤを刺すことは変わらない.)
(注) LEDの足が短いほうがGND(右)側です!!
led_example_circuit.PNG

そして, Simulinkで空のモデルを開き, [ライブラリブラウザー]から

  • Simulink/Sources/Pulse Generator
  • Simulink Support Package for Arduino Hardware/Common/Digital Output(Pin: 9)

を追加し, つなげる. ここでPulse Generatorをダブルクリックし, パルスタイプを[サンプルベース], サンプル時間を0.1とした.

simulink_model_example_led.PNG

この後の作業は,

  • [シミュレーション(左上)]->[準備下矢印]->[モデル設定]->[ハードウェア実行]にて[ハードウェアボード]で[Arduino Uno]を選択
  • [OK]をクリック
  • [ハードウェア]->[ハードウェアで実行]で点滅が開始される. (開始まで20秒ほどかかる場合もあった.)

MATLABコードからの実験

次にArduinoを使ったLED点滅をMATLABコードから行った. コードは参考書のプログラム3-1を参考に, 以下を作成した. そして, 通常のMATLABコードを実行するのと全く同じように[実行]をクリックした. (MATLABでいつも通り実行するだけで, Arduinoが動いてしまうので, とても楽チン.)

matlab
clear a
a = arduino();
for i=1:10
    writeDigitalPin(a,'D9',1);
    pause(1);
    writeDigitalPin(a,'D9',0);
    pause(1);
end

ここまででLEDの点滅をMATLABおよびSimulinkから行えることが確認できました.

ArduinoIOによる連携 (参考書に書かれていた方法)

結果的にうまくいきませんでした...

Arduino IDEのインストール

参考書に書かれていた通り, [Arduinoのホームページ]->[Softaware]から[Windows ZIP File]を選択し, ダウンロードを行いました.
私がダウンロードを行った際のVersionは1.8.15でした.

https://www.arduino.cc/en/software
arduino_ide_download.PNG

ダウンロードしたZIPファイルを解凍し, 自分の好みの場所に移動して, Arduino IDEのインストールは完了です.

デバイスドライバのインストール

最初に, Arduino Uno R3をUSBによりパソコンとつなぎました.
そして[コントロールパネル]->[ハードウェアとサウンド]->[デバイスとプリンター/デバイスマネージャー]->[ほかのデバイス]と進んでいくと, パソコンがArduinoを認識していました.
ardino_device_driver.PNG
ここで[USBシリアルデバイス(COM3)]上で, [右クリック]->[ドライバーの更新]->[コンピューターを参照してドライバーをい検索(R)]->[参照]から, 先ほどダウンロードしたArduino IDEの中にあるarduino-1.8.15/driversをインストールしました.
arduino_device_driver_finish.PNG
これで, Arduino デバイスドライバのインストールは終了!!

Arduinoの動作確認

参考書に倣い, Arduinoの動作確認のためのLED点滅実験を行った.
まず, arduino-1.8.15/arduino.exeを起動します.
arduinoexe_start.PNG

そして, 設定を行いました.

  • [ツール]->[ボード]->[Arduino Uno]
  • [ツール]->[シリアルポート]->[COM3]

次に, サンプルコードを実行します. サンプルコードは[ファイル]->[スケッチ例]->[01.Basics]->[Blink]にありました. 新規ウィンドウで開かれたコードに対して, 右矢印マークの「マイコンボードに書き込む」を実行しました.
arduinoexe_example.PNG
Arduino本体を見ると, オレンジ色のLEDが点滅していることが確認できました.

ArduinoIOのインストール

MATLABとArduinoを連携させるために, ArduinoIOが必要になる.
これは以下からダウンロードできる.

Legacy MATLAB and Simulink Support for Arduino

そして, 解凍したZIPファイルを移動し, その中で,

matlab-script
>> install_arduino

とコマンドラインに打つことで, 連携できるようになる.

arduino_matlab.PNG

ここで, SimulinkのライブライブラウザーにArduinoIO Libraryが現れるはずだったのですが, 現れずに断念してしまいました...

おわりに

ここまでが電子工作をやったことのない大学生が, 3時間かけてMATLABとSimulinkを使ってLEDを点滅させるまでの記録です. Qiitaを書きながら作業をしたり, ArduinoIOを断念したりしたので, Support PackageをインストールしてArduinoを動かすだけだったら1時間以内でできそうな気がします..

これから, いろいろなセンサやモーターを使い始めていければと思っています. その記録もQiitaに投稿していくつもりです.

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?