ラズベリーパイ入門講座3(pythonの実行)
2024年4月20日前回は、VNC Viewerでラズベリーパイの画面を表示して、遠隔操作する方法を学びました。
今回は、言語設定と簡単なpythonプログラムの実行を行います。
言語を日本語に設定する
デフォルトは、英語になっているので日本語に設定します。
VNC ViewerでVNC接続をして、ラズベリーパイの画面が表示されている状態にしてください。
左上のロゴマーク→「Preferences」→「Raspberry Pi Configuration」を順番に進む
「Localisation」タブ内に変更箇所があります。
Locale:「Set Locale」「Language」→「ja(Japanese)」に設定する
Timezone:「Set Timezone」→「Asia」「Tokyo」に設定する
設定が完了したら、再起動しましょう。
再起動後に、日本語化されていれば成功です。
pythonプログラムを実行する
デフォルトアプリのThony(トニー)を使用して、ラズベリーパイでpythonプログラムを作成します。
「左上のロゴマーク」→「プログラミング」→「Thonny」を選択
Thonnyは、画面が上下に分割されていて、上はプログラムを書くための場所、下は命令を実行したり、実行結果を見たりするための場所です。
簡単なプログラムの作成、実行はThonnyで行えます。
今回は、簡単なpythonプログラムをいくつか実行してみましょう
上側の枠に、 print(“hello”) と入力。
「Save」を押して、ファイルを保存します。 ファイル名はhello.pyとしておきます。
その後、「Run」でファイルを実行します。
正常に実行されると、下の枠に、 hello と表示されます。
ここで入力した「print」というのは、右側にあるカッコの内容を表示させるための命令です。
from datetime import datetime
date = datetime.now().strftime(“%Y/%m/%d %H:%M:%S”)
print(date)
from datetime import datetime 日時を取得するためにdatetimeの機能を読み込み
now() 現在の日時を取得
strftime() 取得した日時を見やすいようにフォーマットしています
print() 日時を表示
日時の取得は、ラズベリーパイのカメラモジュールで撮影するときにも使用します。
ラズベリーパイの上限温度は85度で、80度に達するとthrottled backといってクロック周波数と電圧を下げて温度制御します。
高温の状態が続くと、CPUへの負担がかかるので注意が必要です。
そのため、処理が増えてくると温度管理は重要になってきます。
まずは、LX Terminalで温度を取得してみましょう。
ターミナルとは、キーボードからのコマンド入力でコンピューターを操作するためのアプリケーションです。
LX TerminalはRaspbianに標準で用意されているターミナルです。
デスクトップの左上から4番目の「LX Terminal」アイコンをクリックします。
Raspberry Piなどで使用される vcgencmd コマンドを使ってCPU温度を取得します。
$ vcgencmd measure_temp
CPUの温度が取得できました。
このコマンド(vcgencmd measure_temp)を、pythonプログラムで実行してラズベリーパイのCPU温度を取得しましょう。
Thonyを起動してコードを入力します。
import subprocess
temp = [“vcgencmd”, “measure_temp”]
result = subprocess.run(temp, capture_output=True, text=True)
print(result.stdout)
import subprocess Pythonから他のプログラムやコマンドを実行するためのモジュールを読み込んでいます。
temp vcgencmdコマンドとその引数をリスト形式で定義しています。
subprocess.run() tempに格納された値を使用して、指定されたコマンドを実行します。
print(result.stdout) subprocess.run() 関数の実行結果として得られた内容を表示します。CPU温度を文字列として出力します。
上記の画像の結果では、CPU温度が46.7℃でした。
1秒ごとにこのプログラムを実行することで、CPU温度の細かい変化が分かります。
import time
temp = [“vcgencmd”, “measure_temp”]
result = subprocess.run(temp, capture_output=True, text=True)
while(True):
print(result.stdout)
time.sleep(1)
import timeモジュールのtime.sleep()メソッドで1秒ごとにwhile文がループするようになっています。
ラズベリーパイのテストをするときにも、このように定期的に温度表示することで、処理の負荷が分かります。
今回はThonyを使用して、簡単なpythonプログラムを実行しました。
次回は、ラズベリーパイのカメラモジュールを使ったプログラムを説明します。
おつかれさまでした。