-
Hallo zusammen,
@NumberFive
Dann hab ich das wohl missverstanden, ich benutze natürlich eine serielle Kommunikation zwischen den AVR´s. Wenn ich soweit bin, dass mein Bot fertig ist können wir das gerne mal ausprobieren.
@all
Ich habe nun einen USB Joystick in meine Steuerung integriert, so lässt sich der Sann4WD wesentlich besser steuern als mit den Mausclicks.
Ich werde in der nächsten Zeit noch ein SRF08 und eine CMUCam auf den Sann bauen, mal sehen was dabei heraus kommt.
Ein kleines Problem habe ich noch bei meinem Interface, es durchläuft während der Joystick Steuerung eine Loop und sendet mir permanent den "Stop" Befehl an den Bot dadurch ist die serielle Kommunikation auch ständig in Betrieb und wird auch extrem langsam. Habe die letzten Tage viel damit rumgespielt, allerdings bin ich irgendwie nicht viel weitergekommen.
Hier ist der Code zu der Loop:
Code:
Private Sub JoyLoop()
Dim preMedMsg As String
Dim JS As New clsJoy
Dim tStr As String
Do While active = True
Text15.Text = JS.JoyPOV
Text16.Text = active
Select Case JS.JoyPOV
Case 65535
MSComm1.Output = "s"
Case 0
MSComm1.Output = "f"
Case 18000
MSComm1.Output = "b"
Case 27000
MSComm1.Output = "l"
Case 9000
MSComm1.Output = "r"
End Select
If JS.JoyButState = 4 Then
MSComm1.Output = "4"
Sleep 500
End If
DoEvents
Loop
End Sub
Der Stopbefehl ist der MSComm1.Output "s"
Hat jemand ne Idee wie ich den soweit abfangen kann, dass er nicht permanent das "s" sendet? Das ganze ist in VB6 programmiert.
Gruss an alle
Clemens
-
aehm....
Mach es doch so:
Nimms ne boolean die speichert ob im vorherigen durchlauf irgendein movement ausgefuehrt wurde (also die boolean auf true, wenn irgendwas ausser s gesendet wurde).
Wenn der JS in der Mitte ist, wird ueberpreuft ob die boollean true is, dann wird "s" gesendet und dann die boolean auf false gesetzt. Schau mal ob das was bringt.
Eigentlich mag ich VB nicht aber di Grundlagen scheinen ja einfach zusein:
Code:
Private Sub JoyLoop()
Dim preMedMsg As String
Dim JS As New clsJoy
Dim tStr As String
Dim doS As Boolean = false
Do While active = True
Text15.Text = JS.JoyPOV
Text16.Text = active
Select Case JS.JoyPOV
Case 65535
If doS then
MSComm1.Output = "s"
doS = false
End If
Case 0
MSComm1.Output = "f"
doS = true
Case 18000
MSComm1.Output = "b"
doS = true
Case 27000
MSComm1.Output = "l"
doS = true
Case 9000
MSComm1.Output = "r"
doS = true
End Select
If JS.JoyButState = 4 Then
MSComm1.Output = "4"
Sleep 500
End If
DoEvents
Loop
End Sub
MfG
Surma
-
Jooooo, so funzt das !!
Vielen dank! Gruss Clemens
-
hui das macht mich stolz, denn ich kann kein wort basic :D
freu mich schon auf ein weiteres Video, wuerd gern mal die Videofassung sehen, also in Action ;-)
-
@LuK-AS:
Die Software kann man jetzt runter laden und bei der Windows version ist das
Serial addon auch da bei. Hast du lust das Jostik Teil für die mc als Addon zu machen ?
Gruß Numberfive
-
@NumberFive
Ich kann zwar die serielle Schnittstelle in VB programmieren aber alles was mit TCP/IP zu tun hat hab ich nicht drauf :(
Gruss Clemens
-
Das mit dem TCP-Zeug ist mit VB nicht sonderlich schwer, eigentlich reicht folgendes Tutorial vollkommen aus, um I-Net-Anwendungen zu schreiben: http://www.activevb.de/tutorials/tut...nsock_con.html
Ich hoffe, du kannst das gebrauchen! ;-)
Gruß, Trabukh
-
@LuK-AS bei der MCWin ist ein dll dabei die das ganze tcp kapselt damit brauchst du die nicht mehr darum kümmern.
Gruß Numberfive
-
Ich werde das gleich nach der RobotLiga ausprobieren :)
-