皆さんは「コンピュータをネットワークにつなぐ」と聞くとどのようなことを思い浮かべるだろうか。ノートパソコンの横に付いているRJ-45の端子にUTPの線をつなぐことを思い浮かべる人、デスクトップパソコンのPCIスロットにIntelのNICを挿すのを思い出す人などいろいろだろうが、パソコンとイーサネットを考えるのが普通ではないかと思う。
しかしちょっと待ってほしい、現代の我々の周りはコンピュータに溢れていることを。携帯電話、携帯ゲーム機と言ったいかにもコンピュータといったものから冷蔵庫、炊飯器、電子レンジ、液晶テレビ、デジタルカメラ、腕時計、自動車、カーナビゲーションシステム、電動アシスト自転車、自動改札、複合コピー機などなど、ありとあらゆる物にコンピュータが入っているのだ。そしてすべてではないにしろ、多くのコンピュータは他のコンピュータとつながっているのだ。もちろんつなぐ方法はイーサネットだけではない。シリアルポートやパラレルポートというレガシーな通信方式もあれば、USBなどの有線通信、またBluetoothのような無線通信もある。CANやI2C,SPIなどというパソコンでは聞き慣れない通信方法も使われている。
「Making Things Talk」は小さなコンピュータなどを使ってネットワークを通じて話す(Talk)オブジェクトを作ろうという書籍だ。ハードウェアの製作からネットワークプログラミングまでを行う、と書くと難しそうだがこの本ではそうならないように最大限配慮している。
例えば第1章は以降の章で使うツール(ハードウェア、ソフトウェア両方)についての解説をまるまる1章使って行っている。ソフトウェアだけの開発なら失敗してもそれほどダメージはないが、ハードウェアの開発(いわゆる工作だ)となるとそうはいかない。部品同士を正しく接続しないとつないだ部品やパソコンを壊してしまう可能性もある。それゆえ準備にきっちりと文章を割いてくれるのはよいことだと思う。
この書籍ではパソコン側のプログラミング環境としてProcessingを採用している。ProcessingはJavaベースの開発環境だが、グラフィックや、外部機器、ネットワークなどが簡単に操作できるのが特徴だ。例えばマウスカーソルを追従して四角形を動かすプログラム(Processingではスケッチと呼ぶ)はこんな感じになる。
int x=0,y=0;
int sizex=300,sizey=300;
void setup() { //初期化関数
size(sizex,sizey); //描画サイズ決定
noStroke(); //枠線なし
background(255); //背景は白
}
void draw() { //繰り返し実行される関数
fill(255); //白で
rect(x-5,y-5,10,10); //四角形を描く(つまり消す)
x=mouseX; //マウスの座標を読み出す
y=mouseY;
fill(x*256/sizex,256-y*256/sizey,0);
//座標より色を計算で求める
rect(x-5,y-5,10,10); //四角形を描く
}
ただ動かすだけではつまらないので、四角形の色を座標に応じて変えるようにしてみた。こんなことも簡単にできるのがProcessingの利点の1つだ。
もう1つ、ハードウェアで中心的な役割を担うのが「Arduino」だ。これはAtmelのAVRという8bitマイコンが載ったボードと、Processingをベースに作られたArduino IDEという開発環境がセットになったもので、マイコンの開発というと必須だった開発環境の構築やマイコンチップの書き込みのために特別なハードウェアの用意などが必要ないなど、敷居の低いマイコンハードウェアだ。最近は「フィジカルコンピューティング」という名前も徐々に有名になってきているので、聞いたことがある人も少なくないかもしれない。
もっともベーシックなArduino Duemilanoveなら日本の通販ショップでも3,000円を切る値段で買うことができるので、興味のある人は購入してみるといいだろう。
第2章以降はArduinoを始めとする小さなコンピュータをネットワークにつないでいく内容となっている。ここでいうコンピュータはイーサネットやインターネットに限っているわけではなく、単純なシリアル通信からBluetoothやZigBeeといった無線通信まで使った作例を掲載しているので応用したものを作る場合でもとても参考になるのではないかと思う。
付け足しておくと、この本の原著はアメリカで出版されており各種部品もアメリカの通販サイトでの購入を前提としているのだが、監訳の小林茂氏の努力により日本での購入先もかなりフォローされているので、安心して工作にとりかかることができる。
「フィジカルコンピューティング」「Processing」「Arduino」などが気になっている方、そういう細かいことはよくわからないが、自分のパソコンにいろいろな物をつないでみたいという方にはお勧めの良書である。気になる方はまず書店で手に取ってみてはいかがだろうか。
なお、本書の著者Tom Igoe氏と訳者で「Gainer」開発者である小林茂氏が出るイベント「ユビキタスコンテンツシンポジウム 2009 - And then there are three. -」が2月27日、28日の2日間開催される。興味ある人は参加してみると良いだろう。
>
Making Things Talk - Arduinoで作る「会話」するモノたち
Tom Igoe 著
小林 茂 監訳、水原 文 訳
オライリージャパン発行
2008年11月17日発売
大型本 456ページ
ISBN 978-4-87311-384-5
定価3,990円