PCのディスプレイの輝度を周囲の明るさで自動調整する件。まず、一番重要な、明るさを(PCで)取得する方法について考えた。いろいろ調べているうちに、結構安く・手軽に実現できそうなことが分かった。

最初は、光センサが付いているスマートリモコン(例: Nature Remo 3, sRemo-R3)から取得することを検討したが、高い(5千-1万円)うえに僕の求める機能・性能が今ひとつなのと評判が悪い(例: クラウドサーバが停まると何もできない、不安定・壊れる、精度が悪い、ルータに繋がらない、サポートが悪い。 注: これら全部が両方に当てはまる訳でなく分散しているが、両方に当てはまるものもある)ので、却下した。

次に、光センサを調べていたら、秋月に 明るさを(パルスの)周波数に変換して出すセンサがあり、それならPCのサウンド入力で取り込めそうな気がした。しかも、2個で400円と安い(照度センサとしては高い)。ただ、出力の周波数が最大約600kHzなので そのままでは無理で、パルスを分周するか、入る光を暗くするフィルタを付けて周波数を下げる必要がある。

どうしてそんなに高い周波数まで使うようにしたのか想像すると、精度を高めたいからではないか。ただ、これだとソフトで手軽に扱うのが難しいから、精度が悪くてもいいから低周波(例: 10kHzまで)の製品があればいいと思う。

気になることはあるものの、とりあえずそのセンサを使おうと思い、電源をどうするか考えていて、PCのVGAコネクタ(D-sub 15ピン)から出ている気がしたので調べたら、5Vが出ている可能性がある(マザーボード次第)うえに、なんと、DDC用にI2Cのピンもあることが分かった。

試しにVGAコネクタにディスプレイを繋いだらI2Cを認識したので、確実に出ている。また、5Vも出ていた。

VGAコネクタのI2Cが使えれば、USBから変換しなくても済むのでI2C-USBアダプタ(買おうとしていたものは約2千円)が不要になり、I2Cの光センサ(: 正確にはPCF8591を使ったセンサーモジュール)をVGAコネクタのI2Cと5Vのピン、GNDも合わせて全部で4本に繋げば(下図参照)動かせて、明るさが取れる。光センサモジュールだけなら500-600円程度で済む。

ディスプレイ輝度の自動調整システム: HW構成図 (案)

VGAのI2Cが使えるか調べたら、同じようなことをされた方が居たので、やればできそうなことは ほぼ確実だ。

ちなみに、PCの中には他にもI2Cのバスがいくつかある。VGAのに気付く前に調べた時、メモリにも通っているのでDIMMに線を付けてI2Cデバイスを繋げられるようにした方が居たが、さすがにリスクが高過ぎるし不便(PCの電源を切らないとI2Cデバイスを着脱できない)なので見送った。

この方法ではI2C-USBアダプタを使わないため、USB経由でI2Cにアクセスするための特別なドライバ(I2C-USB変換チップに提供される)や手順が不要で、標準的なVGAのドライバでできるので手軽だし、確実性も高い。ただし、VGA出力のないPCでは使えないが、まだ多くの機種に付いてそうだ。

(7/17 15:44) その後、DVIやHDMIコネクタにもDDC用にI2Cの信号が出ていることが分かった。DVIでは、名前が"DDC clock"のように書いてあったので気付かなかった。また、5Vも出ているので、VGAのないPCでも この方法は使えそうだ。

コストとしては周波数に変換するセンサのほうが安いが、安定性や確実性を考えるとI2Cの方が良さそうだ。また、パルス出力は一種の音なので、オーディオに雑音が入る可能性もあるからできるだけ避けたい。

まあ、I2Cだって雑音が入る可能性はあるが、オーディオ以外の音(しかもパルス)がPCに入るのは、気分的に嫌な感じがする。

詳しく調べると、手持ちのVGAケーブルは ご丁寧にも5Vのピン(9番)が抜いてあって※、それを何とかしなくてはならない(全部のピンの繋がった、スリムで柔らかいケーブルを買うつもり)が、まあ、全部で千円前後でできそうだ。

※EIZOのディスプレイ添付のもののはずで、ディスプレイがサポートしてないから抜いたのだろうが、そんな余計な気配りはしないで欲しかったw あと、添付品だから仕方ないけど、太くて硬いのも不便だ。

 

これがうまく行けば、他のI2Cのセンサ類(Arduino, Raspberry Piなど用に各種出ている)も(電源が足りる限り)並列に繋げられるので、随分いろいろできそうだ。ちなみに、上に挙げた光センサには温度センサやADC, DACも付いているので、それだけでもいろいろできる。

温度センサがあれば、他に赤外線リモコンの送信機(学習リモコン的なもの)は要るが(これもI2Cであるのではないか)、エアコンの自動制御もできるかも知れない。

もちろん、(流行りの)スマートリモコンなら元々できるし、声でも動かせるのだが、上に書いたように高い割には評判が今ひとつだし、いちいち声で指示したくないwので止めた。

 

夢は広がるが、果たしてどうなるか・・・

  •  0
  •  1

コメントを書く / Write a comment

名前 / Name    

メール / Mail 

URL