5
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ラズパイでLチカをしてみる(入門編)

Posted at

前回、ラズパイにOSをインストールしたり、基本的なセットアップを行いました。
初めてラズパイをセットアップしてみた

今回は、電子回路を学ぶために、ラズパイを使ってLEDを点滅させてみようと思います。

用意するもの

ラズパイからどうやってLEDを点灯させているかを学ぶ

ラズパイには、GPIOという複数のピンがあり、電子回路に必要なものである。
どう使うかというと、ピンから線を引っ張って、LEDライトやセンサーなどに繋げる。
IMG_20181103_000223のコピー.jpg

これらのピンにはそれぞれ役割があり、電源・グラウンド・GPIOだったりする。

電源とグラウンドというのは、乾電池でいう+極とー極という認識でいいと思う。
GPIOは、ラズパイで操作が行えるピンである。

GPIOは、集積回路やコンピュータボード上の一般的なピンであり、その動作(入力ピンであるか出力ピンであるかを含む)は、実行時にユーザによって制御可能である。GPIOは"General-purpose input/output"の略で、「汎用入出力」を意味する。

どのピンが何の役割かは、公式ドキュメントを参考に。

ラズパイで光らせてみる

回路はこんな感じ。一番シンプルなLED回路。
3.3Vの電源 → 抵抗 → LED → GND という流れ。
スクリーンショット 2018-11-04 22.39.04.png

単にラズパイから電源を供給しているだけなので、一番左の3.3V電源に繋げると、LEDが光る。

IMG_20181102_173748.jpg

Lチカ

次はLEDをチカチカと点滅させてみる。
そのためには電源に繋げるのではなく、代わりにGPIOに繋げてラズパイ側で操作させる。

公式ドキュメントに従ってLチカをしてみる。

回路

先程、3.3V電源に繋げていたものを、GPIO17番に繋げるだけである。

スクリーンショット 2018-11-02 23.28.40.png

ラズパイ上でシステムを組む

使用するモジュールをインストール

GPIOを操作するために、gpiozeroを使用

$ pip install gpiozero

これだけだと、エラーが起こる

$ python -c "import gpiozero"
/home/pi/.anyenv/envs/pyenv/versions/3.7.1/lib/python3.7/site-packages/gpiozero/devices.py:452: PinFactoryFallback: Falling back from rpigpio: No module named 'RPi'
  'Falling back from %s: %s' % (name, str(e))))
/home/pi/.anyenv/envs/pyenv/versions/3.7.1/lib/python3.7/site-packages/gpiozero/devices.py:452: PinFactoryFallback: Falling back from rpio: No module named 'RPIO'
  'Falling back from %s: %s' % (name, str(e))))
/home/pi/.anyenv/envs/pyenv/versions/3.7.1/lib/python3.7/site-packages/gpiozero/devices.py:452: PinFactoryFallback: Falling back from pigpio: No module named 'pigpio'
  'Falling back from %s: %s' % (name, str(e))))

ので、追加でモジュールをインストール

pip install RPi.GPIO

pythonでGPIOを操作する

1秒ごとに電源をon/offするシステムである。

test.py
from gpiozero import LED
from time import sleep

led = LED(17) # 17はGPIOの番号

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)

実行すると、LEDが点滅し続ける

$ python test.py
ラズパイをLチカさせてみた

#最後に

ラズパイを使ってLEDを操作してみました。
ただ点滅させただけですが、目の前にあるモノがプログラムで動くのっていいですね!

Webエンジニアとして活動しているので、サイト上で動くものしか作ってこなかったので、IOTはまた違った達成感があります。

なんとなく、入出力のやり方もわかったので、スマートホーム的なものを作ってみようかなと思います!

5
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?