PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 mit Visual Basic



fxt
22.05.2008, 23:20
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:

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.

Willa
23.05.2008, 00:11
Hi!
Das ist natürlich etwas blöd dass du so ein langes Protokoll senden musst um den Motor zu bewegen... Geht aber wohl nicht anders mit dem RN Motorcontrol. Auf was für einem Event liegt denn dein Code? Ich würde den in einen ~250ms timer legen, damit sich der serialport nicht verschlucken kann wenn du den joystick schnell bewegst. Und die Baudrate könnte vielleicht auch etwas hochgesetzt werden. Sonst könntest du höchtens den microcontroller anders programmieren.....

fxt
23.05.2008, 21:21
Hi,
danke für die Antwort. Ich werde das mit dem Timer und der Baudrate mal versuchen. Gestern habe ich schon statt der String Variablen eine Integer Variable genommen und da hat es immer funktioniert. Aber das kann auch Zufall gewesen sein.

Übrigens: Ich kenne dich glaube ich. Du warst mal beim BitZ in Darmstadt oder? Da habe ich dort gerade mein Betriebspraktikum gemacht.

Viele Grüße
Felix

Willa
23.05.2008, 21:27
Haha, stimmt, das ist ja der Hammer :-D
Was machst du mittlerweile? Schon fertig mit der Schule?
Was baust du denn für einen Roboter? Hast du Bilder oder so?

fxt
23.05.2008, 21:52
Mit der Schule bin ich leider noch nicht fertig. Ich bin in der 11. Klasse.

Das ist mein Roboter
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=2117



Und was machst du so? Machst du noch etwas, was mit Bionik zu tun hat?

Willa
23.05.2008, 22:12
Hi!
Der sieht ja echt gut aus! Das Oberteil ist ein alter scanner...? Cool :-D
Das hier ist mein (erster) roboter:
http://www.villalachouette.de/william/krims/leuchtliesel.wmv
Im moment sitze ich an meiner Doktorarbeit. Das Thema ist die instationäre Aerodynamik des Schlagflugs der Vögel. Dafür muss ich mir mein ganzes Setup selber bauen, deswegen habe ich überhaupt erst mit Robotik angefangen. Das Wissen kann ich jetzt gut für meine Forschung gebrauchen.
Wirst du in Zukunft was mit Bionik zu tun haben?
Alles Gute,
William

fxt
23.05.2008, 23:01
Deine Doktorarbeit hört sich ja sehr interessant an. Bist du zur Zeit in Darmstadt? Bei Wohnort hast du nämlich Hamburg stehen.

Der Roboter sieht auch sehr cool aus, auch das mit der Beleuchtung. Ich hab ihn mir hier im Forum schon mal angeschaut.

Ja das Oberteile ist von einem alten Scanner den hatte ich noch rumliegen und das hat von der Größe gut gepasst.
Mein Roboter ist auch mein erster Roboter (Asuro zählt ja eher nicht). Leider macht mir das Programmieren nicht so großen Spaß (liegt wohl daran, dass ich es nicht richtig kann) Ich baue lieber die "Hardware". Aber ohne Software läuft bei einem Roboter eben wenig.

Ob ich was mit Bionik zu tun haben werde weiß ich noch nicht. Aber ich habe auf jeden Fall vor Maschinenbau zu studieren. Für die Oberstufe habe ich Mathe und Physik als Leistungskurs gewählt. Bio habe ich nicht mehr gewählt. Das viele Auswendiglernen...

Viele Grüße und viel Spaß bei deiner Doktorarbeit

Willa
11.06.2008, 20:07
Hallo Felix!
Was macht dein Problem? Hast du es mittlerweile gelöst?
Ich bin z.Zt. in Groningen (Niederlande) werde aber evtl. bald nach Bremen wechseln. Hamburg ist nur meine Heimatstadt.....
Viel Erfolg in der Schule...!!!