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.
Lesezeichen