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: 214)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.05.2013, 20:44
Beitrag #2

NWOmason Offline
Simultator
*****


Beiträge: 1.078
Registriert seit: Dec 2010

2012.SP1
2008
EN

93047
Deutschland
RE: NXT: Servos kontinuierlich ansprechen
(01.05.2013 17:57 )pixelpress schrieb:  x>0: n=n+1
x=0: n=n
x<0: n=n-1

und nachher Position = n

Also sowas?

   


11.0 .vi  Servo_Steuern.vi (Größe: 8,13 KB / Downloads: 218)


Beste Grüße,
NWO

9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris
.

NI schrieb:To use the abort button is like using a tree to stop a car!

(20.01.2012 11:02 )NWOmason schrieb:  Getting Started with NI LabVIEW Student Training
http://zone.ni.com/devzone/cda/tut/p/id/7466

Introduction to NI LabVIEW - Learn LabVIEW Basics
http://www.ni.com/gettingstarted/labviewbasics/

Top 5 der Empfehlungen für LabVIEW-Einsteiger
http://www.ni.com/newsletter/51735/de/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2013, 08:35
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: NXT: Servos kontinuierlich ansprechen
Oder so:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.05.2013, 20:04 (Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2013 20:15 von pixelpress.)
Beitrag #4

pixelpress Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: May 2013

2011
2013
kA



RE: NXT: Servos kontinuierlich ansprechen
Hi zusammen

Sorry, zu Voreiliger Post. Bin grad auf dem Weg zur Lösung.

Danke für eure Hilfe. Hat mich schon mal weitergebracht.

pp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.05.2013, 21:48
Beitrag #5

pixelpress Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: May 2013

2011
2013
kA



RE: NXT: Servos kontinuierlich ansprechen
So, ich muss nochmals kurz eure Hilfe beanspruchen.

Haben einen Teleskoparm. Diesmal keine Servos, sondern ein Motor. Bewegung auf Knopfdruck hat bisher funktioniert. Nun wollte ich noch eine Sicherheit einbauen, dass der Arm nicht über den Anschlag hinausfährt. Habe dazu den Drehwinkel des Motors ausgelesen. Und dann zwei Case-Anweisungen verschachtelt. Der Motor soll also einfach nicht mehr in die entsprechende Richtung bewegbar sein, sobald er auf Position 0, resp. 1600 ist. Nun bekomme ich einen Error: "Case Structure: Selector values are not unique". Habe auch schon versucht den Winkel zweimal auszulesen. Selber Error.

   


Gruss pp


Angehängte Datei(en)
11.0 .vi  arm_senken.vi (Größe: 12,35 KB / Downloads: 190)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.05.2013, 22:37
Beitrag #6

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: NXT: Servos kontinuierlich ansprechen
Wie die Meldung sagt ist der Case-Wert nicht eindeutig. Du hast jeweils einen Bereich "..1600" bzw. "..0" und einen Bereich "1600.." bzw. "0..". Das führt dazu das in der jeweiligen Case-Struktur die 0 bzw. 1600 in mehr als einem Case vorkommt und das geht letztendlich nicht. Du musst den Bereich in einem der beiden Cases somit einkürzen z.B. auf "1601.." statt "1600..".
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


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

Gehe zu: