Help us understand the problem. What is going on with this article?

Raspberry PiでPythonのRPi.GPIOを使ってLチカする

More than 5 years have passed since last update.

以前Raspberry PiでNode.jsのJohnny-Fiveを使ったLチカのサンプルを書きました。今回はPythonのRPi.GPIOパッケージをインストールしてLチカしてみます。

RPi.GPIO

RPi.GPIOパッケージはRaspberry PiのGPIOを操作するときに使います。pipやapt-getからインストールできます。

pipの場合

$ sudo pip install rpi.gpio

apt-getの場合

$ sudo apt-get install python-rpi.gpio

GPIO.BOARDとGPIO.BCM

RPi.GPIOのサンプルを見ているとGPIOのピン番号を指定する方法が2種類あります。何が違うのか調べているとWhat is the difference between BOARD and BCM for GPIO pin numbering?に説明がありました。

  • GPIO.BOARD: PIN番号
  • GPIO.BCM: GPIO番号

今回LEDのアノードを配線するPIN 11は、Raspberry Pi Model Bの場合GPIO 17になります。GPIO番号はモデルごと違う場合があるので、PIN番号で指定するGPIO.BOARDを使った方がよいみたいです。

This channel is already in use

RPi.GPIOのプログラムを実行するとThis channel is already in useの警告がでる場合があります。これは以前GPIO.setup()を実行してポートのセットアップをした後、クリアしていないときに発生します。

$ sudo python led-blink.py
led-blink.py:8: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(PIN,GPIO.OUT)

プログラムの最後にポートのクリアを行います。

GPIO.cleanup()

ブレッドボード配線

抵抗器は1K(茶黒赤金)を用意しました。LEDを配線します。

raspi-led.png

サンプルプログラム

~/python_apps/led-blink.py
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time

COUNT = 3
PIN = 11
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIN,GPIO.OUT)

for _ in xrange(COUNT):
    GPIO.output(PIN,True)
    time.sleep(1.0)
    GPIO.output(PIN,False)
    time.sleep(1.0)

GPIO.cleanup()

GPIOを操作する場合はroot権限が必要になります。プログラムを実行すると3回、1秒間隔でLチカします。

$ sudo python led-blink.py
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした