そんな訳で、とりあえずの取っ掛かりはArduino Unoから始めたいと思う。Arduinoで色々始める際に、とりあえず必要になるものは、

・Arduino本体: これはまぁ買わなければいけない。Arduinoの購入ページには日本での代理店として、

メカロボショップ
スイッチサイエンス
ストロベリー・リナックス
ショップテックハンド
マイクロファン ネットショップ

の5社がリストアップされており、他に筆者が知る限りでは、

アールティロボットショップ
galileo7
千石電商
若松通商eマート
マルツパーツ館
チップワンストップ

といったあたりも扱っている。筆者の場合、AmazonでArduinoを検索すると、スイッチサイエンスさんが出品しており、これだと送料が掛からない&そこそこ早く着くということで、もっぱらAmazon経由で買うのが常であるが、まぁ店頭で購入してもよいし、ほかの方法でも構わない(Photo01)。

Photo01: 以前はボードがむき出しで売られていたが、最近は小さな箱にパッケージされており、中にはシールとちょっとした説明書が入っている。

・USBケーブル: USB 1.1/2.0対応のものが1本あれば良い(Photo02)。

Photo02: この通りStandard USB-B Receptacleが搭載されている。本体の電源もUSB経由で取れるので、右の電源コネクタを使わなくても問題ない(勿論USBで繋がない、という場合は電源を別途用意しないといけない)。

・PC: というか、開発用のホストである。現時点ではArduinoのIDE(Integrated Development Environment:統合開発環境)が対応しているのはWindows(32/64bit)、Mac OS X、Linuxになっており、このいずれかの環境でUSBが1ポート以上余っているマシンならば何でも良い。

の3つで、とりあえずこれだけあれば開発できるのだが、Arduino自身は色々なI/Fそのものは持っていても、それ単体では何もできなかったりするので、その先に何かしら回路というか部品が必要である。これに関しては「何をやりたいか」によって当然回路は異なってくるし、それに応じて必要な部品も変わってくる。とはいえ「そもそも何ができるかわからない」というレベルの人に「必要な部品を用意しろ」とか言っても始まらないわけで、まずは幾つか例をご紹介したい。

Arduinoに搭載されているインターフェースは、

  • 最大20pinのDigital I/O(プログラムから制御する形で5V/0Vの出力、あるいは5V/0Vの入力を行える)
  • 最大6pinのAnalog IN(0~5Vの範囲を10bit解像度で取り込み)
  • 最大3pinのPWM出力(5V出力のデューティ比を8bit解像度で出力)
  • USB経由での送受信(仮想シリアルポート)
  • 最大2pinの割り込みハンドリング
  • msec/μsecのタイマー

といったあたりで、これをプログラムの中から自由に操作することが出来る。また標準ではサポートされていないが、Digital I/Oピンを使ってI2C通信を行うライブラリなどもあり、これを経由して複雑な外部機器を制御する、なんてことも可能である。例えばDigital I/Oは上で書いた通り20pinである。実はこのうち2本はUSB I/Fと共用で、これを使ってしまうとUSB経由の通信に支障が出るので、実質18pinが普通に使えるDigital I/Oのpinである。これを使ってLEDの制御を行いたいという場合、普通にMatrixを組むと最大81個(理論上は更に上の306個まで制御できる方法があるが、これはまた別の機会に)まで表示が可能だが、これで全部のピンを使い切ってしまう。ところがArduinoとは別にLEDを制御する回路を用意し、これをI2C経由で繋げば、ピン2本だけで事が足りるというわけだ。

とまぁ理屈はこの位にして、次回はちょっと具体的なサンプルをお目に掛けたい。

(続く)