前回の記事「【 第44回 】Gpiozeroの関数PWMLEDなら、Lチカ蛍もこんなに簡単!」では、制御ライブラリGpiozeroの関数PWMLEDを使ってLチカ蛍を実行してみましたが、2秒毎に明滅するLEDは蛍に見えないことはないのですが、いまいちリアルさが欠けていました。そこで今回はPWMLEDのパラメーターを操作して、より本物の蛍に近づけてみようと思います。
今回使った部品
- Raspberry Pi 3 Model B × 1
- 40Pinフラットリボンケーブル
- 40Pin T型GPIO拡張ボード
- ブレットボード × 1
- LED × 1
- 抵抗 220Ω × 1
- ジャンプワイヤー(オス/オス) × 2
実体配線図
プログラムのパラメーター変更
前回作成したLチカ蛍のプログラムを開きます。
メニューバーから「ファイル」→「名前を付けて保存」をクリックします。
「名前を付けて保存」画面が現れるので、項目「名前:」の入力欄に表示されている前回のプログラム名を別の新しいプログラム名で上書きしておきます。
画面左端のアクティビティバーで1番上のエクスプローラーアイコンをクリックし、サイドバーを閉じます。
6行目の行末にマウスカーソルを置きます。
「Backspace」キーでカーソルを”led”の後ろに送ります。
”.”を入力ると、後に続く入力候補の一覧が現れるので”blink”を選択します。
”blink”の後に”()”も入力されるので、”()”内に”on_time=0.5,(半角スペース)”と入力します。カーソルの右下には各パラメーターの規定値が表示されます。
続けて”off_time=1,(半角スペース)”と入力します。これは規定値ですが一応、入力しておきます。
続けて”fade_in_time=2.5,(半角スペース)”と入力します。
続けて”fade_out_time=1,(半角スペース)”と入力します。ここまでのパラメーターは、LEDの輝度を2.5秒掛けてゆっくり最大値まで上昇させてそのまま0.5秒保持し、その後1秒掛けて下降して消灯を1秒保持するという明滅を繰り返す記述となります。”()”に何も入力しなければ規定値のままの設定になり、1秒毎に点滅を繰り返す単純なLチカになります。
改善したプログラムの実行
エディター画面の何もないところで右クリックして出てくるメニューから「ターミナルで Python ファイルを実行」を選択します。
画面右下にターミナル画面が開き、プログラムが実行されます。本物より本物らしいLチカ蛍になりました。( ← 何度も試行錯誤を繰り返して辿り着いた設定です )
マウスカーソルをターミナル画面に置きます。
「Ctrl」と「C」キーを同時に押すと、ターミナル画面でプロンプトが返り、LEDが消灯します。
メニューバーから「ファイル」→「保存」をクリックして保存します。
念の為、このコマンドでGPIOの設定状況を確認します。
GPIO17の設定は既定の”IN”に戻っていました。Gpiozeroは本当に終了処理がいらないのでしょうか?
gpio readall
改善したLチカ蛍のプログラム
from gpiozero import PWMLED from signal import pause led = PWMLED(17) led.blink(on_time=0.5, off_time=1, fade_in_time=2.5, fade_out_time=1) pause()