ラズパイ WiringPi LED点滅


20160510_raspi_led

ラズパイで WiringPi を使ってLEDを点滅する。
ラズパイの GPIO 制御は RPI.GPIO が定番ですが。
今回は WiringPi を使います。

WiringPi はラズパイ1の BCM2835 のために、C言語で書かれた GPIO のライブラリです。
適切なラッパーにより Python などの言語に対応しています。
Arduino のライブラリに似せて設計されています。
ラズパイ2の BCM2836 にも対応しています。

インストール

(Python 開発ライブラリ)
$ sudo apt-get install python-dev
(WiringPi 本体)
$ sudo apt-get install wiringpi
(Python ラッパー)
$ sudo pip install wiringpi2

確認
バージョンの確認

$ gpio -v

gpio version: 2.32

WiringPi のピン番号には、(1) 物理ピン (2) BCM GPIO ピン (3) wiringPi ピンの3種類があり、ちと面倒です。
デフォルトは wiringPi ピンです。
このへんの対応は、下記のコマンドで表示できます。

$ gpio readall

20160525_wiringpi_readall

gpio コマンドでLED点滅
11番ピン(GPIO 17、wPi 0)と6番ピン(GND)の間に、LEDと1KΩの抵抗を直列に入れます。
20160510_raspi_led_gpio17

$ gpio mode 0 out
(点灯)
$ gpio write 0 1
(消灯)
$ gpio write 0 0

Python でLED点滅 (1)

$ sudo python
>> import wiringpi
>> wiringpi.wiringPiSetup()
>> wiringpi.pinMode(0, wiringpi.OUTPUT)
(点灯)
>> wiringpi.digitalWrite(0, wiringpi.HIGH)
(消灯)
>> wiringpi.digitalWrite(0, wiringpi.LOW)
>>> exit()

Python LED点滅 (2)
1秒間隔で点滅する
wiringpi_led_blink.py

import wiringpi
import time
wiringpi.wiringPiSetupGpio()
wiringpi.pinMode(17, wiringpi.OUTPUT)
while True:
	wiringpi.digitalWrite(17, wiringpi.HIGH)                 
	time.sleep(1)
	wiringpi.digitalWrite(17, wiringpi.LOW)            
	time.sleep(1)

参考
Setup – Wiring Pi
・wiringPiSetup (void)
WiringPi 方式のピン番号を使用して、WiringPi を初期化します。
これは、Broadcom の GPIO のピン番号 16 に対して、仮想のピン番号 0 をマッピングする方式です。
この関数は、 root権限で呼び出す必要があります。

・wiringPiSetupGpio (void)
Broadcom の GPIO のピン番号を使用して、WiringPi を初期化します。
この関数は、 root権限で呼び出す必要があります。

Core Functions – Wiring Pi
・void pinMode (int pin, int mode)
pin に対して、mode として、INPUT、 OUTPUT、 PWM_OUTPUT、または GPIO_CLOCK のいずれかを設定します。
PWM_OUTPUT は、WiringPi 1ピン (BCM_GPIO 18) のみサポートされています。
GPIO_CLOCK は、WiringPi 7ピン (BCM_GPIO 4) のみサポートされています。

・void digitalWrite (int pin, int value)
pin は OUTPUT として設定されている必要があります
pin に value として、HIGH (1) または LOW (0) の値を書き込みます。
WiringPi では、0(ゼロ) は LOW となり、0(ゼロ) 以外の数値は HIGH として扱います。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です