<Raspberry Pi-19>

電子工作ですが、定番のLチカ(LED ON/OFF)をやってみたいと思います。

実験するLEDのON/OFFの様子です。画像をクリック
して見てください。



このRaspberry Piの、電子工作で使用する便利なツールを紹介します。

Raspberry Pi Zero/2B/B+/A+用 ブレッドボード接続 T型基板キット(20cm 40ピンリボンケーブル付き)
(参考 アマゾンから購入しました、送料無料で1095円)

キット内容                                  T型両面基板表面
 

T型両面基板裏面
 

T型両面基板にコネクタとピンをを半田付け                    半田付けしたT型両面基板裏側
 

T型両面基板をブレッドボードに差し込む                     実験のためのGPIO4にLED、抵抗を配線
 


Lチカ(LED ON/OFF)にはいくつか方法がありますが、ここではRaspberryのO.Sをインストすると標準で付いてるPythonプログラム言語で行います。
(ここでのO.Sは、Raspbianを使っています。)

まず、RPI.GPIOライブラリのアップデート、Pythonのライブラリ管理ソフトのインストをします。

LXTerminalから
1.) sudo apt-get update

2.) sudo apt-get upgrade
     続行しますかy/nが出た場合はyリターン

3.) sudo apt-get install python-dev
      続行しますかy/nが出た場合はyリターン

4.) sudo apt-get install python-pip

5.) pip --version 
  pipバージョンの確認

6.) sudo pip install --upgrade pip
      続行しますかy/nが出た場合はyリターン

7.) LXTerminalを一旦閉じて、再度LXTerminalを起動

8.) pip --version 
  pipバージョンの確認
以上で終わりです。


ここから、プログラム作成と実行です。

GPIO制御は管理者権限でないと出来ませんのでLXTerminalから
sudo suでrootログインしてからstartxでX Windowにします(デスクトップ環境)

Menu→プログラミング→Python2


File→New Window


開いた新しいWindowにプログラムを書く


File→Save


ファイル名入力→Save




Run→Run Module F5 (プログラムの実行)


プログラム停止はキーボードからCTRL+C


CTRL+Cで停止した時、右側赤色文字のメッセージが出ます


再度プログラム実行すると、続いて右側赤色文字のメッセージが出ます



<このプログラムについて>
------------------------------------------------------------------------------------
import RPi.GPIO as GPIO		#RPi.GPIOモジュールをインポートして名前をGPIOにする
from time import sleep		#timeモジュールから関数sleepをインポート

GPIO.setmode(GPIO.BCM)		#GPIOのピン設定をCPUのピン名にする
GPIO.setup(4, GPIO.OUT)		#GPIOの4を出力にする
n=0
while n==0:			#nが0なら繰り返す
    GPIO.output(4, GPIO.HIGH)	#GPIOの4をHにする
    sleep(0.5)			#0.5秒待ち
    GPIO.output(4, GPIO.LOW)	#GPIOの4をLにする
    sleep(0.5)			#0.5秒待ち
------------------------------------------------------------------------------------
プログラムの中でRPi.GPIOとtimeモジュールのインポート設定は下のようにも出来る。
import RPi.GPIO as GPIO→import RPi.GPIO
from time import sleep→import time

そのプログラムは下のとおりです。
------------------------------------------------------------------------------------
import RPi.GPIO
import time

RPi.GPIO.setmode(RPi.GPIO.BCM)
RPi.GPIO.setmode(RPi.GPIO.BCM)
RPi.GPIO.setup(4, RPi.GPIO.OUT)
n=0
while n==0:
    RPi.GPIO.output(4, RPi.GPIO.HIGH)
    time.sleep(0.5)
    RPi.GPIO.output(4, RPi.GPIO.LOW)
    time.sleep(0.5)
------------------------------------------------------------------------------------
見てわかるように、次のところはコーディングが長くなる
GPIO.setmode(RPi.GPIO.BCM)→RPi.GPIO.setmode(RPi.GPIO.BCM)
sleep(0.5)→time.sleep(0.5)
------------------------------------------------------------------------------------

<メッセージを出なくさせるプログラム>
------------------------------------------------------------------------------------
import RPi.GPIO
import time

RPi.GPIO.setmode(RPi.GPIO.BCM)
RPi.GPIO.setup(4, RPi.GPIO.OUT)
n=0
try:						#エラー発生可能位置に書く
    while n==0:					#  →→→→→→→
        RPi.GPIO.output(4, RPi.GPIO.HIGH)       # ↑nが0のあいだ↓
        time.sleep(0.5)             # ↑はここを繰り↓
        RPi.GPIO.output(4, RPi.GPIO.LOW)     # ↑返し     ↓
        time.sleep(0.5)			        #  ← ← ← ← ←


except KeyboardInterrupt:			#CTRL+Cを検出したらここに飛ぶ
    pass					#何もしない処理
RPi.GPIO.cleanup()				#GPIO開放
------------------------------------------------------------------------------------

<上記プログラムのtryとwhileとexceptについて>

下の画像で示しているプログラムと実行結果を見ると分るようにa=10/nでn=0になるとにエラーが発生してexceptに飛びます。

プログラム                    実行結果



Raspberry Pi-20に続く・・・

Raspberry メニューに戻る