回答編集履歴

1

回答の修正

2021/12/20 13:01

投稿

Supernove
Supernove

スコア1154

test CHANGED
@@ -28,10 +28,16 @@
28
28
 
29
29
 
30
30
 
31
+ `GPIO.setup(led_white, GPIO.OUT)`を設定しているのであれば、`GPIO.setup(buzzer, GPIO.OUT)`も設定しないとだめなので、設定しましょう
32
+
33
+
34
+
31
- はプログラムでGPIO設定が残っているのが原因です。今のソースコードだと顔を検知したときにGPIOでLEDやブザーを起動をしたあとに`GPIO.cleanup()`をしていますが、これだと顔を検知しなかったらGPIOの設定がそのままになってプログラムが終わるので、再度プログラムを実行するとエラーになります。
35
+ から今のソースコードだと顔を検知したときにGPIOでLEDやブザーを起動をしたあとに`GPIO.cleanup()`をしていますが、これだと顔を検知しなかったらGPIOの設定がそのままになってプログラムが終わるので、再度プログラムを実行するとエラーになります。
32
36
 
33
37
  なので、やるのであればif文のブロックから外してプログラムの最後にGPIOをクリーンアップするようにしましょう。
34
38
 
35
39
 
36
40
 
41
+
42
+
37
43
  あと、OpenCVでWindowを表示してないのであれば、`cv2.destroyAllWindows()`は余計な処理なので消したほうがいいと思います。