So-net無料ブログ作成

突然、測色器を作ってみようと思ったんだが [その他]

 昨日はブレードランナー2049を見に行きました。ファン以外には全くつまらないと思いますが、わたし的には今年一番の映画でした。
 前作のブレードランナーは友達が面白いと言ったので、レンタル屋に借りに行って間違ってバトルランナーを借りて見て、友達に面白かったと言ったという少々恥ずかしい思い出があります。バトルランナーも面白かったんですよ。
 さて、本題ですが、ジオラマを作るときに橋とか地面とかの本当の色がいまいち分からないので、本物の物の測色をしたいと思っていたのですが、測色器は安くても数万円します。秋月にカラーセンサーモジュールが売っていたので、買ってきて、ArduinoNanoとくっつけて、動かしてみることにしました。
 はじめは、
(1)物を測色する。
(2)パソコン上で同じ色を作るようにしようと思って、モニターを測色器で測色しながらフィードバックさせて、モニターに同じ色を作る。
(3)モニターの色を見ながら、ジオラマ用の色を調合して塗る。
とか考えていたのですが、いろいろなサイトで同じようなことが書いてありますが、このカラーセンサーは強い白色LED光を当てて、その反射で計測するので、(2)の液晶の色味を見ることは難しかったです。
 白色LED光は消せるのですが、消した状態で、液晶モニターの色をみたら、(うちのノートパソコンのせいかもですが)青系は割と同じように変化するのですが、緑系は、ずれてきて、赤系は壊滅的に違う色に変換されてしまいました。ですので、水色とかはいい感じに測色して画面にも同じような色をだせたのですが、赤色はどす赤くなり、黄色は黄土色に、紫色は青でした。ということで、却下です。
 で、じゃあこうしましょうと次の策を考えて、
(1)物(橋とか砂利とかコンクリとか、木とか)を測色して、RGBをメモっておきます。
(2)Amazonとかから配色カード?みたいのを買ってきて、こっちも測色しながら近いものを探します。(色カードって高いものは1万円以上するみたいです。普通の測色器買えそうになってくるかも。)
(3)その色を調合して塗ります。
という感じにしようかと思います。写真撮ってきて同じ色にすればいいんじゃないの?と思う方もいるかもですが、写真で撮った物の色が晴れの日と曇りの日と朝と昼と夕方で違うので、そこをどうにかしたいと思っているわけです。
 で、まあ、これが今回の実験用のブレッドボードです。配線はまんまエイダフルートのものです。IntとLEDを短絡させて、I2C経由で白色LEDをOn,Offさせています。でいいのかな?
re_DSC02146.jpg
 スケッチもそこから落とせるライブラリのColorViewをほぼそのまま使っています。
余り速く測色しなくてもよいので、インターバルだけ
TCS34725_INTEGRATIONTIME_50MS → TCS34725_INTEGRATIONTIME_154MS
として、それに伴い、Loop内のDelayを
/delay(60); // takes 50ms to read → delay(200);
になんとなく変更しています。そんな必要あるか?
 また、受け側のソフトはかなり久しぶりに.netのVBで作りました。でも、COM通信部分でときどきエラーが起きます。なんだろう?
 一応、白をRGB=(255,255,255)、黒をRGB(0,0,0)にキャリブレーションする計算式を入れて、このTCS34725というセンサは照度?明度?みたいのも一緒に測っているようですが、なんかこの部分で色がいろいろと変になっているような感じもあるので、計算には入れないようにしています。
 で、ミカンを計ったら、ちゃんと、PCのほうでもミカン色になってはいます。
re_DSC02147.jpg
 が、キャリブレーションとかセンサと物の距離、角度などで、色味が結構変わってしまうため、これをまじめにやるなら、箱が必要です。
 ちゃんとそとで測るなら、電池とか液晶とか必要です。
 そこをやるのだろうか?どうしようか?



コメント(2) 

コメント 2

Yaasan

厚手の黒い布をセンサーの周りに貼って対象物を覆って測る、簡易暗室みたいにすればどうでしょうか。
by Yaasan (2017-10-30 08:24) 

fujigaya2

コメントありがとうございます。

http://akizukidenshi.com/catalog/g/gm-06814
こっちを買っておけば、周りを遮光できましたね。
適当に筒とか箱とか作って、やろうと思います。
by fujigaya2 (2017-10-30 23:37) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。