Hi,
ich habe ein Programm mit Visual Basic geschrieben, um meinen Roboter mit einem Joystick zu steuern. Dabei habe ich mich an dem Beispiel aus dem RN-Wissen orientiert. Mit dem Programm steuer ich das RN-MotorControl an. Leider funktioniert das Programm manchmal nicht. Dann reagieren die Motoren erst verzögert auf die Joystick-bewegung oder gar nicht. Hier ist ein Teil aus meinem Programm:
Code:Dim Z As String Z = state.Z If Z > 5 Then SerialPort1.Write("##") SerialPort1.Write(Chr(3)) 'Anzahl der folgenden Bytes SerialPort1.Write(Chr(5)) 'Befehlscode Drehrichting SerialPort1.Write(Chr(1)) 'Rechter Motor SerialPort1.Write(Chr(0)) 'Geschwindigkeit SerialPort1.Write("##") SerialPort1.Write(Chr(3)) 'Anzahl der folgenden Bytes SerialPort1.Write(Chr(2)) 'Befehlscode Leistung SerialPort1.Write(Chr(1)) 'Rechter Motor SerialPort1.Write(Chr(Z)) 'Geschwindigkeit ElseIf Z < -5 Then SerialPort1.Write("##") SerialPort1.Write(Chr(3)) 'Anzahl der folgenden Bytes SerialPort1.Write(Chr(5)) 'Befehlscode Drehrichting SerialPort1.Write(Chr(1)) 'Rechter Motor SerialPort1.Write(Chr(1)) 'Geschwindigkeit SerialPort1.Write("##") SerialPort1.Write(Chr(3)) 'Anzahl der folgenden Bytes SerialPort1.Write(Chr(2)) 'Befehlscode Leistung SerialPort1.Write(Chr(1)) 'Rechter Motor SerialPort1.Write(Chr(Z * -1)) 'Geschwindigkeit ElseIf 2 > Z > -2 Then SerialPort1.Write("##") SerialPort1.Write(Chr(3)) 'Anzahl der folgenden Bytes SerialPort1.Write(Chr(2)) 'Befehlscode Leistung SerialPort1.Write(Chr(1)) 'Rechter Motor SerialPort1.Write(Chr(0)) 'Geschwindigkeit End If End Sub
Wie kann man z.B das in eine Zeile schreiben?
SerialPort1.Write("##")
SerialPort1.Write(Chr(3)) 'Anzahl der folgenden Bytes
SerialPort1.Write(Chr(5)) 'Befehlscode Drehrichting
SerialPort1.Write(Chr(1)) 'Rechter Motor
SerialPort1.Write(Chr(0)) 'Geschwindigkeit
Bitte gebt mir Vorschläge wie man das Programm verbessern kann.







Zitieren

Lesezeichen