Arduinoいろは

Arduinoなどはフィジカルコンピューティングと呼ばれている。
いわゆる組み込み(MCUによる制御をする)プログラミングだ。
Arduinoの場合には、基本的に


void setup()
{

}
void loop()
{

}

の二つの関数がある。
setupは起動時のみ実行され、loopはエンドレスで実行され続ける。
もちろん自分で関数を書いて、setupやloop、その他割り込みで呼び出すこともできる。
中身はC言語のような言語で記述し、ポインタも使用できる。
特殊な部分は

  • デジタル・アナログの入出力関数がある
  • ピンによる割り込みを検出して、ある処理を実行させることができる(自分でwatch dog timerを動かしておく必要がない)

といったところだろうか。
これらを利用した便利なライブラリ(デバイスドライバ)もすでに用意されている。
上記のI2Cリーダー・ライターはWireライブラリを使用している。
何かちょっと作ろうと思った時には、敷居が低いプラットフォームだ。


こういったMCUの便利なところは、分岐処理が容易なことだ。
ファイルやwebレスポンスなどの処理は、膨大な分岐処理が発生するので、MCUを使ったほうが実装が容易だ。
Arduinoには、ネットワークシールドやSDカードシールドなどもあるので、いろいろと遊べる。
一方で、こういったMCUは性能が限られているので、高速で論理処理をすることには向いていない。
そういう場合はFPGAを使用した方が有利だ。
最近のFPGAMCUコアを合成して作りこむことができるので、そういったものであれば両方を同時に実装できる。

Arduino Uno Rev3

Arduino Uno Rev3