TCS34725×Processing
こんにちは、くろべこです。
記事のタイトルの通りまたまたカラーセンサです。
以前に浜松ホトニクス製のカラーセンサを色々といじり倒したと思います。
でもこのカラーセンサ、チップ単体の物で配線やら照明やらちょっとばかしコツのいる代物でした。今回はその教訓を踏まえてモジュール化したカラーセンサを使用したいと思います。
使用する製品は【TCS34725】というI2CタイプのRGBC(赤緑青透明)カラーセンサになります。メーカーは【texas advanced optoelectronic solutions】というアメリカの会社ですね(初めて聞きましたw)。
物としては先日使用した【S11059-02DT】と似てはいるのですが、今回購入したものはRGBカラーセンサとプルアップ抵抗、レギュレーターIC、LED照明がまとまっているやつです。多分、正規品はAdfruitが売っている物かなと思うのですが、本記事で使用するのは毎度おなじみの格安中華製のものですね。
本記事で紹介すること
- TCS34725をAdfruitのライブラリでテストする
- Processingと組み合わせてPCのウィンドウ上に色を再現する
TCS34725概要
今回はサクッと使っていきたいので製品の概要は短めです。後日、レジスタマップやライブラリ無しでの使い方は紹介するつもりです。
- 通信方式:I2C
- 各色分解能:16bit(上下byteに分かれている)
- 入力電圧:2.7V~3.6V
と、仕様書にはあるのですがモジュールを裏返すとVin:3.3V~5V, logic:5Vと書いてあったので今回はレベル変換器をかまさないでそのままArduinoで使用します(モジュール内にレベル変換回路があるのかな?)
Adfruitの図面を見てみたらどうやら【RT9193】という3.3Vに降圧するレギュレータが入っているようでした。
ちなみに、スリープ機能や積分、カウント、各色のゲイン調整もできるようですがこれらは次回で、、、
Adfruitのライブラリで動かしてみる
お手軽に使っていくのでAdfruitさんのライブラリをインクルードしましょう。
Arduinoのライブラリ管理からTCS34725と打ち込んでもインクルードできるのでどちらでもOKです。
配線以下のようにします。ちなみに使用しているマイコンはArduino Unoです。
- SDA ⇒ A4
- SCL ⇒ A5
- 3V3 ⇒ 3.3V
- GND ⇒ GND
では、早速インクルードしたライブラリのサンプルスケッチ【colorview】を書き込んでみます。コードを見た感じ各色8ビット分解能に変換しているようです。
■動作テスト
やっぱり、照明用のLEDがあるのは素晴らしいですね!いい感じに反射光がカラーセンサに入っているのが分かります。
シリアル出力に各色の8ビット値が出ています。
ちゃんと青が反応していますね。イメージ的に前回のセンサに比べてはっきりと色が分かれているように思えます。
TCS34725×Processing
じつはこのAdfruitのライブラリ、Processingのサンプルも入っています。
Arduinoにインクルードした【TCS34725】ライブラリのフォルダを見てみてください。その中に【examples_processing】⇒【colorview】とあるのでアイコンをクリックしてみてください。Processing用のサンプルコードが開くはずです。
そして、1点変更する箇所があります。ポート番号です。
上から15行目くらいにport = *******と記入があるのでその中の【”COM**”】をArduino Unoが使用しているCOMポート番号に書き換えましょう。
書き換えましたら再生ボタン▶を押してみてください。うまくいったら、画面上にウィンドウが出てカラーセンサで読み取った値をウィンドウ上に再現してくれるはずです。
(注意)Arduinoのシリアル画面は閉じてください
三原色は良い感じに再現出来ているようですが、混色の色(黄色やオレンジ)はちょっと再現度が低いですね。測定環境を整えてあげたら結構いい線いきそうな予感です。
おわりに
今回はカラーセンサ【TCS34725】を使用したモジュールタイプのカラーセンサの使用を行いました。
やっぱり、モジュール品はお手軽でいいですね。しかも、製作した会社がライブラリを作っているのですぐ遊ぶにはもってこいだと思います。これくらいならお子さんと一緒に遊べると思うので、休日家で遊ぶネタにはいいかもしれません。
と、ここで終わってはつまらないので次回はこのカラーセンサについて深堀したいと思います。
では、おつかれさまでした。
コメント