電子工作

箱を開けたら音が鳴る仕組みをリードスイッチで作る

家の防犯などに使われているリードスイッチですが、実は意外と身近なところにも使われているくらい安価なものです。今回はリードスイッチを使って、簡単な防犯装置のようなものを作ってみたいと思います。

サンプルプログラムをGitHubで公開しています。詳しくはこちら。automusicフォルダーの中にあります。

GitHubでソースコードをダウンロードしようこのサイトにある自分で作ったソースコードをダウンロードできるようにするためなどから、GitHubという物を始めました。一応、今まで作った...

ふつうの押すスイッチは指で押すのに対し、リードスイッチは磁石をくっつけることで入力をします。

必要なもの

今回は、前々回も使った20このセンサーが入ったキットの中から、リードスイッチを使っていきたいと思います。

  • リードスイッチ
  • 磁石(市販のもの、家にあるもので大丈夫です。)
  • ジャンパー線
  • 電子オルゴール

センサーの準備

まずセンサーを準備します。今回使ったセンサーはこれです。

右からGND,5V,GPIOとなります。今回は、GNDは6番、5Vは2番、GPIOは8番のGPIO14に繋げます。

接続をするときは必ずRaspberryPiの電源を抜いてから行ってください。

プログラムの準備

まず本題に入る前に、試しのプログラムを作ってみましょう。リードスイッチが使えるのか確認します。まずこのコマンドを実行します。reedswitch1.pyがこのコードになります。

~$ nano reedswitch1.py

そうしたら、これを書き込みます。

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
        if GPIO.input(14)==1:
                print("OFF!!")
        else:
                print("ON!!")
        time.sleep(0.5)

そうしたら、control+X もしくは、Ctrl+Xを同時に押して、保存するか聞かれるのでYキーを押して、エンターキーを押すと保存してファイルを閉じることができます。

プログラムの説明

importでGPIOと時間を測ることができるように読み込みます。その後、GPIOの設定をして、GPIOの情報を読み取り、1(接続)ならOFF!!を表示して、それ以外ならON!!を表示します。

すいか
すいか
あれ?磁石がくっついた時が接続じゃないの?

実は、リードスイッチは、磁石をくっつけるところを見ればわかる場合もありますが、通常は接続されているのです。そのため、磁石をつけると金属同士が離れ、電気が通らなくなります。そのため、このプログラムでは磁石がくっついた時をON、離れた時をOFFとしています。

プログラムの実行

では実際にプログラムを実行してみましょう。

古いOSをそのまま使っている場合は、pythonをインストールをしないといけないかもしれません。このコマンドでpythonをインストールできます。

~$ sudo apt-get install python

このコマンドでプログラムの実行をすることができます。

~$ sudo python reedswitch1.py

そのままだとOFF!!が表示され、磁石をくっつけるとON!!と表示されるはずです。次に、音が出るようにしましょう。

音が鳴るようにする

今回はこのような電子オルゴールを使います。

これの赤い線をGPIOの15(10番ピン)黒い線をGNDにつなぎます。GNDはどこでもいいです。今回は6番につなぎます。

前のプログラムに付け足します。磁石が離れたときに音楽が流れるようにします。このコードはreedswitch2.pyです。

プログラム全文↓

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(15, GPIO.OUT)
while True:
        if GPIO.input(14)==1:
                print("OFF!!")
                GPIO.output(15,True)
        else:
                print("ON!!")
                GPIO.output(15,False)
        time.sleep(0.5)

磁石を外すと音楽が鳴ります。終了するときに、磁石をつけた状態でControl+CもしくはCtrl+Cをしないと、音楽がずっと鳴り続けます・・・。

プログラムの実行

~$ sudo python reedswitch2.py

これでプログラムを実行します。リードスイッチから磁石を離すと音楽が鳴り出します。これを箱につければ、箱が開くと音が鳴る仕組みを作ることができます。

お疲れ様でした。

気になるアイテム



COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です