Python

ラズパイでLチカをやってみよう!(Python) 

スポンサーリンク

PythonでLチカを行う方法を紹介します。

Pythonを使えばとっても簡単にLEDを光らせることができます!

ラズパイ初心者の方でも理解できるよう、詳しく解説しますので是非参考にしてください!

すぐにLチカしたい方は電子回路までスキップ

用意するもの

RaspberryPi 3B+以外はOsoyooのスターターキットを購入すればついてきます。

今後もラズパイを触っていくつもりなら買って損はないです!

用意するもの

  • RaspberryPi 3B+
  • LEDライト
  • ジャンパー線
  • 抵抗400~1000Ωぐらいのもの1つ
  • ブレッドボード

GPIOについて

GPIO(General Purpose Input/Output )とは汎用入出力ポートとも呼ばれる、入出力のできるポートです。

ポートは港をイメージしていただければわかりやすいかと思います。

GPIOを境として入力・出力など外部デバイスと通信を行い、モノを制御することができます!

イメージはまだ湧かないかもしれませんが、Lチカを体験しながら少しずつ、つかんでいきましょう!

下の図を見てください。それぞれのピン(40ピン)には以下2種類の番号が割り振られています。

  • GPIO番号
  • pin番号
https://iot.keicode.com/raspberry-pi/pinout.php

ラズパイを使う際どちらかの番号でピンを指定する必要があります。

一般的にはGPIO番号が使われています。

ですので、GPIO番号を使用してLチカを行っていきます!

ブレッドボードについて

次に解説するのがブレッドボードです。

ブレッドボードとは一体何なのでしょうか。

ブレッドボードは電子回路実験試作評価などに用いる。(Wikipedia

電子回路・電子工作と聞くと、はんだ付けをイメージするかと思います。

ですが、ブレッドボードを使えばはんだ付けは必要ありません。

下の図は、ブレッドボードの一部です。下記写真の「赤色の線」、「青色の線」は内部でつながっています。(図1)

ブレッドボードの裏面は金属でつながっているのです。(図2参照)

ブレッドボードとジャンパー線を用いることで、簡単に電子回路が組めます。

今後もラズパイを触っていこうと考えている方は必須アイテムと言っても過言ではありません!

価格も500円程度と比較的安いので、この機会にぜひ。

LEDについて

発光ダイオード(はっこうダイオード、: light emitting diode: LED)はダイオードの一種で、順方向[注 1]電圧を加えた際に発光する半導体素子である。(Wikipedia

今やいたるところで使用されているLEDですが、注意する点が一つあります。

それは、極性です。

足の長いほうがアノード(+)、短いほうをカソード(ー)と言います

ラズパイで光らせる際は、アノードをGPIO側カソードをGND(グラウンド)側でつなぐということを忘れないでください。(逆につなぐと壊れる可能性があります)

基本的な機器の説明は以上です。

電子回路

では、Lチカを始めていきましょう!

回路図は下の図を参考にしてください。

GPIO番号を利用するので、pin番号と間違えない様注意してください。

ソースコードを動かす前に、先に必要なものをインストールしておきます。

ターミナル(黒い画面)で以下のコマンドを入力します。

sudo pip3 install RPi.GPIO

Lチカのソースコード

ファイル名は「led.py」とします。

import RPi.GPIO as GPIO#Pythonでラズパイの制御をするためのライブラリ
from time import sleep #timeのsleepをインポート
 
GPIO.setmode(GPIO.BCM) #GPIOへアクセスする番号をBCMの番号で指定することを宣言。
GPIO.setup(23, GPIO.OUT)#BCMの23番ピン、物理的には10番ピンを出力に設定
 

for i in range(10):#10回点灯を繰り返す
    GPIO.output(23, GPIO.HIGH)#出力 3.3V
    sleep(0.5)#0.5秒待機
    GPIO.output(23, GPIO.LOW)#出力  0V
    sleep(0.5)

GPIO.cleanup()#GPIOをクリア

ソースコードの簡単な解説をしていきます。

import RPi.GPIO as GPIO#Pythonでラズパイの制御をするためのライブラリ

GPIOを制御する際には先ほどインストールしたRPi.GPIOが必要になります。

asを使うい、GPIOと打つだけで使えるようにします。

GPIO.setmode(GPIO.BCM) #GPIOへアクセスする番号をBCMの番号で指定することを宣言。
GPIO.setup(23, GPIO.OUT)#BCMの23番ピン、物理的には10番ピンを出力に設定

プログラムでラズパイに、GPIO番号・ピン番号のどちらを使うか、伝える必要があります。そこで以下のどちらかの設定が必要になります。

  • GPIO.setmode(GPIO.BOARD) # ボードの物理的なピン番号で指定
  • GPIO.setmode(GPIO.BCM) # GPIO番号で指定←今回はこっち

GPIO.setupで23番ピンを出力で使う設定をします。

 GPIO.output(23, GPIO.HIGH)#出力 3.3V
 GPIO.output(23, GPIO.LOW)#出力  0V

GPIO.outputでGPIOから出力をしています。

HIGHの時は3.3v、LOWの時は0vの出力となります。

 

ソースコードの解説は以上です。

ターミナルでこのファイルを動かしてみましょう。

以下のコマンドを入力してください。

sudo python3 led.py

注意ポイント

GPIO操作の際には root権限が必要になるのでsudoコマンドを忘れずに!

 

動画のように10回点灯を繰り返せば成功です!

もし光らなかったり、動かなかった場合は以下の点を見直しましょう!

  • ソースコードの記入ミスはないか(エラーに表示されるので読み解きましょう)
  • 配線に間違いはないか(ピンの間違いはよくあります)
  • sudoコマンドを忘れていないか

いかがでしたでしょうか?LEDが光るだけでもうれしいものです。

仕組みをわかってしまえば応用させることもできますね♪

LEDを何個も光らせたり、順番に光らせたり、ご自身で工夫しながら遊んでみてください!

今回はここまでです。

他にも、Pythonを使った顔認識機能の実装なども解説しているので、レベルが上がったらぜひ試してみてください。

ラズパイカメラとOpenCvを使って女優の顔認識してみた

続きを見る

スポンサーリンク

-Python