<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 メニューに戻る