#author("2019-08-03T19:00:17+09:00","","")
#author("2019-08-03T20:44:37+09:00","","")
#navi(../)
* ラズパイ公式7インチディスプレイの輝度調整スクリプトなど [#oaf98f6a]
ラズパイ公式7インチタッチディスプレイを手に入れました。~
-[[ラズパイ公式7インチディスプレイ(Amazonへのリンク)>https://amzn.to/2ZpjUrL]]
>[[ラズパイ公式7インチディスプレイ(Amazonへのリンク)>https://amzn.to/2ZpjUrL]]~

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

#htmlinsert(minipc-top.html)
#contents

* 参考記事 [#wa48a3e1]
-[[python – Tkinterでウィンドウを画面の中央に配置する方法>https://codeday.me/jp/qa/20190105/112199.html]]
-[[Python の subprocess で出力を受け取るときは communicate() を使おう>https://qiita.com/mokemokechicken/items/a84b0aa96b94d1931f08]]

* 使用した環境 [#f8a5c566]
- Raspberry Pi 3 Model B~
[[Raspberry Piの購入(Amazonへのリンク)>https://amzn.to/2IIrAhM]]
- Raspbian Buster~
-ラズパイ公式7インチタッチディスプレイ~
https://raspberry-pi.ksyic.com/page/page/pgp.id/4

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

** 動作画面のキャプチャ [#r728154a]

スライダーを動かすとディスプレイの輝度が変化します。
#ref(02.png)


デスクトップ全体のキャプチャです。
#ref(01.png)

** 輝度調整 Python スクリプト [#x2089c98]
輝度調整のPythonスクリプトは以下の通りです。~
''スクリプト:''&ref(brightness.py);
 #!/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()

** 使用方法 [#if1fcb97]
+ 上記のスクリプトをダウンロードしてください。
+ ダウンロードしてファイルを任意の場所に移動またはコピーしてください。
+ LXTerminal &ref(t.png); を起動します。
+ brightness.pyが存在するディレクトリに移動します。
+ 以下のコマンドでスクリプトに実行権限を付与します。~
 chmod +x brightness.py
+ 以下のコマンドを実行すると本スクリプトが動作します。
 ./brightness.py

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

* スクリプトの説明 [#c0ef5a4b]
以下にスクリプトについて注意事項等を記します。

** 輝度調整方法 [#hf90ad31]
液晶ディスプレイの輝度は、ノートパソコンなども以下の場所に輝度の値が格納されています。~
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でパスワードを必要とする場合 [#p7b7538e]
次に、本スクリプトでは、sudoでパスワードを渡さないようになっています。~
パスワードを設定すれば sudo -S によりパスワードを渡すようになります。~
通常、Raspbianをインストールすると、sudoコマンドでパスワードを問い合わせない設定となっているため、~
sudo -Sを使用しないようになっています。~
なので、パスワード必須の設定をRapbianにしている場合は、スクリプト内のPASSWORDを設定してください。

** Tkinter - Python interface to Tcl/Tk [#v624c5f0]
Rapbianでは、デフォルトでpython3-tkがインストール済みでした。~
もし、インストールが必要な場合は、以下のコマンドでパッケージをインストールしてください。
 sudo apt install python3-tk


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

#htmlinsert(minipc-btm.html)



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS