как лучше одновременно управлять шаговым двигателем и камерой?
Предположим, что камера находится на линейной сцене (шаговый двигатель), и я хочу перемещать сцену с шагом 1 мм и захватывать кадр в конце каждого шага.Оба устройства (камера и сцена) подключены к моему компьютеру (Ubuntu 18.04.3 LTS) через 2 разных порта USB 2.0.
Мой скрипт для камеры выглядит примерно так:
def camera():
...
...
...
while(True):
cv2.imshow('live', frame)
ueye.is_ExitCamera(hCam2)
cv2.destroyAllWindows()
if __name__ == "__main__":
camera()
и выводит прямую трансляцию с камеры.
Для мотора что-то вроде:
i = 0
while i < 6: # Move 6 times
stepper.Move(0.5) # Moves forward by 0.5 mm
time.sleep(1) # Sleeps for a second
i += 1
time.sleep(2)
print("\nProcess End\n")
close() # closes port
и двигается и спит по желанию.
Оба сценария успешно выполняются при отдельном исполнении.Однако как мне объединить эти сценарии, чтобы я мог сделать снимок в конце каждого шага?Для приведенного выше примера перемещения 6 раз я хочу получить 6 изображений в конце, захваченных в конце каждого шага.Следует ли использовать многопоточность, многопроцессорность? ... Оба устройства подключены к моему компьютеру через 2 отдельных порта USB 2.0.Я не новичок в программировании, но и не эксперт, поэтому любые предложения будут любезно оценены.