ラズベリーパイを用いて下のようにして、LEDの点灯を同時に行おうとしてるのですがうまく時間を合わすことができません。
プログラムの実行時間が毎回ずれるので、別の方法でやろうかと思ったのですが、2つのプログラムを同時に起動する、LEDの起動を同期するといったやりかたはないでしょうか
python3.7.0
1import time 2import picamera 3import threading 4import RPi.GPIO as GPIO 5 6GPIO.setmode(GPIO.BOARD) 7GPIO.setup(11,GPIO.OUT) 8 9starttime = time.perf_counter_ns() 10 11def camera(): 12 with picamera.PiCamera() as camera: 13 camera.resolution = (640,480) 14 cameratime = time.perf_counter_ns() 15 ctime = cameratime - starttime 16 print("CAM = {:}ns" .format(ctime)) 17 camera.capture('/home/pi/cameradata/image.jpg') 18 cameratime2 = time.perf_counter_ns() 19 ctime2 = cameratime2 - starttime 20 print("CAM2 = {:}ns" .format(ctime2)) 21 camera.stop_preview() 22 23def LED(): 24 25 GPIO.output(11,GPIO.LOW) 26 GPIO.output(11,GPIO.HIGH) 27 LEDtime = time.perf_counter_ns() 28 Ltime = LEDtime - starttime 29 print("LED = {:}ns" .format(Ltime)) 30 time.sleep(0.01) 31 GPIO.output(11,GPIO.LOW) 32 time.sleep(2) 33 34 GPIO.cleanup() 35 36 37p1 = threading.Thread(target = camera) 38p2 = threading.Thread(target = LED) 39 40p1.start() 41p2.start() 42p1.join() 43p2.join() 44
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2019/01/17 07:33
2019/01/17 07:47 編集
2019/01/17 07:49
2019/01/17 07:51
2019/01/17 11:00