Arduino基板のモデリング入門
Tutorial Level: Advanced Arduino UnoボードでLEDライトを制御するモデルを作成し、コードを生成する方法を紹介します。
このチュートリアルのファイル
button_led_2sec.scm
ハードウエアと回路の概要
これらのコンポーネントは、次のチュートリアルに必要です。チュートリアル:
ハードウェア
- Arduino Unoボード
- ブレッドボード +コンポーネント接続用配線
- LEDライト
- 10KΩの抵抗器
- 100Ω抵抗器
回路


Twin Activateモデルの作成

- Arduino Configurationブロック:このブロックは、Arduinoボードとのシリアル通信ポートを開くためのシミュレーションモードに設定されています。
- Button ブロック:このブロックは、Arduinoボードのピン11に接続されているハードウェアボタンを表しています。
- LED ブロック:このブロックは、LEDライトがArduinoボードの10番ピンに接続されているハードウェアを表しています。
- LED Button スーパーブロック:このブロックには、スーパーブロックの led offとled onを含むシステムのダイナミクスが含まれています。ボタンを押すとLEDライトが2秒間点灯し、自動的に消灯します。
このモデルは、Twin ActivateのState Machine構築法を使用しています。これにより、2つの異なる状態をモデルに含めることができます。1つはライトが点灯している状態(スーパーブロックのled onで定義)、もう1つはライトが消灯している状態(スーパーブロックのled offで定義)です。led onとled offスーパーブロックは、LED Buttonスーパーブロックの内側にあります。
State Machine構築法の詳細については、Twin Activate Extended Definitionsを参照してください。


初期状態では、led off スーパーブロックはアクティベーション入力ポートからアクティベートされます。この処理により、状態番号が2に変更され、led信号がゼロに設定されます。その後のアクティベーションは、アクティベーションシグナル A2を通じて行われます。button信号が正になるまで、出力はアクティブになりません。出力アクティベーションがオンになると、led onスーパーブロックに入ります。

on信号によってstateの値が1に変更され、led ofスーパーブロックによって表されるstateが非アクティブになり、led onスーパーブロックのstateがアクティブになります。また、信号ledを1に設定し、LEDライトを点灯させ、カウンターをリセットします。
A1信号が連続的にアクティブになると、tick入力によってカウンターが目標の値(この場合は2秒)に達するまでインクリメントされます。
シミュレーションのステップ
- モデルのシミュレーション設定で、リアルタイムスケールを1に設定します。この値は、Twin Activateシミュレーション時間の1単位が1秒に相当することを示します。
- Arduino基板をコンピュータシステムのUSBポートに接続します。
- ArduinoConfigurationブロックをダブルクリックします。接続されているシリアル通信ポートが一覧表示されます。Arduino基板に接続されているポートを使用します。
- Arduino IDEで、このファイルを開きます:<activate_installation>/hwx/databases/activate/system/Arduino/_bin/arduino.ino.
- Arduino IDEで、必要なライブラリがインストールされていない場合は、インストールします。
- Arduino IDEで、arduino.inoをコンパイルして、スケッチをArduino基板にアップロードします。
-
Twin Activateに戻り、実行ボタンをクリックします。
シミュレーションは30秒間実行されます。
- ブレッドボード上で、ハードウェアボタンを押し、ライトの点灯、消灯の様子を観察してください。
コード生成の手順
- ArduinoConfigurationブロックのステータスをオフにします(このステップはArduino基板が接続されていない場合のエラーを回避するためのものです)。
-
最上位のダイアグラムを格納するスーパーブロックを作成します。
- ダイアグラムの最上位にあるブロックをすべて選択します。
-
スーパーブロックツール
をクリックし、選択したブロックでスーパーブロックを作成します。
-
作成したスーパーブロックを選択し、関数
vssGenerateInoFile
を実行します。 - 作成した.inoファイルをArduino IDEで開きます。
- ツールメニューから、カードとポートを選択します。
-
スケッチをコンパイルし、カードにアップロードします。
コンパイルしてArduino基板にダウンロードしたコードは、Twin Activateモデルと接続することなくスタンドアロンで動作させることができます。