Altair EmbedとArduinoで電子工作(その1)LEDの点灯
Altair Embedはブロックダイアグラムベースのアプリケーションで、自動コード生成により簡単にハードウェアを動作させることができます。Arduino、Raspberry Pi、Texas InstrumentsおよびST Micro社の製品を含む1200以上のターゲットをサポートしています。
今回はArduinoを例に、Altair Embedからの信号でArduinoデバイスに接続されたLEDを点灯させてみます。
準備
Arduinoのドライバが必要ですので、Arduino IDEを下記ページからダウンロードしてインストールしてください。
https://www.arduino.cc/en/software
Arduinoデバイスの接続
USBでArduinoデバイスとPCを接続します。今回はArduino Unoの互換ボードを使用します。
Embedの動作モード
Embedでは、以下2種類の方法でハードウェアを動作させることができます。今回は両パターンでLEDを点灯させてみます。
Standalone Mode
Embedで生成したコードをハードウェアデバイスにダウンロードし、ハードウェア単体で実行させます。
Interactive Mode
EmbedをインストールしたPCとハードウェアデバイスを接続したまま相互にデータを交換しながら動作させます。
配線
DIGITALの2番 - LED - 1kオームの抵抗 - GND と接続しました。
LEDには向きがありますのでご注意ください。反対向きだと電流が流れず点灯しません。
Standalone Modeでの動作
SquareWaveで矩形波を生成し、Arduinoデバイスに入力したモデルを作成しました。使用したモデルはこちらです。
今回は2番ピンに接続していますので、Digital Outputの番号をPD2としてください。
ほか、Arduino Configでポート番号を指定してください。
ToolsのCodeGenより、コード生成を行います。
Compileでコードが生成され、DownloadでコードをArduinoデバイスに転送します。
コードの転送が完了すると、LEDが点灯し始めます。SquareWaveが1Hzの矩形波を出力していますので、1Hzで点滅していることがわかります。USBで接続されていますが、これは電力供給のみで、1HzのLEDの点滅処理はArduinoデバイス単体で行われています。
SquareWaveを10Hzに変更してみます。再度Compile、Downloadを実行すると、今度はLEDが10Hzで点滅します。
Interactive Modeでの動作
今度はInteractive Modeで動作させてみます。Interactive Modeで動作させるには、デバイスで動作させたい箇所をCompound Blockという機能を用いて、一つのブロックにまとめる必要があります。今回のモデルでは、Blink Logicと名前を付けました。使用したモデルはこちらです。
Blink Logicの中身を確認します。周波数の異なるSquareWaveを3つ用意しています。10Hz、0.2Hz、1Hzです。Blink Logicの外側にあるButtonブロックからの信号により、Caseブロックを用いて信号を切り替えることができます。この切り替えた信号をArduinoデバイスの2番ピンに送信しています。
Blink Blockを選択した状態でCodeGenよりCompileを行い、コードを生成します。Use selected ...にチェックを入れることで、Blink Blockのみのコードを生成できます。
コードが生成されると、.elfというファイルが生成されます。
あとは、Target Interfaceブロックを配置し、生成した.elfファイルを読み込むと、Interective Modeの設定は完了です。
あとは、System PropertiesのRun in real Timeにチェックを入れて、実行してください。
Embed側のボタンで周波数を切り替えると、それに応じてLEDが点滅します。
Altair EmbedとArduinoを用いたStandalone Mode / Interactive Modeの動作方法を紹介しました。
次回は、Arduinoデバイスからの信号をEmbedに取り込んでみたいと思います。