2008.07.15
物体 to HTMLカラーネームコンバータ
物体の色をセンサで読み取ってWebのカラーネームを表示するシステムを作ってみました。HTMLを書くとき、色は数値ではなく名前で指定するほうが好きなので、こういう仕組みが欲しかったんです。カラーセンサは一度挫折したことがあるんだけど、ストロベリー・リナックスのモジュールを使うことで、動作を検証できるレベルまで進むことができました。
AvagoのADJD-S371-QR999 はRGBの各要素を10ビットの精度で読み取れるカラーセンサ。白色LED内蔵で、反射光を測ることが簡単にできます。シリアルバス(I2C)経由でアクセスできるので、回路もソフトウエアもかなりシンプルにまとめられます。このセンサを載せたストロベリー・リナックスのモジュールはプルアップ抵抗などが実装済み。外付けの部品がいりません。
今回は3.3Vで動作するSparkfunのArduino互換ボードSkinnyにつないでみました。センサ・モジュールとの接続はI2Cのワイア2本のみ。取得したデータを照合して一番近いカラーネームに変換し表示する部分はProcessingで組んでいます。
試しに、目の前にあったステープラの色を読み取ってみるとcadetblueと表示されました。まあ、だいたいそんな感じかな。キャリブレーションの仕組みや、受光部をカバーする枠がないので、まだ実用的には使えないんですが、色がデータに変わるのはなかなか愉快です。しばらく遊べそうなセンサです。
ストロベリー・リナックス カラーセンサ・モジュール ADJD-S371-QR999
Arduino用サンプルソースコード(by Musashinodenpa)