WELCOME TO EASTWORLD

Eastworld でドロイド遊び Rapiro が主人公 ラズパイが好物

Rapiro お手玉で遊ぶの巻

 

Rapiro 君、以前から興味があった multiprocessing というお手玉に興じてみました。

ちょろっと、かじってみたのがこちら:

 

from multiprocessing import Process

from datetime import datetime
import picamera
cammode = 1

def rapiroCam(cammode):
    with picamera.PiCamera() as camera:
        camera.framerate = 10
        camera.hflip = True
        camera.vflip = True
        t = str(datetime.now())
        if cammode == 1:
            picn = "rapiro_pic_" + t + ".jpg"
            camera.capture(picn)
            print("Snapshot " + picn + " taken")
        else:
            vidn = "rapiro_vid_" + t + ".h264"
            try:
                camera.start_recording(vidn)
                print("Started video recording " + vidn)
                camera.wait_recording(10)
                camera.stop_recording
                print("Stopped recording")
            except Exception as e:
                print(e)
        camera.close()
        print("Camera closed")

import serial
ser = serial.Serial('/dev/ttyS0', 57600, timeout = 10)

import pygame
pygame.init()
pygame.joystick.init()
joystick = pygame.joystick.Joystick(0)
joystick.init()
buttons = joystick.get_numbuttons()
axes = joystick.get_numaxes()

done = False

while done==False:
    try:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                done=True

            if event.type == pygame.JOYBUTTONDOWN:

                 for i in range( buttons ):
                    button = joystick.get_button( i )
                    if button == 1:
                        if i == 0:              # Square
                            ser.write("#M6")
                        elif i == 1:            # X
                            ser.write("#M0")
                        elif i == 2:            # Circle
                            ser.write("#M8")
                        elif i == 3:            # Triangle
                            ser.write("#M5")
                        elif i == 9:            # OPTIONS
                            cammode *= -1
                            if cammode == 1:
                                print("Picture mode")
                                raise Exception
                            else:
                                print("Movie mode")
                                raise Exception
                        elif i == 10:           # Left Stick push
                            print("Activating camera...")
                            p = Process(target=rapiroCam, args=(cammode, ))
                            p.start()
                        elif i == 12:
                            print("PS button pressed. Goodbye!")
                            try:
                                if p.is_alive():
                                    print("Closing camera...")
                            except Exception as e:
                                print(e)
                            ser.write("#M0")
                            done=True

    except Exception as e:
        print(e)

pygame.quit ()

 

<メモ>

お手玉も極めれば強力な武器になるとの甘言に釣られ、蛇拳 multiprocessing 流派の門を叩くことに。行きはよいよい、帰りは・・・

まずは軽くジャブを繰り出すように玉遊び。適当にコードを削ぎ落として、ビデオ録画も10秒間だけ録画する設定で試してみた。