Устранение неполадок последовательной связи от Python до Arduino - PullRequest
0 голосов
/ 22 апреля 2019

Я использую программное обеспечение, которое имеет возможности сценариев Python. Я хочу использовать его для перемещения сервосистемы Clearpath и периодического запуска внутренних программных команд.

Используя Arduino, я могу управлять сервоприводом, но он начинает работать неправильно, когда я начинаю использовать последовательную связь. Прочитав другой пост, я думаю, что проблемы возникают из-за того, что последовательная связь является 8-битной, и я хочу отправить большое int.

Например, часть кода Arduino показывает:

void loop(){  
 if(Serial.available()){
 inByte = Serial.readStringUntil('\n');
 ser = inByte.toInt();
 X.move(ser);
 while(!X.commandDone()||!X.readHLFB())
 { }
 Serial.print (inByte);
 delay(1000);
 }
}

Прежде чем я начал использовать последовательную связь, я бы использовал целые числа в X.move (ser) и получал безупречные результаты. Теперь, когда я использую последовательный порт, я могу сказать, что с этим кодом что-то не так. Хотя кажется, что он работает с использованием Serial Monitor, чем больше я пробую его (особенно с использованием больших чисел), тем больше понимаю, что он, вероятно, не делает то, что делал до того, как использовал serial.

Затем добавьте Python в смесь, и это станет еще хуже. Чтобы дать вам представление о том, что я пытаюсь сделать, вот пример кода Python:

ser = serial.Serial('COM3', 9600, timeout=1)
ser.close()
ser.open()
while True:
    var = "1000"
    ser.write(var.encode())
    time.sleep(1)'

Используя этот код, сервопривод перемещается, но это совсем не правильно. Как я могу отправить большие целые числа (например, 50502) из ​​Python в Arduino через последовательный порт, чтобы он не был поврежден во время последовательного соединения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...