#【Raspberry Pi】 人を感知して音を流す
前回の記事:【Raspberry Pi】 USBスピーカーから音を出す
##第0章 全体の流れ
前回の記事ではUSBスピーカーの設定をして、実際に音を出しました。ここまでの過程でほとんどの技術は習得しています。今回は入店音システムを作ってみましょう。
第1章では、必要なアイテム(今回使用したもの)の参考リンクです。
第2章では、前回までの記事を参考にして、周辺機器の取り付けを行います。
第3章では、センサーで感知した時に、音が鳴るプログラムを作ります。
##第1章 必要なアイテム
- Raspberry Pi 3 model B
- macbook
-
USBスピーカー
USBのみで使用できるものであれば100均でもOKです - 人感センサーHC-SR501
- ジャンパーワイヤー(メスーメス)
##第2章 取り付けや設定
ログインの方法がわからないときは最初の記事をみてください。
- 人感センサーを取り付ける
- USBスピーカーを取り付ける
- Raspberry Piの電源をつけて、SSHでログインをする。
- プログラムを作る準備をする
-
$cd Documents/Python3
でプログラムを収納しているフォルダに移動する。 -
$vi door_sensor.py
で空のプログラムを作る。
-
##第3章 プログラムを作ります。
完成系は以下の通りです。
#!/usr/bin/env python
#coding: utf-8
import time
import RPi.GPIO as GPIO
import pygame.mixer
SENSOR_GPIO = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_GPIO, GPIO.IN)
pygame.mixer.init()
pygame.mixer.music.load("../../Music/ファミマ.wav")
while True:
if(GPIO.input(SENSOR_GPIO) == GPIO.HIGH):
print("人を検知しました。")
pygame.mixer.music.play(0)
time.sleep(6)
pygame.mixer.music.stop()
GPIO.cleanup()
可能であれば、以下の説明も参考にしてください。
-
音を出すプログラムについて説明
-
import pygame.mixer
はpygameというライブラリを利用するためです。 -
pygame.mixer.init()
は初期化です。とりあえず最初に書いとけばいいです。 -
pygame.mixer.music.load("../../Music/ファミマ.wav")
は音楽を読み出しています。
**ここまでの記事を参考に作った方はMusicフォルダに音楽を入れていると思いますので、これで動きます。
ファミマ.wavは音楽名です。個人で変えてください。
-
pygame.mixer.music.play(0)
はミュージックスタートです。 -
time.sleep(6)
6秒後に次の処理 -
pygame.mixer.music.stop()
ミュージックストップです。
-
-
保存して終了後、実行します。
- shiftを押しながらzを2回押します。
-
python door_sensor.py
で実行します。
-
テスト
- 何もない方向にセンサーを向けておいて、音がならないか。
精度が低いため、たまに鳴るかも - 手をかざした時に、画面に「人を検知しました。」と表示され、音がなる。
- 以上2点を確認したのに、完成です。
- 何もない方向にセンサーを向けておいて、音がならないか。
##第4章 最後に
これで入店音システムの記事は最終回となります。お疲れ様でした!