Arduino基板のモデリング入門

Tutorial Level: Advanced Arduino UnoボードでLEDライトを制御するモデルを作成し、コードを生成する方法を紹介します。

重要: Available only with Twin Activate commercial edition.

このチュートリアルのファイル

button_led_2sec.scm

このチュートリアルで使用するモデルはデモブラウザからアクセスできます。リボンから 表示 > デモブラウザ > Arduino > button_led_2sec.scmを選択します。
注: このチュートリアルでは Arudino拡張が読み込まれている必要があります。詳しくはArduinoライブラリを参照してください。

ハードウエアと回路の概要

これらのコンポーネントは、次のチュートリアルに必要です。チュートリアル:

ハードウェア

  • Arduino Unoボード
  • ブレッドボード +コンポーネント接続用配線
  • LEDライト
  • 10KΩの抵抗器
  • 100Ω抵抗器

回路

1. 回路図

2. ブレッドボードに接続された物理コンポーネント

Twin Activateモデルの作成

ハードウェアボタンとLEDライトの動作は、以下のTwin Activateモデルで定義されています:

このモデルには以下のコンポーネントが含まれています:
  • Arduino Configurationブロック:このブロックは、Arduinoボードとのシリアル通信ポートを開くためのシミュレーションモードに設定されています。
  • Button ブロック:このブロックは、Arduinoボードのピン11に接続されているハードウェアボタンを表しています。
  • LED ブロック:このブロックは、LEDライトがArduinoボードの10番ピンに接続されているハードウェアを表しています。
  • LED Button スーパーブロック:このブロックには、スーパーブロックの led offled onを含むシステムのダイナミクスが含まれています。ボタンを押すとLEDライトが2秒間点灯し、自動的に消灯します。

このモデルは、Twin ActivateのState Machine構築法を使用しています。これにより、2つの異なる状態をモデルに含めることができます。1つはライトが点灯している状態(スーパーブロックのled onで定義)、もう1つはライトが消灯している状態(スーパーブロックのled offで定義)です。led onled offスーパーブロックは、LED Buttonスーパーブロックの内側にあります。

State Machine構築法の詳細については、Twin Activate Extended Definitionsを参照してください。

3. 2つの状態で構成されるシステム(拡張LED Buttonスーパーブロック)

4. 黄色のled offスーパーブロックの内容

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

5. 赤色のled onスーパーブロックの内容

on信号によってstateの値が1に変更され、led ofスーパーブロックによって表されるstateが非アクティブになり、led onスーパーブロックのstateがアクティブになります。また、信号ledを1に設定し、LEDライトを点灯させ、カウンターをリセットします。

A1信号が連続的にアクティブになると、tick入力によってカウンターが目標の値(この場合は2秒)に達するまでインクリメントされます。

シミュレーションのステップ

  1. モデルのシミュレーション設定で、リアルタイムスケールを1に設定します。この値は、Twin Activateシミュレーション時間の1単位が1秒に相当することを示します。
  2. Arduino基板をコンピュータシステムのUSBポートに接続します。
  3. ArduinoConfigurationブロックをダブルクリックします。接続されているシリアル通信ポートが一覧表示されます。Arduino基板に接続されているポートを使用します。
  4. Arduino IDEで、このファイルを開きます:<activate_installation>/hwx/databases/activate/system/Arduino/_bin/arduino.ino.
  5. Arduino IDEで、必要なライブラリがインストールされていない場合は、インストールします。
  6. Arduino IDEで、arduino.inoをコンパイルして、スケッチをArduino基板にアップロードします。
  7. Twin Activateに戻り、実行ボタンをクリックします。
    シミュレーションは30秒間実行されます。
  8. ブレッドボード上で、ハードウェアボタンを押し、ライトの点灯、消灯の様子を観察してください。

コード生成の手順

  1. ArduinoConfigurationブロックのステータスをオフにします(このステップはArduino基板が接続されていない場合のエラーを回避するためのものです)。
  2. 最上位のダイアグラムを格納するスーパーブロックを作成します。
    1. ダイアグラムの最上位にあるブロックをすべて選択します。
    2. スーパーブロックツール をクリックし、選択したブロックでスーパーブロックを作成します。
  3. 作成したスーパーブロックを選択し、関数vssGenerateInoFileを実行します。
  4. 作成した.inoファイルをArduino IDEで開きます。
  5. ツールメニューから、カードとポートを選択します。
  6. スケッチをコンパイルし、カードにアップロードします。
    コンパイルしてArduino基板にダウンロードしたコードは、Twin Activateモデルと接続することなくスタンドアロンで動作させることができます。