このエントリーをはてなブックマークに追加


ラズパイ公式7インチディスプレイの輝度調整スクリプトなど

ラズパイ公式7インチタッチディスプレイを手に入れました。

ラズパイ公式7インチディスプレイ(Amazonへのリンク)

ディスプレイの輝度調整が簡単にできないのでPythonにてスクリプトを作成しました。
本資料では、本スクリプトの紹介および使い方とスクリプトの仕組みを紹介します。


スポンサーリンク

参考記事

使用した環境

輝度調整 Python スクリプト

ラズベリーパイ公式7インチタッチディスプレイの輝度調整用スクリプトは以下の通りです。
他のディスプレイでも輝度調整のPATHを確認すれば(同じ?)同様に動作すると思います。
(HDMI接続除く)

動作画面のキャプチャ

スライダーを動かすとディスプレイの輝度が変化します。

02.png

デスクトップ全体のキャプチャです。

01.png

輝度調整 Python スクリプト

輝度調整のPythonスクリプトは以下の通りです。
スクリプト:filebrightness.zip

#!/usr/bin/python3
import subprocess
from tkinter import *

PASSWORD=""
#PASSWORD="raspberrypi"
BRIGHTNESS_PATH='/sys/class/backlight/rpi_backlight/brightness'
FROM=15
TO=255

def get_brightness():
    if '' == PASSWORD:
        cmd = 'sudo sh -c "cat ' + BRIGHTNESS_PATH + '"'
    else:
        cmd = 'echo "' + PASSWORD + '" | sudo -S sh -c "cat ' + BRIGHTNESS_PATH + '"'
    p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout_data, stderr_data = p.communicate()
    return stdout_data.decode('ascii').strip()

def set_brightness(self):
    v = str(var.get())
    if '' == PASSWORD:
        cmd = 'sudo sh -c "echo ' + v + ' > ' + BRIGHTNESS_PATH + '"'
    else:
        cmd = 'echo "' + PASSWORD + '" | ' + 'sudo -S sh -c "echo ' + v + ' > ' + BRIGHTNESS_PATH + '"'
    p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    #print("Debug:" + cmd)
    stdout_data, stderr_data = p.communicate()

root = Tk()

var = IntVar()
var.set(get_brightness())
scale = Scale( root,
               variable=var,
               from_= FROM,
               to = TO,
               length = 250,
               orient = 'h',
               command = set_brightness)
scale.pack()
button = Button(root, text = "Quit", command = sys.exit)
button.pack()

root.title("brightness")
root.update_idletasks()
w = root.winfo_screenwidth()
h = root.winfo_screenheight()
size = tuple(int(_) for _ in root.geometry().split('+')[0].split('x'))
x = w/2 - size[0]/2
y = h/2 - size[1]/2
root.geometry("%dx%d+%d+%d" % (size + (x, y)))

root.mainloop()

使用方法

  1. 上記のスクリプトをダウンロードしてください。
  2. ダウンロードしてファイルを任意の場所に移動またはコピーしてください。
  3. LXTerminal t.png を起動します。
  4. brightness.pyが存在するディレクトリに移動します。
  5. 以下のコマンドでスクリプトに実行権限を付与します。
    chmod +x brightness.py
  6. 以下のコマンドを実行すると本スクリプトが動作します。
    ./brightness.py

ショートカットキーなどの設定で動作するように設定すれば便利になると思います。

スクリプトの説明

以下にスクリプトについて注意事項等を記します。

輝度調整方法

液晶ディスプレイの輝度は、ノートパソコンなども以下の場所に輝度の値が格納されています。
xxxxxxxxxの部分は皆さんの環境によって読み替えてください。

/sys/class/backlight/xxxxxxxxx/brightness

このファイルをcatすれば現在の輝度値が表示されます。
echoで値を書込めば輝度の調整が可能となります。

  • 輝度の値を取得
    cat /sys/class/backlight/xxxxxxxxx/brightness
  • 輝度の値を設定
    sudo sh -c 'echo 100 > /sys/class/backlight/xxxxxxxxx/brightness'

輝度の値の範囲はハードウェアによって異なるようです。
なので、まずは輝度の値を取得し、適当な値を設定し上限を確認すれば良いと思います。
上限を超えた値を設定するとI/Oエラーとなるはずです。

sudoでパスワードを必要とする場合

次に、本スクリプトでは、sudoでパスワードを渡さないようになっています。
パスワードを設定すれば sudo -S によりパスワードを渡すようになります。
通常、Raspbianをインストールすると、sudoコマンドでパスワードを問い合わせない設定となっているため、
sudo -Sを使用しないようになっています。
なので、パスワード必須の設定をRapbianにしている場合は、スクリプト内のPASSWORDを設定してください。

Tkinter - Python interface to Tcl/Tk

Rapbianでは、デフォルトでpython3-tkがインストール済みでした。
もし、インストールが必要な場合は、以下のコマンドでパッケージをインストールしてください。

sudo apt install python3-tk

以上、ラズベリーパイ公式インチタッチディスプレイの輝度調整Pythonスクリプトでした。


スポンサーリンク

添付ファイル: filebrightness.zip 578件 [詳細] filet.png 385件 [詳細] file02.png 370件 [詳細] file01.png 393件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-05 (月) 21:55:39