Я использую программное обеспечение, которое имеет возможности сценариев 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 через последовательный порт, чтобы он не был поврежден во время последовательного соединения?