Raspberry-Pi 電子工作

ラズパイ初心者が電子工作【Lチカ編+原理の説明】

2020年9月3日

 

前回はLピカをしたので、今回は実際にプログラムを書いてLチカをしたいと思います。

プログラムはPythonを使います。

Pythonを使うのは初めてで分からないことも多かったので、自分なりにまとめながら記事を書いていきます。

 

本記事のゴール

Pythonを使ってLED制御(Lチカ)

 

本記事はLピカの続きとなっています。

 

準備

Lチカとは

LEDを点滅させることをLチカと言います。LEDがチカチカするので笑

電子工作を始めたばかりの人はまずLチカを行うみたいなのでやってみました。

Googleで検索すると先人たちの解説が多いのでありがたいです。

また、使用している初心者キットにも説明があるのでそれも参考にしました。


SunFounder Raspberry pi スターター電子工作キット,ラズベリーパイ初心者向けプログラミング,詳細な教本と豊富な学習用レッスン付き,Raspberry pi 4B/3B+/3B/3A+/2B/1B+/1A+/Zero W/Zeroに対応、C/Pythonコードをサポート
【Amazonのページへ移動します】

 

使用した部品

使用部品

  • ラズベリーパイ zero WH
  • Type-Bの充電ケーブル
  • ブレッドボード
  • ジャンプワイヤー
  • LED
  • 抵抗

 

またラズパイは自宅PCにリモート接続してあり、ラズパイをディスプレイに接続せずに使用しています。

 

配線

 

配線のイメージはこんな感じです。

 

また回路図はこのようになっています。

 

Pythonでプログラム作成・実行

基本的にはこちらのサイトを参考に進めていきます。

 

ライブラリのインストール

Pythonで制御するためにはGPIOを使用するため、そのライブラリである「RPi.GPIO」をインストールします。

ここでGPIOについて軽く説明したいと思います。

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

出典:Wikipedia

簡単に言えば、GPIOを通してラズパイを制御します。

 

それではインストールしていきます。

まずはTermianalで以下のコマンドを入力してアップデートして下さい。

ただし必要ない方は次のステップに進んでください。

 

またラズパイのOSであるRaspbianにはGPIOのライブラリ(RPi.GPIO)が標準で実装されているみたいですが、必要に応じて以下のコマンドでインストールして下さい。

 

PythonでLチカのプログラムを作成

プログラムを作成していきます。

まずは完成したコードを見てみましょう。

 

1行ずつ何をしているのか見ていきます。

 

これは人が書いた文章をPCが読み取れるように翻訳してくれることを表しています。

詳しくは下記のサイトが参考になります。

 

これは主に文字化け防ぐために使用します。

以下のサイトが参考になります。

また、さらに詳しい説明は以下のサイトが参考になります。

 

これらはライブラリを使用するために宣言します。

Pythonは初めて使いますが、ライブラリがあるのは便利です。
(Fortranしか使ったことが無かったので全て自分で書いてました・・・。)

また一行目の「as GPIO」は、「RPi.GPIO」のニックネームみたいな感じですね。

毎回「RPi.GPIO」と書くとコードがスッキリしないので、ニックネーム付けることが出来るのは良いですね。愛着がわきそうです。

 

今回はGPIOのBCM番号(役割番号のイメージ)が17番のピンを使おうと思っているので、LED_Pinという変数に17という数字を入れました。

 

1行目はGPIOにこれから使うよと教えていて、GPIO.BCMはBCM番号(役割番号のイメージ)を使うことを表してます。

2行目はLED_Pin(=BCM番号が17番)をGPIO.OUT(出力)として使うことを表してます。

出力と言うと何だかよく分かりませんが、イメージ的にはLED_Pinに指示を与えている感じです。

詳しくは以下のサイトが参考になります。

 

これは0.5秒間LEDが光って、0.5秒間光が消えて・・・を5回繰り返すプログラムになってます。

1.for n in range(5):

これはfor以下の作業を5回繰り返すことを表してます。

 

2.print('LED ON')

これはターミナル上に「LED ON」と表示することを表してます。

 

3.GPIO.output(LED_Pin,*)

「*」にはTrue、またはFalseが入ります。

これはLED_Pin(=BCM番号17番)に指示を与えており、Trueの時には3.3Vの電圧を加えて、Falseの時には0Vの電圧を加えます。

これにより電圧の差から電気の流れを作ることができ、LEDを付けたり消したりすることが出来ます。

 

TrueやFalse以外の書き方があるのでまとめておきます。

On(3.3V) True GPIO.HIGH 1
Off(0V) False GPIO.LOW 0

4.time.sleep(0.5)

これは処理を0.5秒間だけ停止することを表します。

つまり、GPIO.outputによって与えた指示を0.5秒の間、持続させることが出来ます。

 

これは、GPIOに撤収する指示を与えています。

この指示を与えていないと、いつまでも準備万端のままでいるので注意してください(休憩もさせてあげて下さい)。

また、準備万端のままで再びプログラムを実行すると以下のような警告がでることもあります。

This channel is already in use, continuing a Use GPIO.setwarnings(False) to disable warnings.

 

以上でプログラムの解説を終わります。

 

プログラムの実行

それでは実行していきます。

プログラム名は「LED_flashing.py」で保存してあるので、これを実行させます。

実行するためには、ターミナルで実行したいファイルがある場所まで移動する必要があります。

cdコマンドで目的のフォルダまで移動して、以下のコマンドを使ってpythonを実行させてください。

 

そうすると、プログラム通りにLEDがチカチカします。

補足説明:LEDが点灯する原理

LEDが点灯するときの説明をもう少し詳しくしたいと思います。

繰り返しになりますが今、制御しているのはGPIO17になり、このGPIO17に0Vを加えるか、3.3Vを加えるかをラズパイに指示しています。

これを理解してもらった上で点灯する原理を説明します。

 

1:GPIO17に0Vを加えた時

画像にもあるように、電圧の差により電気が流れ、LEDが点灯します。

これは流体力学でいう所の、「圧力差により流れが駆動されること」と似ていますね。

 

2:GPIO17に3.3Vを加えた時

反対に3.3Vを加えた際には電圧差がないため電気が流れず、LEDは点灯しません。

 

以上がLEDが点灯する原理です。

 

まとめ:PythonでLチカしてみた!!

今回はPythonでプログラムを組んでLチカを行いました!

Pythonを使うのは初めてで分からないことも多かったですが、一つ一つ調べてまとめたことで確実に知識となりました。

また、自分がプログラムした通りの挙動をLEDがしたのは感動です。

次回は複数のLEDをチカチカさせたいと思います!

 

Twitter(piy0_gadget)ではラズパイについて呟いているので是非フォローしてね!!

 

こちらもCHECK

ラズパイの種類を価格と性能で比較

  ラズベリーパイを使って電子工作をしたい!!   と思ったが、幾つも種類があってどれを選べば良いか分からない・・・。 僕自身、電子工作をしたことがなくラズベリーパイも名前を知って ...

続きを見る

-Raspberry-Pi, 電子工作

© 2020 ぴよ工房 Powered by AFFINGER5