IoTする方法⑥実際の作業(LEDチカチカ)

しっぽにちは。おみーです♪(*^^*)♪
IoT第6回です。最終回
第1回:全体構成
第2回:GPIO
第3回:PWM
第4回:I2C
第5回:モーター回し
今日はLED点灯です。これでIoTする方法記事はいったん終わりです。

第3章:実際の作業(Lチカ)
LEDは秋葉原で買ってきました。
【理系の解説】
・LED点灯:LEDを点灯させる方法は,主に2つある.一つは,直接LED素子と抵抗を使って点灯/点滅,つまりON/OFFする方法であり,もう一つは,LED素子とドライバーを使って明るさの度合いを制御しながら点灯/点滅する方法である.前者は簡単でネットでの記事も多いのでここでは割愛し,後者に関して説明する.後者の場合,前回のサーボモータと同様にPWMで動作可能である.ラズベリーパイでGPIO端子とLEDドライバ,LEDドライバとLED素子をつなぐ.その際,ブレッドボードを使うと便利である.
ハードウェアPWMの端子は、ラズパイのGPIO 12, 13、18, 19なので、そこにつなぐ。そしてLED及びLEDドライバに電源を供給するため、外部電源(LEDの仕様による)とLEDドライバを接続する。
接続が完了したら、あとはプログラムを記載するだけである。
以下にプログラムを記載する。周波数とduty比率の両方あるいはどちらかを変更すると、明るさを変更できる。

# ライブラリのインストールと起動は前回と一緒

import pigpio
import time

gpio_pin0 = 12

pi = pigpio.pi()
pi.set_mode(gpio_pin0, pigpio.OUTPUT)

# 周波数とduty比の調整
pi.hardware_PWM(gpio_pin0, 8, 100000)

time.sleep(10)
pi.stop()

【文系の要約】
・LED点灯:LEDを点灯させる方法は,主に2つある.一つは,LED電球と田千恵雄津に出、直接ON/OFFする方法。もう一つは、ラズベリーパイで光らせ方を制御する。前者は簡単でネットでの記事も多いらしいのでここでは割愛し,後者に関して説明する。後者の場合,前回のサーボモータと同様にPWM(電気のモールス信号)で動作可能である。ラズベリーパイのGPIO端子とLEDドライバ(制御用機構),LEDドライバとLED本体をつなぐ。その際,ブレッドボード(延長コードみたいな板)を使うと便利である。ハードな方のPWM(ラズベリーパイに専用の制御回路があるモールス信号用ピン4本)はラズベリーパイの12, 13,18, 19番ピンなので、そこにつなぐ。そしてLEDとLEDドライバに電源を供給するため、電源とLEDドライバを接続するが、ここはLEDによって違うのでLEDの説明書を読む必要がある。
接続が完了したら、あとはプログラムを記載するだけである。
以下にプログラムを記載する。周波数とduty比率の両方あるいはどちらかを変更すると、命令モールス信号が変化して明るさを変更できる。

#は解説行 
#なしが実際のソースコード
# ライブラリのインストールと起動は前回と一緒

# ↓ゲットした呪文を起動まではしたので、使用可能にする呪文を詠唱、これで、GPIO魔法を使える
import pigpio
# ↓あとで時間を制御したいので、時間魔法を使えるように呪文を詠唱
import time

# ↓12番のピンにgpio_pin0というあだ名をつけておく
gpio_pin0 = 12

# ↓gpio魔法用の杖を召喚
pi = pigpio.pi()
# ↓さっきあだ名をつけた12番ピンから出力モードで電気を出すように杖に設定し、魔法準備ターン終了
pi.set_mode(gpio_pin0, pigpio.OUTPUT)

# ↓魔法発動!!(GPIO12: 8Hz、duty比0.1)
# 周波数とduty比の調整
pi.hardware_PWM(gpio_pin0, 8, 100000)

# ↓GPIO魔法発動したので、時間魔法発動してちょっと休む猶予をゲット
time.sleep(10)
# ↓モーター回し終わったので終了宣言。
pi.stop()

■与太話■
・TAN2(LED)
・おみー(ラズベリーパイ)
・B.B.(ドライバ)
にたとえて話をしてみよう。
あるところにTAN2(LED)がいました。
コンセントから電源とって光り続けてました。
おみー(ラズベリーパイ)はTAN2(LED)を支配したかった。
でもTAN2(LED)語をしゃべれなくてに直接命令する術を知らなかった。
B.B.(ドライバ)はおみー語をTAN2(LED)語に変換できる。
おみー(ラズベリーパイ)の命令の仕方は高速舌打ち(PWM)である。高速舌打ちが程度を超えると、B.B.(ドライバ)はTAN2(LED)の首を高速に何回も絞め上げて光れない時間を作り出す。
TAN2(LED)はチカチカするのである。
こうして、おみー(ラズベリーパイ)はB.B.(ドライバ)経由でTAN2(LED)の支配に成功したのである。
めでたしめでたし。
補足をすると、おみー(ラズベリーパイ)の舌打ち(PWM)の音量(電圧)が大きいことがあるので、B.B.(ドライバ)の鼓膜を破らないように音量(電圧)基準をそろえる必要がある。
ここでグラウンド(洗濯機のアースみたいなもの)が登場するのだ。グラウンド(アース)を設置する際には、間に音量(電圧)を下げる抵抗を入れて、おみー(ラズベリーパイ)の舌打ちがちっちゃくなるようにしておく必要がある。おみー(ラズベリーパイ)の舌打ち伝達ルートは、グラウンド(アース)を通るルートほうがB.B.(ドライバ)に命令出すルートより抵抗が少なくてショートカットなので、ショートしておみーに舌打ちが跳ね返ってきて、自分の舌打ちの大きさにびっくりしたおみー(ラズベリーパイ)の鼓膜が破れてしまうのだ(故障します)。
■与太話おわり■

-----------
以下のページを参考させていただき、実際に作業しました。
■ラズパイでIoT

■GPIO

■PWM

■I2C


この記事が気に入ったらサポートをしてみませんか?