Make.

GPIOでLEDの点滅(Python)

Pocket

Raspberry Piで、PythonをGPIOを使用して、LEDを点滅させます。
LEDをチカチカさせるため、通称「Lチカ」と呼ばれる制御の「Hallo World」です。
GPIOとブレッドボードを接続するコネクタを使用します。


使用するもの

RaspberryPiで電子回路を制御する場合、GPIOとブレッドボードを接続するケーブルを使用した方がなにかと便利です。

たくさんのGPIOを使用する場合は、ケーブルとコネクタが一緒になったものが便利です。

GPIOをすべて取り出す必要我ない場合は、メス-オスのブレッドボード用のケーブルが便利です。

Amazonでも安いものが簡単に手に入るので、少し多めに購入しておくことをオススメします。


GPIOとコネクタを接続する

Raspberry PiのGPIOとLEDを接続します。
ここでは、GPIOとブレッドボードを、メス-オスのブレッドボード用ケーブルで接続して、ブレッドボード上でLEDを点灯させます。

最初にLEDが点灯できることを確認します。1番ピンは、3.3vに接続されているため、常に電流をとることができます。まずは、LEDの足が長い方(アノード)を、1番ピンに接続し、足が短い方(カソード)を抵抗1kΩを通して6番ピンのGNDに接続します。

00011

LEDが点灯することを確認します。
LEDが点灯することを確認したら、次はプログラムで制御を行います。


GPIOを制御するライブラリをインストールする

最初に、GPIO Pythonライブラリをインストールします。
ライブラリのインストールは以下のコマンドを実行するのみです。
ライブラリインストール後、PythonによるGPIOの制御が可能になります。

$ sudo apt-get install python-rpi.gpio

プログラムから制御する

GPIOを制御してLEDを点灯するプログラムを作成します。
1番ピンに繋いでいたLEDのアソードは11番ピンに繋ぎかえます。
エディタを起動して、プログラムを記述するファイルの新規作成・編集を行います。

$ vi gpiooutput.py

エディタを起動したら、以下のPythonのプログラムをコピーします。

#!/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)

GPIO.setmode(GPIO.BOARD)は、ハードウェアのリビジョン等に関係なく常にGPIOのピン番号を示します。
基本的にGPIO.setmode(GPIO.BOARD)を設定しておけばよいです。

sudoコマンドで、プログラムを実行するとLEDが2秒間隔で点滅します。

$ sudo python gpiooutput.py

00008

sudoで実行するのは、GPIOの制御は、rootにのみ権限があるためです。
sudoをつけないとエラーがでて実行できません。

Pocket