Arduinoライブラリとブロック

Twin Activate Arduinoライブラリのモードとブロックについて学びます。

シミュレーションとコードモード

Twin Activate Arduinoブロックライブラリは、2つの異なるモードで使用できます:

モード1:シミュレーションモード
シミュレーションモードでは、Twin Activateが計算を実行し、Arduinoボードはボードに接続された電子部品とのインターフェースのタスクを実行します。Arduinoボードは、ボードにアップロードされた汎用inoコードを通じてこのタスクを実行します。このモードでは、コードはTwin Activateで実行されますが、Twin ActivateとArduinoボードの間でライブ接続とデータ交換が行われます。
モード2:Inoコード生成
Twin Activateは、コード生成モードではArduinoボード上で自律的に動作するように設計されたカスタムコードを生成します。コードにはTwin Activateの計算が含まれているので、ArduinoボードはTwin Activateに接続することなくスタンドアロンデバイスとして動作します。Twin Activate コードジェネレーターは、Twin Activateダイアグラムからカスタムinoコードを生成します。

Arduinoパレットとブロック

ArduinoパレットとConfigurationブロック

Configurationブロックは必須であり、Twin Activateダイアグラムに含まれ、適切にパラメータ化されている必要があります。

特に、COMポートはこのブロックで定義されます。パーソナルコンピュータシステムでは、COMポートはUSBポートによってエミュレートされます。ArduinoボードはコンピュータのUSBポートに接続されています。Windowsによって割り当てられた実際のCOMポートは、Windowsのデバイスマネージャによって示されます。この情報はConfigurationブロックを定義するために必要です。


Basicパレット
Basicパレットには、ArduinoコンポーネントをTwin Activateのダイアグラムで構築するための一般的なブロックセットが含まれています。


Componentsパレット
Componentsパレットには、Twin Activateダイアグラムに追加できるArduinoコンポーネントが含まれています。


Motorsパレット
MotorsパレットにはArduino Servo Motorが含まれており、Twin Activateのダイアグラムに追加することができます。


シリアル通信

シミュレーションモードでは、Twin Activate Arduinoブロックライブラリは、Arduino ConfigurationブロックのCOM情報を使用して、Arduinoボードとのシリアル通信を開きます。Twin Activateは、複数のArduinoボードの同時接続をサポートしています。この場合、各ボードに1つずつ、複数のArduino設定ブロックをモデルに含める必要があります。

すべてのArduinoブロックには、2つのパラメータを持つSerialタブがあります:
  • パラメータ1:オープンシリアル通信を使用するかどうかを指定します。
  • パラメータ2:使用する通信ポートを指定します。

モデルにArduino Configurationブロックが1つしか含まれていない場合は、Use Opened Serialチェックボックス(デフォルトオプション)を選択します。この場合、各ブロックでシリアル通信ポートを定義する必要はありません。

モデルが複数のArduinoボードに接続されている場合は、Use Opened Serial チェックボックスをオフにして、代わりに各ブロックの通信ポートを定義します。この場合、ベストプラクティスは、ボードに接続されたコンポーネントを表すブロックをすべて別のスーパーブロックに配置し、通信ポートをそのスーパーブロックのマスクパラメータにすることでスーパーブロックをマスクすることです。これにより、モデルはよりモジュール化され、共有しやすくなります。

注:
  • コード生成モードでは、1つのボードのみがサポートされます。この制限は将来的に解除される予定です。
  • Arduinoブロックを含むスーパーブロックのコードを生成するには、スーパーブロックに入力や出力がない必要があります。
  • Twin Activateでは、double型のデータはfloat64_t として格納されます。Arduinoでは、Arduinoボードのタイプに応じて、float32_tまたはfloat64_tとして格納することができます。