俺のアウトプット

調べたこと、試したことを書きます

Raspberry Pi にチャレンジ 〜LEDでチカチカ〜

今更ですが、Raspberry Pi (ラズパイ) を購入しました。

前々から興味はあったのですが、ラズパイを使って何かをする目的がないので、購入にためらっていました。

昔、ちょっとだけ触って、そのままフェードアウトしていった、玄人志向のKURO-BOXを思い出します。

しかし、友達にラズパイの勉強会に誘われたのを機に購入。

考え方を変えて

まず触ってみる。触ってから目的を考える。

ことにしました。

目的が出来るまで、ちょっとずつ触って、チャレンジしてみようかと思います。

購入したもの

環境構築

  • Raspbian OSをインストール
  • Python3環境の構築
  • SSH接続

SDカードは相性があるようですが、シリコンパワーのSDカードでも普通にいけました。

Lチカって

まずは、最初のステップとして Lチカ にチャレンジ。

Lチカとは、LEDをプログラムで制御して点滅させる、シンプルな構造。
LEDをチカチカさせるのでLチカ。ローソンのはLチキ

最初にトライするには、うってつけです。

用意したもの

  • ブレッドボード
  • ジャンパワイヤ (オス-メス) 2本
  • LED 1本
  • 抵抗 (200Ω)

抵抗は300前後であれば問題ありません。

GPIOポート

ラズパイの GPIO から電源を取ります。
GPIOとは汎用入出力インターフェイスのこと。General-Purpose Input/Output の略。

ラズパイの場合、40本のピンがあり、図の左下から順に

https://www.raspberrypi.org/documentation/usage/gpio/images/gpio-pins-pi2.jpg

2 4 6 838 40
1 3 5 737 39

と、ピン番号が割り当てられています。

各GPIOには、用途が決まっています。

https://www.raspberrypi.org/documentation/usage/gpio/images/gpio-numbers-pi2.png

例えば、ピン番号 1 は 3V の電源が取れます。
ずっと光らせるだけであれば、このピン番号 1 にジャンパワイヤを接続して電源を取得するだけです。

ですが、LEDをチカチカさせたい場合は、プログラム上からON/OFFを制御します。 このような場合は、黄色い丸の GPIOから取得します。

用途 ピン番号 ピン番号 用途
3V (1) (2) 5V
GPIO2 (3) (4) 5V
GPIO3 (5) (6) GND
GPIO4 (7) (8) GPIO14
GND (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND
GPIO22 (15) (16) GPIO23
3V (17) (18) GPIO24
GPIO10 (19) (20) GND
GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8
GND (25) (26) GPIO7
GPIO0 (27) (28) GPIO1
GPIO5 (29) (30) GND
GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
GND (39) (40) GPIO21

Lチカ

fritzing を利用して回路図を作成します。

今回は GPIO24 から電源をとり、LEDの間に抵抗を置きます。

f:id:kitsugi:20190102103218p:plain

回路図からブレッドボード図を微調整して、イメージを抑えます。

f:id:kitsugi:20190102103233p:plain

プログラム

PythonのGPIOモジュールを利用して、1秒ごとに点灯、消灯を10回繰り返すプログラムを作成します。

import RPi.GPIO as GPIO
import time

PIN = 24
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN, GPIO.OUT)

try:
    for i in range(10):
        GPIO.output(PIN, GPIO.HIGH)
        time.sleep(1.0)
        GPIO.output(PIN, GPIO.LOW)
        time.sleep(1.0)
except KeyboardInterrupt:
    pass
finally:
    GPIO.cleanup()

GPIOモード

ピン番号で指定する BOARD と、GPIOの数字で指定する BCM があります。

今回は BCM を利用します。

GPIO24 を出力として利用するため、セットアップでは 24 を指定します。
もし、BOARD であれば、18 を指定します。

点灯・消灯

GPIO.output メソッドの第二引数で電流のON/OFFを設定します。

  • GPIO.HIGH (True)
  • GPIO.LOW (False)

ラズパイで確認

ブレッドボード図をもとに、実際に接続し、SSH経由でプログラムを実行します。

f:id:kitsugi:20190102103251j:plain

無事、LEDをチカチカすることができました!

まとめ

大学時代に、半田ごてを使って回路を作ったはずなのですが、遠い昔のことで、すっかり忘れておりました。
楽しかった記憶もありません。

しかし、実際にLEDが点灯したときは、純粋に感動し、楽しいと感じました。 今回はLチカですが、次のステップを試してみたいと思います。

ラズパイを始めるにあたり、カラー図解-Raspberry-Piで学ぶ電子工作-作って動かしてしくみがわかる が、大変わかりやすく、とても参考になりました。
おすすめの本です。

参考