Tips

このページはまだ編集中です。


ALS(Automatic Light Sensor)の解説


まったく需要のなさそうなALSの設定値に関して解説する。

【参考文献】

  1. (Need Root)Enable Automatic Light Sensor on Xperia Ray
  2. AS3676のデータシート

【前準備】

ALSを有効にするには、参考文献1.)に書いてある手順のうち、以下の箇所の変更が必要。
echo 0,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
↓変更
echo 3,2,2,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]

「echo x,x,x,x」の説明については後述。

【$dev/lcd-backlight/als/paramsの各paramの説明】

詳しくは参考文献2.)の「8.4.8 ALS - Ambient Light Sensing」参照

  • [gain]
[gain]は光の明るさを検出した何倍で数値に変換するか。
調整範囲は0~3で、0=1/4、1=1/2、2=1、3=2、の意味。
0がもっとも検出範囲が狭くなるので、明るい場所でよく使うなら0を設定する。
逆に暗めの部屋なら3を使用する。
  • [filter_up],[filter_down]
[filter_up],[filter_down]は、明るさを検出する速度(検出周波数?)を変更するもの
調整範囲は0~7で、各値は0から、0.25Hz, 0.5Hz, 1Hz, 2Hz, 4Hz, 8Hz, 16Hz, 32Hz、となっている。
高い値に設定するとその分電池を消費する(と思われる)ので、好みで設定する。
  • [offset]
[offset]は、検出した数値にいくつ+するか。
調整範囲は0~255。オフセットは必要なときだけ設定すればいいので、とりあえず0固定で良い。

【ALS値について】

ALS値は、明るさ(センサーから取得した値)×[gain]+[offset]、という式で表せる。
最小値は0で、最大値は255。

現状ALS値がどの値を示すかは標準の電話アプリから「*#*#7378423#*#*」を入力し
Serviceが起動するので、「Service tests」→「Ambient Light Sensor」を選択するとわかる。

この値は上述のとおり、[gain]と[offset]に設定した値で変化する。
本体右上(よく見ると丸い穴が見える)のセンサーをふさいで見ると、ALS値が0になることが確認できるはず。

ちなみに、[gain]を0に設定した場合、蛍光灯の弱い光ではあまり変動しなくなるので、
よく使用する場所で低い範囲でしか値が変動しない場合は、[gain]を上げたほうが調整がしやすい。

【als_curve.confの説明】

詳しくは参考文献2.)の「Figure 23. Ambient Light Sensor internal circuit」参照

als_curve.confには行ごとにALSカーブが設定されている。
stockでは16段階(16行分)の設定があるが、「画面の明るさ」を最低に設定した場合一番上のALSカーブが使用され、
明るさを最大にした場合は一番下のALSカーブが使用される。

各行ごとに
group, y0, y3, k1, k2, x1, x2
の形式をとる。

  • group : ALSカーブのグループ番号。1しかないみたいなので変更する必要なし
  • y0 : 画面の明るさの最小値(256で割られた値)
  • y3 : 画面の明るさの最大値(256で割られた値)
  • k1 : 傾き1。座標(x1,y0)からk1/32という傾きでカーブが引かれるみたい
  • k2 : 傾き2。座標(x2,x2*k1/32?)からk2/32という傾きでカーブが引かれるみたい
  • x1 : 傾き1のカーブを使用し始める閾値(ALS値)。ALS値がx1以下なら明るさはy0固定
  • x2 : 傾き2のカーブを使用し始める閾値(ALS値)。

※注意・・説明は推測含みます。

実際に今の設定でy0、y3の明るさがどのくらいになるのかは、
右上のセンサーを指で塞ぐか懐中電灯等で強い光を当ててみるとわかる。

【ALSカーブの調整例】

画面の明るさを最小にした場合は als_curve.conf にあるうち一番上の行の
1,6,6,0,0,10,38
が使用される。

この設定の場合、y0,y3が6なので明るさは6固定ということになる。
6は真っ暗な部屋で使用するにはいいが、部屋の電気をつけると暗すぎてよく見えない。

一つ上の設定は
1,13,61,10,13,10,38
だが、これだと自分は少々明る過ぎると感じたので、これよりは明るさを抑えた設定を目指すことにした。

自分の場合、最小値はもともとの6で問題なかったので、最大値だけを変更することにする。
何回か値を変えてリブートを繰り返し、25ぐらいが適当と判断。

最終的に
1,6,25,10,13,10,38
とした。


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2012年11月10日 15:14