はじめに

マイクロコントローラは無数のアプリケーションで使われており,多くの場合見えないところで動作する.しかし,メイカーズムーブメントの発生とマイクロコントローラへの興味の増加によって,その用途はより幅広くなった.

マイクロコントローラは,温度センサ,エンコーダ,モータ等,他の電子機器とインタラクトするハードウェアデバイスである.また同時にプログラム可能な小さなコンピュータでもある.

マイクロコントローラのプログラミングを開始するために,まずマイクロコントローラが行う基本的なタスクを理解する必要がある.通常マイクロコントローラはセンサから入力を受け取り,その入力を使って計算を行い,その計算結果を出力デバイスに出力する.

1.gif

Wolfram言語によるマイクロコントローラのプログラミングは2段階に分けられる.まずソースコードを生成する.次にそのコードはクロスコンパイルされ,マイクロコントローラにダウンロードされる.

コンパイラツールチェーンが正しく設定されていれば,それを明示的に指定する必要はない.したがってコンパイラとは別に,プログラムを設定してマイクロコントローラ上で実行するためには,大きく分けて以下の4つを指定する必要がある.

マイクロコントローラが実装する必要がある計算

入出力信号に対して設定する必要のあるマイクロコントローラとピン

マイクロコントローラとインタラクトする入力または出力デバイスのその他の指定

マイクロコントローラにプログラムをアップロードして埋め込むプログラミングメカニズム

コードを生成してマイクロコントローラに埋め込むスーパー関数はMicrocontrollerEmbedCodeである.

2.gif

マイクロコントローラが実行する必要のある計算は,離散時間入出力モデルとして指定される.このようなモデルにはTransferFunctionModelStateSpaceModelAffineStateSpaceModelNonlinearStateSpaceModelSystemsConnectionsModelがある.

開始時には,マイクロコントローラは初期状態 x0で始まる.指定された計算に基づいて,マイクロコントローラは各サンプリング時点 k において任意の入力信号 uk を読み取り,出力 yk を計算し,内部状態を xk から xk+1 に更新する.サンプリング時点は時間区間 τ の間隔で置かれる.ここで τ は離散時間モデル sys のサンプリング周期である.

3.gif

マイクロコントローラの指定 μc は以下が可能である:

<|"Target"name,"Inputs"{},"Outputs"{}|> ターゲット名および入出力チャンネルの指定
<|,specivali,|> その他のマイクロコントローラの指定

マイクロコントローラの指定

プログラミングメカニズムは通常Associationで指定する.文字列"p"で指定した場合は,"ConnectionPort"->"p"であると解釈される.

続くチュートリアルでは,入出力チャンネル,マイクロコントローラのオプション,プログラミングメカニズム,MicrocontrollerEmbedCodeのオプションについて詳しく述べる.

まず,コードをコンパイルしてダウンロードするツールチェーンのインストールから始める.