Raspberry Pi の開発環境で LED 点滅 させてみます(Python言語)
Raspberry Pi の Python 開発環境で、
GPIO ピンに接続した LED を点滅させてみます。
Raspberry Pi は、Model B、Zero を使用し、
GUI では開発環境の、Thonny、Geany を使ってみます。
また、CUI(SSH)での開発・実行を行ってみます。
各環境ともプログラムは同じです。
動作確認のため、LED 接続の GPIO 端子のみ変更しています。
まずは、GUI 環境の Thonny 利用です。
回路は図の通りです。
この回路図の作図には fritzing を利用させて頂いております。
https://fritzing.org/home/
※電源供給(+):物理番号(22) GPIO25
電源供給(-):物理番号(20) GND
では、プログラムします。
1.事前に、プログラムを保存するフォルダを作成しておきます。
※私の場合、/home/pi/Documents 内に、
フォルダ名:"Python_Lang1"
を作成します。
保管場所:"/home/pi/Documents/Python_Lang1"
となります。
2.RaspberryPiメニュー→「プログラム」
→「Thonny Python IDE」を選択し、起動します。
3.メニュー「ツール」→「Options…」を選択し、
Thonny options 画面の "インタプリタ"タブを選択します。
4.インタプリタまたは、デバイス選択から、
"The same interpreter which runs Thonny (defalt)"
を選択し「OK」をクリックします。
※ Thonny 画面下バーの右端に "Python x.x.x" と表示されて
いることを確認します
5.プログラム記述用のファイルを準備します。
メニュー「ファイル」→「New」を選択し、
新規ファイルを準備します。
6.開いた untitled タブ ファイルに、
プログラムを記述します。
# coding: UTF-8
# インポート宣言
import RPi.GPIO as GPIO
from time import sleep
# LEDに使用するGPIOピン指定
LED_PIN = 25
# GPIOピンの初期化と設定
GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
# ループ割り込み例外設定
try:
# LED点滅ループ
while True:
GPIO.output(LED_PIN, GPIO.HIGH)
sleep(0.5)
GPIO.output(LED_PIN, GPIO.LOW)
sleep(0.5)
# 例外発生時処理
except KeyboardInterrupt:
# 使用GPIOピン初期化
GPIO.cleanup(LED_PIN)
7.記述したプログラムファイルを保存します。
アイコンメニュー「Save」アイコンを選択し、
開いた、保存設定画面で、
事前に作成した保存フォルダを選択し、
ファイル名:"led_test1.py"
として保存します。
8.実行します。
アイコンメニュー「Run」アイコンを選択します。
Raspberry Pi に接続した LEDが点滅すれば完成です。
実行中のプログラムを終了(中断)する場合は、
アイコンメニュー「Stop」アイコンを選択します。
※Thonny の Shell 窓から、
"Ctrl" + "c"
を発行しても終了(中断)できます。
続いて、
GUI 環境の、開発環境 Geany を使ってみます。
回路は図の通りです。
※電源供給(+):物理番号(19) GPIO10
電源供給(-):物理番号(20) GND
※回路は GPIO の指定以外は、
Thonny のものと同様です。
( GIPO25 → GPIO10 )
1.RaspberryPi メニュー→「プログラム」
→「Geany」 を選択し、起動します。
2.プログラム記述用のファイルを準備します。
メニュー「ファイル」→「New」を選択し、
新規ファイルを準備します。
3.開いた untitled タブ ファイルに、
数行のプログラムを記述します。
# coding: UTF-8
# インポート宣言
import RPi.GPIO as GPIO
from time import sleep
4.プログラムファイルを保存します。
メニュー「ファイル(F)」→「保存(S)」を選択し、
開いた、ファイルを保存設定画面で、
事前に作成した保存フォルダを選択し、
ファイル名:"led_test3.py"
として保存します。
保存のあと、ファイル名がタブに表示され、
記述内容にPython言語文法が適用されます。
5.言語設定を確認をします。
メニュー「ビルド(B)」→「ビルドコマンドを設定(S)」を選択し、
開いた、ビルドコマンドを設定画面の
コマンドを実行項目のExecte欄が、
python "%f"
と設定されていることを確認します。
6.残りのプログラムを記述します。
※プログラムは GPIO の指定以外は、
Thonny のものと同様です。
( GIPO25 → GPIO10 )
# coding: UTF-8
# インポート宣言
import RPi.GPIO as GPIO
from time import sleep
# LEDに使用するGPIOピン指定
LED_PIN = 10
# GPIOピンの初期化と設定
GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
# ループ割り込み例外設定
try:
# LED点滅ループ
while True:
GPIO.output(LED_PIN, GPIO.HIGH)
sleep(0.5)
GPIO.output(LED_PIN, GPIO.LOW)
sleep(0.5)
# 例外発生時処理
except KeyboardInterrupt:
# 使用GPIOピン初期化
GPIO.cleanup(LED_PIN)
7.保存します。
アイコンメニュー「Save)」を選択し、再保存します。
または、
メニュー「ファイル(F)」→「保存(S)」を選択し、
再保存します。
8.実行します。
アイコンメニュー「Run」アイコンを選択します。
Raspberry Pi に接続した LEDが点滅すれば完成です。
実行を終了(中断)する場合は、
実行時に開いたターミナル画面から、
"Ctrl" + "c" キー を発行(打鍵)します。
最後に、SSH を使用し、遠隔 CUI で、
プログラム記述と実行をしてみます。
※私の場合、Windows PC からの操作です。
画像では、Tera Term、RLogin (ターミナルソフト)を使用しています。
回路は図の通りです。
※電源供給(+):物理番号(18) GPIO24
電源供給(-):物理番号(20) GND
※回路は GPIO の指定以外は、
Thonny のものと同様です。
( GIPO25 → GPIO24 )
1.Tera Term等のターミナルソフトを起動します。
SSH 設定をして Raspberry Pi に接続します。
※接続方法は、"Raspberry Pi の OS用SDカードの作成と初期設定(その2)"で記載しています。
https://shinog.jp/computer/raspberry-pi/raspberry-pi-%e3%81%ae-os%e7%94%a8sd%e3%82%ab%e3%83%bc%e3%83%89%e3%81%ae%e4%bd%9c%e6%88%90%e3%81%a8%e5%88%9d%e6%9c%9f%e8%a8%ad%e5%ae%9a%ef%bc%88%e3%81%9d%e3%81%ae%ef%bc%92%ef%bc%89/
2.プログラムを保存するディレクトリ(フォルダ)を
作成します。
※私に場合、/home/pi/Documents 内に、
フォルダ名:"Python_Lang2"
を作成します。
保管場所:"/home/pi/Documents/Python_Lang2"
となります。
ターミナルから打鍵します。
・ディレクトリの移動
pi@raspberrypi:~ $ cd Documents/
・ディレクトリの作成と確認
pi@raspberrypi:~/Documents $ mkdir Python_Lang2
pi@raspberrypi:~/Documents $ ls
・ディレクトリの移動と確認
pi@raspberrypi:~/Documents $ cd Python_Lang2
pi@raspberrypi:~/Documents $ pwd
これで、現在のカレントディレクトリが
"/home/pi/Documents/Python_Lang2"
となります。
3.プログラムを記述するため、エディタを起動します。
vi エディタや、nano エディタを使用することになります。
vi エディタの方が操作は複雑かと思います。
nano の場合、
pi@raspberrypi:~/Documents/C_Lang2 $ nano
・起動時に特定のファイルを開く場合は、
nano ファイル名
とします。
vi の場合、
pi@raspberrypi:~/Documents/C_Lang2 $ vi
・起動時に特定のファイルを開く場合は、
vi ファイル名
とします。
※両エディタとも、コマンドでの操作が主体なります。
それぞれの操作には違いがありますので、操作方法は
ネット等でお調べ下さい。
私は解説できるほど使い熟せておりません。
4.プログラムを記述します。
最初は事前にメモ帳などWindowsのエディタで作成して、
マウス操作でコピー&ペーストされるのが良いと思います。
※本来、PC上でファイルが出来ている場合には、
ファイル転送(FTP)ソフト等で転送するのが一般的です。
※次のプログラムは GPIO の指定以外は、
Thonny のものと同様です。
( GIPO25 → GPIO24 )
# coding: UTF-8
# インポート宣言
import RPi.GPIO as GPIO
from time import sleep
# LEDに使用するGPIOピン指定
LED_PIN = 24
# GPIOピンの初期化と設定
GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
# ループ割り込み例外設定
try:
# LED点滅ループ
while True:
GPIO.output(LED_PIN, GPIO.HIGH)
sleep(0.5)
GPIO.output(LED_PIN, GPIO.LOW)
sleep(0.5)
# 例外発生時処理
except KeyboardInterrupt:
# 使用GPIOピン初期化
GPIO.cleanup(LED_PIN)
※マウスによるコピー&ペーストが可能で、
キーのショートカットによる操作は難解です。
・nano の場合、マウス操作でペーストできます。
・vi の場合は、"i" キーを一度押し、
その後マウス操作でペーストできます。
※そのままでも張り付きますが、
"i" 入力後が良いと思います。
5.記述したファイルを保存します。
・nano の場合は、
"Ctrl" + "o"(オー) と打鍵し、
最下位の書き込むファイル:欄に
"led_test2.py"
と入力し"enter" キーを押します。
・vi の場合は、
"esc" キーを打鍵し、":" キーを押します。
最下位の : の後に
"w led_test2.py"
と入力し "Enter" キーを押します。
6.エディタを終了します。
・nano の場合は、"Ctrl" + "x" キーを押します。
・vi の場合は、
"Esc" キーを打鍵し、":" キーを押します。
最下位の : の後に
"q"
と入力し"Enter"キーを押します。
これでエティタが終了します。
7.実行します。
SSH のターミナル画面から、
"python led_test2.py"
と入力します。
pi@raspberrypi:~/Documents/Python_Lang2 $ python led_test2.py
Raspberry Pi に接続した LEDが点滅すれば完成です。
実行を終了(中断)する場合は、
SSH のターミナル画面から、
"Ctrl" + "c" キー を発行(打鍵)します。
SSH の接続解除(終了)は、
ターミナル画面から
"exit"
と入力します。
pi@raspberrypi:~/Documents/Python_Lang2 $ exit