【 第44回 】Gpiozeroの関数PWMLEDなら、Lチカ蛍もこんなに簡単!

0
1486

以前の記事「【 第8回 】LEDの輝度をフェードアウトさせて、”Lチカ蛍”を本物の蛍に!」ではScratch 1.4を使って”Lチカ蛍”を実行しましたが、制御ライブラリGpiozeroの関数PWMLEDを使えばもっと簡単に”Lチカ蛍”が実現できそうなので試してみました。

今回使った部品

  • Raspberry Pi 3 Model B × 1
  • 40Pinフラットリボンケーブル
  • 40Pin T型GPIO拡張ボード
  • ブレットボード × 1
  • LED × 1
  • 抵抗 220Ω × 1
  • ジャンプワイヤー(オス/オス) × 2

実体配線図

Raspberry Piとブレッドボードは【第2回】で紹介したT型GPIO拡張ボードで接続します。

今回は【第3回】での”Lピカ”と同じ回路で、制御ライブラリGpiozeroを使った”Lチカ蛍”を実行します。

Lチカ蛍のプログラム作成

タスクバー左端のメニューアイコンから「プログラミング」→「Code – OSS」をクリックしてVisual Studio Codeを起動します。

サイドバーのフォルダ”PYTHON”の右にあるアイコン「新しいファイル」をクリックします。

サイドバーに入力欄が現れるので、プログラム名を入力します。

エディター画面で”f”を入力ると、”f”で始まる入力候補の一覧が現れるので”from”を選択します。

半角スペースを空けて”g”を入力ると、”g”で始まる入力候補の一覧が現れるので”gpiozero”を選択します。

 

半角スペースを空けて”i”を入力ると、”i”で始まる入力候補の一覧が現れるので”import”を選択します。

 

半角スペースを空けて”pw”を入力ると、”p”と”w”を含む入力候補の一覧が現れるので”PWMLED”を選択します。これで制御ライブラリGpiozeroの関数”PWMLED”をインポートします。

 

「Enter」キーで改行して”f”を入力ると、”f”で始まる入力候補の一覧が現れるので”from”を選択します。

半角スペースを空けて”si”を入力ると、”s”と”i”を含む入力候補の一覧が現れるので”signal”を選択します。

半角スペースを空けて”i”を入力ると、”i”で始まる入力候補の一覧が現れるので”import”を選択します。

半角スペースを空けて”p”を入力ると、”p”で始まる入力候補の一覧が現れるので”pause”を選択します。これで制御ライブラリsignal関数”pause”をインポートします。

VSCodeが気を利かせて”pause”の後に”()”まで入力してくれますが、ここでは不要なので削除しておきます。

2回改行して”led = p”と入力すると、”p”で始まる入力候補の一覧が現れるので”PWMLED”を選択します。

VSCodeが気を利かせて”PWMLED”の後に”()”とその使い方についての情報も表示されます。

ここでは、”()”内にLEDを制御するGPIOピンの番号”17″を入力します。この行は、変数”led”をRaspberry PiのGPIO17ピンから出力する値(電圧)に当て嵌めることを記述しています。

2回改行して”led.”と入力すると、この後に続く入力候補の一覧が現れるので”pulse”を選択します。

”pulse”の後に”()”も入力されるので、ここではこのまま残しますが、今回は”()”内には何も入力しません。何も入力しない場合は、2秒間のフェードイン/フェードアウトを連続して繰り返します。

2回改行して”p”と入力すると、この後に続く入力候補の一覧が現れるので”pause”を選択します。

”pause”の後に”()”も入力されるので、ここではこのまま残しますが、”()”内には何も入力しません。この行では、「何か新しいsignalを受けるまではこのままの状態を保つ」ことを記述しています。

行末にスペースを入れずに改行しておきます。

Lチカ蛍のプログラムの実行

エディター画面の何もないところで右クリックして出てくるメニューから「ターミナルで Python ファイルを実行」を選択します。

画面右下にターミナル画面が開き、プログラムが実行されます。LEDは1秒掛けてフェードインし、又1秒掛けてフェードアウトの繰り返しで明滅しました。

「Ctrl」と「C」キーを同時に押すと、ターミナル画面でプロンプトが返り、LEDが消灯します。

メニューバーから「ファイル」→「保存」をクリックして保存します。

念の為、このコマンドでGPIOの設定状況を確認します。

プログラム実行中にキーボードで強制終了したのですが、GPIO17の設定は既定の”IN”に戻っていました。終了処理が不要なのはライブラリGpiozeroのメリットのひとつです。

gpio readall

Lチカ蛍のプログラム

以前の記事で実行したScratch 1.4のプロジェクトと比べて遥かにシンプルなプログラムでLチカ蛍が実現できました。

from gpiozero import PWMLED
from signal import pause

led = PWMLED(17)

led.pulse()

pause()

[sitecard subtitle=関連記事 url= http://www.fabshop.jp/%e3%80%90-%e7%ac%ac8%e5%9b%9e-%e3%80%91led%e3%81%ae%e8%bc%9d%e5%ba%a6%e3%82%92%e3%83%95%e3%82%a7%e3%83%bc%e3%83%89%e3%82%a2%e3%82%a6%e3%83%88%e3%81%95%e3%81%9b%e3%81%a6%e3%80%81l%e3%83%81%e3%82%ab/ target=]