PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo zucken beim Steuern über RS232



themaddin
01.10.2005, 14:52
Moin!

Ich bin dabei mir den Arm von www.lynxmotion.com nachzubauen. Dieser ist bis jetzt soweit mit den 5€-billig-Servos von Conrad bestückt die aber nicht so pralle sind. Habe mir jetzt testweise ein analoges Power-Servo(Dymond D8500) und ein Digitales-Power-Servo (Dymond DS9500) geholt.
Das Digi-Servo hat auf jedenfall mehr Kraft und ist schneller.

Habe jetzt folgendes Test-Programm geschrieben:


'--------------------------------------------------
' Servo über RS232
' 1.10.2005 Martin Jacobsen
'--------------------------------------------------


Config Portc = Output

'dim a variable
Dim Wort As String * 10 'Empfangener String
Dim Pos1 As Long 'Positionen der Servos
Dim Pos2 As Long


Dim A As Long 'Variable für den empfangenen Wert


Enable Interrupts
Config Servos = 2 , Servo1 = Portb.4 , Servo2 = Portb.5 , Reload = 10
On Urxc Onrxd
Enable Urxc


Pos1 = 100
Pos2 = 100


Prog:


If Len(wort) > 3 Then 'wenn mehr als 3 zeichen empfangen worden sind

A = Val(wort)
Select Case A
Case 1000 To 1999 : Pos1 = A - 1000
Case 2000 To 2999 : Pos2 = A - 2000
End Select
Print "Position1: " ; Pos1
Print "Position2: " ; Pos2
Wort = ""

End If



Servo(1) = Pos1
Servo(2) = Pos2

Goto Prog

Onrxd:
Wort = Wort + Chr(udr)
Return

Das Programm funktioniert mit dem Analogem Powerservo einigermaßend zufriedendstellen. Das Digital-Servo geht gar nicht mit diesem Programm, nicht als Servo1 oder Servo2. Das analoge funktioniert mit beiden Ausgängen.
Mit nem anderen Programm das so ähnlich aussah gingen beide servos. Mit einem Delphiprogramm konnte ich bei steuern. Das Problem war nur das das Digi-Servo ab und zu zuckt wenn ich das Analoge Servo verstelle.

Desweitern sind die Schritte die man mit dem Servo-Befehl machen kann zu groß. Das DigiServo ist so schnell, das gibt nur ruckelnde Bewegungen beim Arm. Ich braucht eine Funktion mit mehr Schritten.

Ich habe das Gefühl das das Digital-Servo das Eingangssignal viel genauer nimmt als das Analoge, kann das sein?

Hat jemand Tipps für mich?

PicNick
02.10.2005, 10:00
Da ist auf jeden Fall das protentielle Problem, daß du mit dem Zurücksetzen von "wort" sehr lange wartest. In der Zeit, die die zwei PRINT verbraten, bringt Bill Gates drei neue Updates heraus. Im vollem Betrieb gibt's da auf jeden Fall ein Durcheinander.
Ich empfehle zwei abwechselnde "wort" variablen. Umschalten INNERHALB der ISR