はじめに
これは「ArduinoとMATLABで制御系設計をはじめよう」を参考にしながら, 電子工作をほとんどしたことがない大学生がArduinoに初めて触れて, LEDを点滅させた記録です.
使っているマシンの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
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(右)側です!!
そして, Simulinkで空のモデルを開き, [ライブラリブラウザー]から
- Simulink/Sources/Pulse Generator
- Simulink Support Package for Arduino Hardware/Common/Digital Output(Pin: 9)
を追加し, つなげる. ここでPulse Generatorをダブルクリックし, パルスタイプを[サンプルベース], サンプル時間を0.1とした.
この後の作業は,
- [シミュレーション(左上)]->[準備下矢印]->[モデル設定]->[ハードウェア実行]にて[ハードウェアボード]で[Arduino Uno]を選択
- [OK]をクリック
- [ハードウェア]->[ハードウェアで実行]で点滅が開始される. (開始まで20秒ほどかかる場合もあった.)
MATLABコードからの実験
次にArduinoを使ったLED点滅をMATLABコードから行った. コードは参考書のプログラム3-1を参考に, 以下を作成した. そして, 通常のMATLABコードを実行するのと全く同じように[実行]をクリックした. (MATLABでいつも通り実行するだけで, Arduinoが動いてしまうので, とても楽チン.)
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でした.
ダウンロードしたZIPファイルを解凍し, 自分の好みの場所に移動して, Arduino IDEのインストールは完了です.
デバイスドライバのインストール
最初に, Arduino Uno R3をUSBによりパソコンとつなぎました.
そして[コントロールパネル]->[ハードウェアとサウンド]->[デバイスとプリンター/デバイスマネージャー]->[ほかのデバイス]と進んでいくと, パソコンがArduinoを認識していました.
ここで[USBシリアルデバイス(COM3)]上で, [右クリック]->[ドライバーの更新]->[コンピューターを参照してドライバーをい検索(R)]->[参照]から, 先ほどダウンロードしたArduino IDEの中にあるarduino-1.8.15/driversをインストールしました.
これで, Arduino デバイスドライバのインストールは終了!!
Arduinoの動作確認
参考書に倣い, Arduinoの動作確認のためのLED点滅実験を行った.
まず, arduino-1.8.15/arduino.exeを起動します.
そして, 設定を行いました.
- [ツール]->[ボード]->[Arduino Uno]
- [ツール]->[シリアルポート]->[COM3]
次に, サンプルコードを実行します. サンプルコードは[ファイル]->[スケッチ例]->[01.Basics]->[Blink]にありました. 新規ウィンドウで開かれたコードに対して, 右矢印マークの「マイコンボードに書き込む」を実行しました.
Arduino本体を見ると, オレンジ色のLEDが点滅していることが確認できました.
ArduinoIOのインストール
MATLABとArduinoを連携させるために, ArduinoIOが必要になる.
これは以下からダウンロードできる.
そして, 解凍したZIPファイルを移動し, その中で,
>> install_arduino
とコマンドラインに打つことで, 連携できるようになる.
ここで, SimulinkのライブライブラウザーにArduinoIO Libraryが現れるはずだったのですが, 現れずに断念してしまいました...
おわりに
ここまでが電子工作をやったことのない大学生が, 3時間かけてMATLABとSimulinkを使ってLEDを点滅させるまでの記録です. Qiitaを書きながら作業をしたり, ArduinoIOを断念したりしたので, Support PackageをインストールしてArduinoを動かすだけだったら1時間以内でできそうな気がします..
これから, いろいろなセンサやモーターを使い始めていければと思っています. その記録もQiitaに投稿していくつもりです.