以前カメラの起動とLEDの点灯の時間の誤差を調べるための質問をしたのですが、この誤差の平均を求めようと何回か繰り返し平均を求めようとしたのですが、for文等でうまくできません。
繰り返しを用いるためにはthreadingではなく別の方法ですべきなのでしょうか
python3
1import time 2import picamera 3import datetime 4import threading 5import RPi.GPIO as GPIO 6 7GPIO.setmode(GPIO.BOARD) 8GPIO.setup(11,GPIO.OUT) 9 10USER_NAME = "pi/" 11HOME_DIR = "/home/" + USER_NAME 12SAVE_DIR = HOME_DIR + "cameradata/" 13 14datetime = datetime.datetime.today() 15datetime_formatted = datetime.strftime("%Y%m%d%H%M%S") 16 17file_name = "IMG_" + datetime_formatted 18 19starttime = time.perf_counter() 20 21 22def camera(): 23 global ctime 24 with picamera.PiCamera() as camera: 25 camera.resolution = (1024,768) 26 camera.start_preview() 27 time.sleep(1) 28 29 camera.capture(SAVE_DIR + file_name + ".jpg") 30 cameratime = time.perf_counter() 31 ctime = cameratime - starttime 32 print("CAM = {:.9f}s" .format(ctime)) 33 time.sleep(0.00001) 34 35 camera.capture(SAVE_DIR + file_name + ".jpg") 36 cameratime2 = time.perf_counter() 37 ctime2 = cameratime2 - starttime 38 print("CAM2 = {:.9f}s" .format(ctime2)) 39 40 camera.stop_preview() 41 42 43def LED(): 44 global Ltime 45 46 for i in range(1): 47 GPIO.output(11,GPIO.LOW) 48 time.sleep(1) 49 GPIO.output(11,GPIO.HIGH) 50 LEDtime = time.perf_counter() 51 Ltime = LEDtime - starttime 52 print("LED = {:.9f}s" .format(Ltime)) 53 time.sleep(0.01) 54 GPIO.output(11,GPIO.LOW) 55 time.sleep(2) 56 57 GPIO.cleanup() 58 59 60 61 62 63p1 = threading.Thread(target = camera) 64p2 = threading.Thread(target = LED) 65p1.start() 66p2.start() 67p1.join() 68p2.join() 69print("camera - LED = {:.9f}s" .format(ctime = Ltime)) 70
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/05 05:09
2018/12/05 13:04