ラズベリーパイに赤外線センサーとスピーカーをつないで、センサーが反応したら、スピーカーで音楽を流すというモチベ上げマシンを作っているのですが、なぜか人が通っていないのに、1分刻みで音楽が流れます。(本当に、本当に、一分刻みです。何十回と計りました。)
とりあえず、プログラムに問題があるのかここで、客観的に見てもらっても構わないでしょうか。業務経験0の素人なもんで、書き方が変なのはご了承ください。
ちなみに、センサーが感知したら、センサー反応の証として、LEDが点滅するようにもなっています。
Python
1#ラズパイでセンサー感知したらmp3再生プログラム 2 3import RPi.GPIO as GPIO 4import time 5import subprocess 6 7#変数指定 8LED_GPIO = 2 9PIN_IN = 21 10mp3_file = "ファイル名.mp3" 11command = "omxplayer -o local /home/pi/" + mp3_file #コマンドで、mp3を再生する 12waittime = 0.1 13 14#GPIOピンの設定 15GPIO.setwarnings(False) 16GPIO.setmode(GPIO.BCM) 17GPIO.setup(PIN_IN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) #センサから信号を受け取る 18 19GPIO.setup(LED_GPIO, GPIO.OUT) 20 21def LED_True(): #LEDを光らせる関数 22 for i in range(5): 23 GPIO.output(LED_GPIO, True) 24 time.sleep(waittime) 25 GPIO.output(LED_GPIO, False) 26 time.sleep(waittime) 27 28def PlayMusicWith_cmd(): #MP3を再生する関数 29 process = subprocess.call(command,shell = True) 30 31try: 32 while True: 33 flag = GPIO.input(PIN_IN) == GPIO.HIGH 34 if flag == True: 35 LED_True() 36 PlayMusicWith_cmd() 37 38 else: 39 pass 40 41except KeyboardInterrupt: 42 exit() 43 44finally: 45 GPIO.cleanup() 46
回答1件
あなたの回答
tips
プレビュー