INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

NXT: Servos kontinuierlich ansprechen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

01.05.2013, 17:57
Beitrag #1

pixelpress Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: May 2013

2011
2013
kA



NXT: Servos kontinuierlich ansprechen
Hallo zusammen

Ich bin relativ neu, was LabView angeht. Habe mich nun für ein Uniprojekt eingearbeitet. Wir müssen einen Lego NXT programmieren.
Nun stehe ich vor einem grösseren Problem. Zwar wollen wir einen Roboterarm mit zwei Gelenken und vier Servos mit einem PS Controller ansteuern. Für Servos und PS Controller gibt es von Mindsensors die Funktionisblöcke geliefert. Die Joysticks am PS Controller sollen einen Wert von 0-100, resp. -100-0 liefern. Wir können nun also nicht die Werte vom Joystick als Servoposition durchgeben, da sich sonst der Arm immer gerade zurückbewegt, wenn man den Joystick loslässt. (Zweites Problem: Der Servo würde auf schnelle Kommandowechsel nicht reagieren, sondern die Anweisung nacheinander ausführen). Crashgefahr ist also recht hoch für unseren liebevoll in hunderten von Stunden hergestellten Roboterarm Wink.

Nun wollte ich die Geschwindigkeit mit dem Joystick steuern (abs(x)=Geschw.) und mit einer case-Anweisung dem Servo durchgeben, dass er sich je nach dem ob x>0, x=0, x<0 (x: Joystickwert) um "eine Einheit" in positive Richtung (x<0) oder negative Richtung (x<0) bewegen soll. Alles in einer Schleife. Nun müsste ich also den vorherigen Positionswert n vom Servo in der case-Anweisung inkrementieren, resp. dekrementieren. Nur weiss ich nicht, wie ich auf diesen Wert zurückgreifen kann.

x>0: n=n+1
x=0: n=n
x<0: n=n-1

und nachher Position = n

Die Idee war, dass ich die Argumente kurz vor dem erreichen des Servos nach dem Case nochmals "unbundle" um das n für die nächste Runde zu speichern... aber Variablen und so Blink.

Irgendwann würde der Arm dann halt auch crashen, wenn man unvorsichtig steuert. Das werde ich aber später mit einem if-else lösen.

Im Anhang befindet sich meine LabView Datei für einen Motor. Da ich mir nicht sicher bin, ob man alles sieht, wenn man das Lego Zeugs nicht hat, habe ich noch ein Bild vom Programm angefügt.

Bin dankbar für jede Hilfe.

Gruss
pp


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  armbewegung_v2.vi (Größe: 10,13 KB / Downloads: 212)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
NXT: Servos kontinuierlich ansprechen - pixelpress - 01.05.2013 17:57

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Exclamation Große Menge Servos ansteuern sroth1 13 14.462 15.06.2013 20:17
Letzter Beitrag: sroth1

Gehe zu: