2012年8月9日木曜日

Arduinoを買ってみた

最近、無性に電子工作がしたくなった。PICのBasic Stampとかも検討してほぼ決めかけていたんだけど、こういうことを仕事で手がけている古くからの日本の友人に相談したところArduinoを奨められて、結局そっちに転んだ。

昨日製品が届いた。

「小さい!」が第一印象。ネットでも指摘されてい たようる、シールド取付け用コネクタが傾いている。製造品質はあまりよくない。

本当はLinux上で開発したくて、既にLinuxのIDEをインストールしてあるのだが、我が家のLinuxマシンは本体が二階にあり、ArduinoのUSBをそこに接続するとArduinoが手元になく使いにくいので、Windowsで同じファイルを操作することにし、ラップトップにWindows版のIDEをインストールた。と言っても、気の利いたインストーラな どないので、ZIPファイルを解凍して手作業でコピーとムーブだ。IDE本体はJavaで書かれているので何も問題はないはずでも、サポートのためのDLLファイルなどがちと心配だったが、「Program Files\Arduino」のフォルダを作って解凍したファイルツリーをそっくりコピーしたらちゃんと動いた。スターとメニューにもショートカットを作って…、と定石どおり。

つまづいたのはUSBシリアルポートのドライバ。Windowsが自分で認識してくれるだろうを油断していたら「ダメ」と言われたので自己流でどこかからドライバを持ってきてインストールしたらまたダメ。仕方なくArduinoのドキュメントをじっくり読んでその通りにしたらあっさり動いた。やはりドキュメントはちゃんと読むものだ。

要するに、ArduinoをUSBに挿すと「ドライバがない」と言われるので、「ここのフォルダを探せ」とArduinoの配布パッケージ中の「drivers」のフォルダを指定してやるだけのこと。

購入したのは、Arduino Uno R3にブレッドボードにと65本のジャンパ線の束が付属したバンドル品。個別に買うより少々高いのだが、その分Arduino Unoとブレッドボードをスナップ・インで固定できるプラスティックの台枠が付いている。ブレッドボードに抵抗とジャンパ線を挿して、計画していた電話のオフフックデテクタのエミュレータを作った。ブレッドボーをを使うのは初めてだが、よほど大規模回路でなければこれで当分色々遊べそう。

予め作っておいたスケッチを早速アップロードした。回路の入出力を間違えていたなどのポカはあったが、あっさり動いた。32KBのメモリの内3KBあまり、19本の入出力の内3本しか使っていない。もったいないので何かもっとやらせたいのだが、悲しいことに考えが浮かばない。

気が付いたことをいくつか。
  • ソースコードはLinux上でviで書いている。それをIDEに読み込むのはよいが、デバッグ中にviで施した変更をIDEに再読み込みさせられないようだ。IDEに変更されたファイルを認識させるためには、一旦そのスケッチのウィンドウを閉じて開き直さなければならない。たしか「外部エディタ」の指定ができたはずなのでも う少し調べてみよう。
  • IDEで変更したファイルを書き出したら、最後にキャリッジリターン(^M)が付いていた。これはWindows上のIDEだからなのか?
  • シリアルモニタは、仕事で使っているcutecomの簡易版といった感じで、最低限のデバッグ機能。
  • ArduinoとIDEの接続は3線のシリアルだけなのにArduinoが走っている最中も(と言うか走り出したら止められない?)コンパイルしたスケッチをアップロードできるということは、ブートローダが何かしらのエスケープシーケンスのようなものを監視しているのだろうか?シリアルの信号ピンをモニタしてやれば何か分かりそうだが…。
  • ディジタル側の信号ピンの7と8の間隔が160milになっているので100mil間隔のユニバーサル基板で一品料理のシールドを作りにくい。さては専用基板を買わせる策略かと思いきや、ちゃんと曲がったソケットピンを売っている奴がいる。しかしこれを使うと、そのシールドはカスケードの最後にするか、その上には非互換のソケットの基板しか挿せなくなる。まぁ実際にはそんなに基板をスタックする訳ないのだが。
イーサネットシールドと16セグメントの文字表示LEDを使って、NTPとNCID(Network Caller ID) で動く自己校正+電話着信表示で時計を作る計画があるが、何時になることやら…。

しかしIDEというヤツはどうも使えない。viとmakeで何十年もメシを食ってきて何を今更ということで、サンプルのMakefileも公開されているので何とか環境を整えるつもり。

しばらく楽しめそうだ。


0 件のコメント: