こんにちは。今回の記事はモールス信号スイッチ(僕の造語)を作っていこうと思います。 モールス信号スイッチとは、ボタンを押すとそのタイミングでLEDも光るというようなものです。 以前からMobusのスイッチをもっと遊び心のあるものに変えたいと思っていたのですが、 LED付きの良いスイッチを見つけたので、今回はそれを試しに使ってみようと思います。

使ったもの
1.RaspberryPi Zero
2.LED付きスイッチ https://akizukidenshi.com/catalog/g/gP-02008/
3.ジャンパー線
4.ブレッドボード

| 配線 |

早速、各部品を配線して行きたいのですが、スイッチがブレッドボードにつかないということが判明しました。 しょうがないので写真のように裏の黒い脚をペンチで切ってしまいます。

これで無事にスイッチが着くようになったので、以下の写真のように配線をして行きます。

| 2.プログラム作成 |

配線が済んだら、プログラムを作成して行きます。今回はスイッチが押されたらLEDを光らすようなプログラムを 書いて行きます。スイッチが押されたらLEDを光らすのはプログラムを書かずとも回路を工夫すると簡単にできる のですが、プログラムで制御する事によって何秒押したのかなどがわかるようになります。 以下のようなPythonのプログラムを作成してみました。


                        import RPi.GPIO as GPIO
                        import time
                        # GPIOのPinの順番指定
                        GPIO.setmode(GPIO.BOARD)
                        # スイッチを接続しているPin番号
                        pin_in = 24
                        # LEDを接続しているPin番号
                        pin_out = 26
                        # 24番Pinを入力として設定する
                        GPIO.setup(pin_in, GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
                        # 26番Pinを出力として設定する
                        GPIO.setup(pin_out, GPIO.OUT)
                        # 26番Pinの出力をLowにしておく
                        GPIO.output(pin_out, GPIO.LOW)
                        try:
                            # 無限ループ
                            while True:
                                # スイッチが押されているかどうかを読み取る
                                sw_status = GPIO.input(pin_in)
                                # もしスイッチが押されていたら“ON”と表示しLEDを点ける
                                if sw_status == 1:
                                    print(‘ON!’)
                                    GPIO.output(pin_out, GPIO.HIGH)
                                # スイッチが押されていなければLEDを消す
                                else:
                                    GPIO.output(pin_out, GPIO.LOW)
                                # チャタリング防止のため0.1秒sleep
                                time.sleep(0.1)
                        # Ctrl-Cを押されたら終了する
                        except KeyboardInterrupt:
                            pass
                        # GPIOをcleanupしておく
                        GPIO.cleanup()
                  

| 3.実験 |

作成したプログラムがうまく動くよう祈りながら実行します。 動画のように思ったような動きになりました!(ブレッドボードの接触不良が起きてますが)

| まとめ |

今回は試してみたかったLED付きスイッチを使うことが出来ました。 Mobusで使う際はC言語に書き換えたりなどはありますが、配線などの確認が出来たので満足です。 Lチカやスイッチの状態を取得するのは、電子工作の入門的にも良いかと思うので、 ぜひモールス信号スイッチ作ってみてください。