2014年4月17日

Raspberry Pi の X のスクリーンブランキングを禁止する

Raspberry Piのビデオ端子(コンポジットまたはHDMI)にXサーバを走らせることができる。R Piでグラフィクスを使い方を色々検討してみたが、汎用性(他のプラットフォームでシミュレーションができる)などを考えると一番楽そうなのは結局Xを使うことのようだ。

残念なことに、デフォルトではスクリーンブランキングが働き、表示開始数分後には真っ暗になってしまう。

ネットでいろいろブランキングに禁止方法を探したが、最終的にたどり着いたのはXサーバの起動時にオプションを与える方法。これは表示のみのアプリケーションなので、ついでにXカーソルも隠しておく。

# X -s 0 -dpms -nocursor

これを起動時に自動的に行うには、/etc/lightdm/lightdm.conf の以下の行を変更すればよいらしい(まだ試していない)。

[SeatDefaults] 
xserver-command=X -s 0 -dpms -nocursor

で、RPiとXで何をしようとしているかと言うと、テレビの足元に置く天気予報+Caller ID(日本の「ナンバーディスプレイ」に相当)付ディジタル時計を実現したいのだ。小生は時計の正確性については一種病的なこだわりがあるが、手頃な値段の置時計型電波時計の市販品はあまり多くない上に、バックライトなしのLCDまたはオンデマンドつまりボタンを押したときだけ発光するLCDしかなく、我が家のように割と薄暗い家族居間で2~3mの距離から見るテレビの足元に置くには役に立たない。

ちょっと考えるとAndroidタブレットでできそうなものだが、タップしかできないUIは「置時計」には使えないしスクリーンサイズも価格も大げさ過ぎる。Amazon.comを見ながらいろいろ考えた結果思い付いたのは、車載カメラ用のLCDモニタ。3.5~4.5インチサイズで$20前後と手頃感言うことなし。

実際に1台手に入れた。RPiのコンポジットビデオ端子に繋ぎ、実験用電源で12Vを与えると快調に動作する。LCDが大したことないので、コントラスト、特に斜めから見たときの背景が黒くないなどの問題はあるが十分実用になる。実験したところ、電源電圧を5Vまで落としても動作するのでUSB用から電源も取れそうだが、RPiのUSBは外部への電源供給があまり余裕がないので別電源にした方がよいと思う。と言うことで、USB電源2系統付きのACアダプタも注文した。

この手のLCDモニタは、なぜか480x234の物理ピクセルを16:9の画面に配置する矩形ピクセル仕様で、入力は640x480の論理ピクセルとややこしいが、どうせ実際の画面レイアウトは実験的に決めるしかない。

取り敢えず簡単に時計を表示するには、以下のコマンドを走らせる 。

# DISPLAY=:0 xclock -digital -update 1 -strftime '%H:%M' -face curier-116:bold -foreground green -background black &
# DISPLAY=:0 xclock -digital -geometry +500+55 -update 1 -strftime '%S' -face curier-72:bold -foreground green -background black &

こんな感じ。

フォントだとかいろいろな面倒はありそうだが、ImageMagickとかと組み合わせて、何となくスクリプトだけで目的を達成できそうな感じがしてきた。

1 件のコメント:

  1. Pendant Pendant Tint Ceramic Aluminum - iTaniumArts
    Iron oxide iron oxide titanium body armor in this stainless titanium septum ring steel pendant is used to enhance the craft of jewelry. womens titanium wedding bands It titanium bars is ideal titanium nose hoop for jewelry jewelry lovers as it is ideal for $34.95 · ‎In stock

    返信削除