Здесь я пытаюсь управлять моим сервоприводом sg90 с помощью ползунка GUI, созданного с помощью Tkinter, и отправлять текущее значение ползунка в Arduino через последовательный порт. Теперь проблема заключается в том, что когда я говорю, я перемещаю ползунок с 72 на 77 быстро, значение, которое он показывает на последовательном мониторе, равно 7374757677.
здесь есть код python:
from tkinter import *
screen = Tk()
screen.geometry("400x400")
#some commands for arduino
import serial
uno = serial.Serial('/dev/ttyACM0', 9600)
def servocontrol(var):
uno.write(str(servo.get()).encode())
#defining the widget
servo = Scale(screen, from_=0, to=180, orient=HORIZONTAL, command=servocontrol)
#packing the widget
servo.pack()
#running the loop
screen.mainloop()
и вот код Arduino:
#include <Servo.h>
Servo myservo;
String pypos;
int pos = 0;
void setup()
{
myservo.attach(9);
Serial.begin(9600);
}
void loop()
{
if(Serial.available() > 0) {
pypos = Serial.readString();
Serial.println("Angle: " + pypos);
Serial.println('\n');
int pyposint = pypos.toInt();
myservo.write(pyposint);
Serial.flush();
delay(15);
}
}
теперь посмотрите на вывод,
![enter image description here](https://i.stack.imgur.com/NSWDn.png)
Понятия не имею что не так. было бы очень полезно, если бы кто-нибудь мог мне помочь.