2015-12-11 6 views
2

Я пишу скрипт python, который общается с Arduino. Каждый раз, когда я закрываю скрипт python и снова открываю его, Arduino перезапускается. Это связано с тем, что серийный порт снова запускается сценарием, поэтому мой Arduino перезагружается. Есть ли способ открыть последовательный порт в сценарии без перезапуска Arduino?Как открыть последовательный порт Arduino без перезапуска

Это мой код Python:

import time 
import serial 
from sys import argv 

script,elemento,control =argv 

arduino= serial.Serial('COM7',9600) 
#while True: 
time.sleep(1) 
elemento=int(elemento) 
control=int(control) 
if (elemento>0) & (elemento<10): 
    print(elemento) 
    print(control) 
    if control == 1: 
     arduino.write(str(elemento)) 
     time.sleep(0.5) 
     arduino.write(str(control)) 
    elif control == 0: 
     arduino.write(str(elemento)) 
     arduino.write(str(control)) 
arduino.close() 
+0

Это как раз то, как arduino ведет себя .... это действительно не имеет ничего общего с python ... –

+0

ok, так что вы знаете, как я могу ждать аргументы из оконных кодов? .thanks –

ответ

1

На платформе Arduino сбрасывается, так как последовательный порт открыт команда пульсирует линию DTR. У меня очень мало опыта python, но этот link показывает dsrdtr как девятый параметр. Поместив там bool, вы сможете остановить его сброс. Я не уверен, хотите ли вы 0 или 1, поэтому вам придется экспериментировать.

Кроме того, в зависимости от конкретной платы и возможностей пайки обычно есть компонент, который вы можете удалить с платы, чтобы остановить последовательный порт от сброса платы. Имейте в виду, что этот параметр затрудняет загрузку новой прошивки, поскольку загрузчик использует сброс для запуска.

Удачи вам!

+0

Установив 'dsrdtr = True 'в параметрах конструктора Serial, я смог предотвратить перезапуск платы. –

Смежные вопросы