pi2 でLED

我が家にも、PI2 が来ました。当初、GW明けにRSさんに発注しておいたのですが、忙しくて荷物を取りにいく暇が無くてほっておいたら、返品扱いになってしまいました。ううむ、、、

 

で、もう一度頼むのも気が引けたので送料などを考えると、AliExpress で頼んだほうが送料分だけ安いってこともありそっち経由でゲットしました。ケースは、RSさんからゲットしたものです。

写真 1

パッケージは、こんな感じです。element14.com のパッケージのようですね。

写真 2

気に入ったケースに収めるとこんな感じです。ふたははめ込み式で、ケーブルの分だけすきまがあるので、以下のように出せます。

写真 3

GPIO Pinの配列は、以下の表を見ました。01 pin は写真でいうと、左下の右側になります。

GPIO_Pi2

コードは、python でrpi.GPIO というライブラリを利用しました。

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
while True:
    GPIO.output(11, True)
    time.sleep(2)
    GPIO.output(11, False)
    time.sleep(2)

よりわかりやすい説明は、黒猫のデルタさんのBlog を参考にしました。

写真 4

コード実行中、以下のような感じで警告がでているようです。

junkhack@raspberrypi:~/gpio$ sudo python gpio11.py
gpio11.py:5: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(11, GPIO.OUT)

 

どうやら、GPIO.cleanup() しないと、CTL + C でブレイクして再度実行すると上記のように出てしまうようです。プログラムを終了後もGPIO Pinから出力されるので、try で CTL + C を受けて処理するとよいようです。

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
GPIO.setwarnings(False)
try:
    while True:
        GPIO.output(11, True)
        time.sleep(2)
        GPIO.output(11, False)
        time.sleep(2)
except KeyboardInterrupt:
        GPIO.cleanup()

 

なるほどですね。テスタでは、True は3.3v 出ていました。

Pi2 で LED 制御が出来ました。arduino や ESP8266 などど連携すると面白そうですね。