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