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/

回路図1
回路図1

※電源供給(+):物理番号(22) GPIO25
 電源供給(-):物理番号(20) GND

では、プログラムします。

1.事前に、プログラムを保存するフォルダを作成しておきます。
 ※私の場合、/home/pi/Documents 内に、
   フォルダ名:"Python_Lang1"
  を作成します。
   保管場所:"/home/pi/Documents/Python_Lang1"
  となります。

フォルダ作成
フォルダ作成

2.RaspberryPiメニュー→「プログラム」
   →「Thonny Python IDE」を選択し、起動します。

Thonny 起動
Thonny 起動

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"
 として保存します。

プログラムファイルの保存1
プログラムファイルの保存1
プログラムファイルの保存2
プログラムファイルの保存2

8.実行します。
 アイコンメニュー「Run」アイコンを選択します。

プログラムの実行
プログラムの実行

Raspberry Pi に接続した LEDが点滅すれば完成です。

実際の回路1
実際の回路1

実行中のプログラムを終了(中断)する場合は、
アイコンメニュー「Stop」アイコンを選択します。

実行プログラムの終了(中断)1
実行プログラムの終了(中断)1

※Thonny の Shell 窓から、
  "Ctrl" + "c" 
 を発行しても終了(中断)できます。

実行プログラムの終了(中断)2
実行プログラムの終了(中断)2

続いて、
GUI 環境の、開発環境 Geany を使ってみます。

回路は図の通りです。

回路図2
回路図2

※電源供給(+):物理番号(19) GPIO10
 電源供給(-):物理番号(20) GND
※回路は GPIO の指定以外は、
 Thonny のものと同様です。
 ( GIPO25 → GPIO10 )

1.RaspberryPi メニュー→「プログラム」
   →「Geany」 を選択し、起動します。

Geany の起動
Geany の起動

2.プログラム記述用のファイルを準備します。
 メニュー「ファイル」→「New」を選択し、
 新規ファイルを準備します。

新規ファイルの準備
新規ファイルの準備

3.開いた untitled タブ ファイルに、
 数行のプログラムを記述します。

プログラムの記述1
プログラムの記述1
# coding: UTF-8

# インポート宣言
import RPi.GPIO as GPIO
from time import sleep
プログラムの記述2
プログラムの記述2

4.プログラムファイルを保存します。
 メニュー「ファイル(F)」→「保存(S)」を選択し、
 開いた、ファイルを保存設定画面で、
 事前に作成した保存フォルダを選択し、
  ファイル名:"led_test3.py"
 として保存します。

プログラムファイルの保存1
プログラムファイルの保存1
プログラムファイルの保存2
プログラムファイルの保存2

 保存のあと、ファイル名がタブに表示され、
 記述内容にPython言語文法が適用されます。

Python言語文法が適用されたプログラム
Python言語文法が適用されたプログラム

5.言語設定を確認をします。
 メニュー「ビルド(B)」→「ビルドコマンドを設定(S)」を選択し、
 開いた、ビルドコマンドを設定画面の
 コマンドを実行項目のExecte欄が、
  python "%f"
 と設定されていることを確認します。

言語設定の確認1
言語設定の確認1
言語設定の確認2
言語設定の確認2

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)」を選択し、再保存します。

プログラムファイルの再保存1
プログラムファイルの再保存1

 または、
 メニュー「ファイル(F)」→「保存(S)」を選択し、
 再保存します。

プログラムファイルの再保存2
プログラムファイルの再保存2

8.実行します。
 アイコンメニュー「Run」アイコンを選択します。

実行選択
実行選択

Raspberry Pi に接続した LEDが点滅すれば完成です。

実際の回路2
実際の回路2

実行を終了(中断)する場合は、
実行時に開いたターミナル画面から、
 "Ctrl" + "c" キー を発行(打鍵)します。

実行プログラムの終了(中断)
実行プログラムの終了(中断)

最後に、SSH を使用し、遠隔 CUI で、
プログラム記述と実行をしてみます。
※私の場合、Windows PC からの操作です。
 画像では、Tera Term、RLogin (ターミナルソフト)を使用しています。

回路は図の通りです。

回路図3
回路図3

※電源供給(+):物理番号(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/

ターミナルの起動1
ターミナルの起動1
ターミナルの起動2
ターミナルの起動2
ターミナルの起動3
ターミナルの起動3

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 ファイル名
  とします。

nano 初期画面
nano 初期画面

 vi の場合、
  pi@raspberrypi:~/Documents/C_Lang2 $ vi
  ・起動時に特定のファイルを開く場合は、
    vi ファイル名
  とします。

vi 初期画面
vi 初期画面

 ※両エディタとも、コマンドでの操作が主体なります。
  それぞれの操作には違いがありますので、操作方法は
  ネット等でお調べ下さい。
  私は解説できるほど使い熟せておりません。

4.プログラムを記述します。
 最初は事前にメモ帳などWindowsのエディタで作成して、
 マウス操作でコピー&ペーストされるのが良いと思います。
 ※本来、PC上でファイルが出来ている場合には、
  ファイル転送(FTP)ソフト等で転送するのが一般的です。

WinSCP ソフトによるファイル転送例
WinSCP ソフトによるファイル転送例

 ※次のプログラムは 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 の場合、マウス操作でペーストできます。

nano での記述(貼り付け)
nano での記述(貼り付け)

 ・vi の場合は、"i" キーを一度押し、
  その後マウス操作でペーストできます。
  ※そのままでも張り付きますが、
   "i" 入力後が良いと思います。

vi での記述(貼り付け)
vi での記述(貼り付け)

5.記述したファイルを保存します。
 ・nano の場合は、
  "Ctrl" + "o"(オー) と打鍵し、
  最下位の書き込むファイル:欄に
   "led_test2.py"
  と入力し"enter" キーを押します。

nano 記述ファイルの保存
nano 記述ファイルの保存

 ・vi の場合は、
  "esc" キーを打鍵し、":" キーを押します。
  最下位の : の後に
   "w led_test2.py"
  と入力し "Enter" キーを押します。

vi 記述ファイルの保存
vi 記述ファイルの保存

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が点滅すれば完成です。

実際の回路3
実際の回路3

実行を終了(中断)する場合は、
SSH のターミナル画面から、
 "Ctrl" + "c" キー を発行(打鍵)します。

実行プログラムの終了(中断)
実行プログラムの終了(中断)

SSH の接続解除(終了)は、
 ターミナル画面から
  "exit"
 と入力します。
  pi@raspberrypi:~/Documents/Python_Lang2 $ exit

ターミナル画面の終了
ターミナル画面の終了