raspberrypi4 放置プレイな猫のプログラム







今回は

ずっとほっとかれたら鳴く

というプログラムを実験的に書いてみた。

しかし、

なんだろう。



まあとにかくうざい!!

というのが正直な感想だ。





今回は happiness_val< 0.5
と定義したのだが

まあ人間

ほとんどの表情が0.5以下であるため

結局ほとんど鳴いていることになる



こうなってくると

ウザさが圧倒的に勝つため

そもそもこのロボットの存在意義がわからなくなってきた




自分は”どういったものが作りたかったのか

はたまた

このロボットで何がしたかったのか

を今一度再確認する必要がありそうだ。





✳︎プログラム

  1. import cognitive_face as CF
  2. import json
  3. import picamera
  4. import time
  5. import cv2 as cv
  6. import pygame
  7. import time
  8. import RPi.GPIO as GPIO
  9. import time, sys
  10. import pygame
  11. import time
  12.  
  13. #ポート番号の指定
  14. RED = 17
  15. GREEN = 27
  16. BLUE = 22
  17.  
  18. #GPIOポートの初期化
  19. GPIO.setmode(GPIO.BCM)
  20. ports = [RED, GREEN, BLUE]
  21. for port in ports:
  22.     GPIO.setup(port, GPIO.OUT)
  23. KEY = ''
  24. ENDPOIN = ''
  25. CF.Key.set(KEY)
  26. CF.BaseUrl.set(ENDPOINT)
  27. while True:
  28.     with picamera.PiCamera() as camera:
  29.         camera.resolution = (512,384)
  30.         camera.capture('test.jpg')
  31.         print('capture')
  32.         img = cv.imread('test.jpg')
  33.         grayimg = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
  34.         img = "test.jpg"
  35.         faces = CF.face.detect(img, attributes='emotion')
  36.         f=json.dumps(faces)
  37.         j=json.loads(f)
  38.         for i in range(0,len(j)):
  39.             print(j[i]['faceAttributes']['emotion']['happiness'])
  40.             happiness_val = j[i]['faceAttributes']['emotion']['happiness']
  41.             
  42.             
  43.             
  44.             if happiness_val < 0.5 :
  45.                 
  46.                 GPIO.output(RED,0)
  47.                 GPIO.output(GREEN,1)
  48.                 GPIO.output(BLUE, 0)
  49.                 print("幸せ")
  50.                 
  51.                 
  52.                 pygame.mixer.init(frequency=44100)
  53.                 pygame.mixer.music.load("/home/pi/mypython/camera/audio/cat1a.mp3")
  54.                 pygame.mixer.music.play(1)
  55.                 time.sleep(5)
  56.                 pygame.mixer.music.stop()
  57.                 
  58.                 
  59.                 GPIO.output(RED,0)
  60.                 GPIO.output(GREEN,0)
  61.                 GPIO.output(BLUE, 0)
  62.                 
  63.                 
  64.                 
  65.