У меня есть два скрипта Python, которые меняют положение двух сервоприводов. Второй скрипт работает как нужно, но когда я запускаю первый, первый серво выполняет дополнительный цикл или вращение, что является проблемой. Вы видите, почему это происходит?
(это просто добавленный текст для прохождения проверки длины символа в SO)
Первый скрипт:
from pyfirmata import ArduinoMega, SERVO
from time import sleep
port = '/dev/ttyACM0'
board = ArduinoMega(port)
sleep(5)
board.digital[13].mode = SERVO
board.digital[12].mode = SERVO
def set_first_servo(angle):
board.digital[13].write(angle)
sleep(0.015)
def set_second_servo(angle):
board.digital[12].write(angle)
sleep(0.015)
a, b = True, True
while a:
for position in range(135, 0, -1):
set_first_servo(position)
a = False
while b:
for position in range(0, 135):
set_second_servo(position)
b = False
board.exit()
И второй скрипт (с этим проблем нет):
from pyfirmata import ArduinoMega, SERVO
from time import sleep
port = '/dev/ttyACM0'
board = ArduinoMega(port)
sleep(5)
board.digital[13].mode = SERVO
board.digital[12].mode = SERVO
def set_first_servo(angle):
board.digital[13].write(angle)
sleep(0.015)
def set_second_servo(angle):
board.digital[12].write(angle)
sleep(0.015)
c, d = True, True
while c:
for position in range(0, b):
set_first_servo(position)
c = False
while d:
for position in range(e, 0, -1):
set_second_servo(position)
d = False
board.exit()