merken von positionen?

Allgemeines und oft gestellte Fragen (z.B. Baukästen, Anleitungen, Projekte...)

Moderator: Moderatoren

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

merken von positionen?

Beitragvon Golfi123 » 29. Dez 2009 16:55

Hi Leute
Ist es möglich den NXT so zu programmieren dass er sich merken kann ob er an dieser position schon war und dann zur nächsten fährt?

das alles soll mit NXT-G programmiert werden.

Benutzeravatar
Tim Sasdrich
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 797
Registriert: 14. Okt 2007 12:19
Wohnort: VS
Kontaktdaten:

Beitragvon Tim Sasdrich » 29. Dez 2009 17:15

Theoretisch geht es, praktisch wirst du aber zu große Abweichungen haben, wenn er fährt oder sich dreht. Wenn man es mit viel Aufwand prorammiert (exakt auf dieses Modell angepasst), kann es schon sein, dass es auf einem anderen Untergrund nicht geht.

Wenn man das genau machen will, geht das, aber das ist nicht so leicht. Möglich wäre z.B. GPS mit Referenzsensor => Ortung auf 1mm oder noch genauer, ist aber nicht billig und wird wohl einen PC erfordern, der die Daten verarbeitet.

Natürlich gibt es auch noch viel mehr Möglichkeiten, z.B. lässt sich mit dem Kompasssensor bestimmt auch schon viel machen.

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

Beitragvon Golfi123 » 29. Dez 2009 17:49

also bei mir handelt es sich nur um das gerade aus und rückwärtsfahren in einer schiene. es muss auch nur auf diesem und selben untergrund funktionieren. (ca eine strecke von 40cm).

Ist das tz möglich?

bitte mal ansatz von nxt-g programm posten!

Benutzeravatar
Sebi
Administrator
Administrator
Beiträge: 1946
Registriert: 11. Jan 2008 14:28
Wohnort: Aub
Kontaktdaten:

Beitragvon Sebi » 29. Dez 2009 18:20

Dafür währe ein Array gut. Bei Arrays kannm man auch im Programm neue Varoiablen erstellen und über einen Wert auf einen X-belibigen Arraywert zugreifen....
Oder du nimmst z.B. 10 Variablen, schreibst die Werte rein, und überbrüft dann, ob an der Stelle shcon warst.

Linus
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 512
Registriert: 13. Jul 2007 15:50

Beitragvon Linus » 29. Dez 2009 19:29

Vereinfachen wir das Problem mal: Also, einen Motor auf genau die Position zu drehen, an der er vorher stand, ist möglich. Man merkt sich vor dem Losfahren die Position des eingebauten Rotationssensors (z.B. RotationCount - weiß nicht welche Sprache du nutzt, bzw. wie es in NXT-G genau heißt). Dann fährt man los, schaut am Ziel welche Position man hat (oder man weiß es schon). Und dann fährt man die entgegengesetzte Strecke zurück.

Soweit so gut - der Motor dreht wie er soll. Wenn natürlich der Untergrund oder die Umwelt nicht mitmachen, hat man ein Problem, klar. Aber das ist ein anderes (und schwierigeres). Man könnte, z.B. mittels sauberer Schienen, dafür sorgen, dass das Geradeausfahren keine Hindernisse bereitet...


Soviel dazu!

Eine Möglichkeit wäre übrigens auch, am Ende des Gleises einen Prellbock anzubringen, und an den Zug einen Touch-Sensor. Wenn der gedrückt wird, fährt er zurück. Hat man 2 Sensoren (z.B. aus dem NXT 2.0 Set) kann man 2 Prellböcke und Sensoren an beiden Enden des Zuges benutzen!
RWTH - Mindstorms NXT Toolbox for MATLAB - www.mindstorms.rwth-aachen.de
Beispielvideo mit der Toolbox in Aktion

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

Beitragvon Golfi123 » 30. Dez 2009 00:13

also nochmal mein genaues problem:
ein sensor ordnet 1 wert 8 felder zu und muss 8 figuren auf die felder setzen die figuren sind gleich. jetzt muss er aber wissen ob er auf das erste feld schon eine figutr gesetzt hat oder nicht. um dann eine figur mit dem selben wert aufs nächste feld zu stzen. wie ist das machbar mit NXT-g
bitte bilder posten.

wwwilli
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 44
Registriert: 8. Nov 2009 12:03
Wohnort: Baden-Württemberg

Beitragvon wwwilli » 30. Dez 2009 02:06

Hallo Golfi,
wenn Du nur auf der Schiene bleibst, ist doch jede Position, die du anfährst, durch die Anzahl Umdrehungen auf dem Weg dahin bestimmt. Die hast Du ja ins Prog geschrieben. Dann fährst Du eben nachher soundsoviel Umdrehungen wieder zurück, oder nicht?

Oder wer oder was bestimmt sonst über die Positionen, die angefahren werden? Irgendwelche Ereignisse? Dann wäre zu überlegen, ob man an diesen Positionen mit dem US die Entfernung zu einem definierten Punkt (zB Prellbock) misst, (in einem Array) speichert und nachher wieder und dann mit gewisser Toleranz checkt, ob die Entfernung schon da war, (d.h. im Array gespeichert ist). Das ist jetzt mal theoretisch, ich habe selbst keine Ahnung, ob das real mit dem US gehen würdeund wie überhaupt mit G. 8-)

Oder Du schlägst an den Positionen, wo du schon warst, irgendwelche realen Nägel ein (was auch immer, vorgefertigte Bauteile zum Rauf- oder Runterklappen o.ä.) und guckst nachher, ob schon einer da ist. Aber dann kannst Du vllt auch gleich nach den aufgestellten Figuren gucken.

Soweit mal genug für 02:00.
MfG,
wwwilli

PS. Ich habe Deine Texte noch mal gelesen, ich finde nicht, das man (ich) Dein Problem so schon richtig verstehen kann. Gib noch mal mehr Futter...

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

Beitragvon Golfi123 » 30. Dez 2009 11:49

ic merke ich muss mein problem nochmal ausführlich erklären:
es gibt 8 Fedler und 8 selbe figuren. Der NXT muss jetzt diese 8 exakt selben figuren auf 8 verschiedene in einer reihe liegenden felder verteilein.
er fängt ganz links aussen an und arbeitet sich dann bis rechts durch. nur jetzt ist das problem woher weiß der nxt ob er auf z.b. das erste feld schon eine figur gestellt hat oder nicht denn wenn ja muss er ja zum 2ten feld fahren. die figuren haben alle den selben erkennungswert.
Also noch einmal: wie ist das mit nxt-g zu programmieren?

Benutzeravatar
Tim Sasdrich
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 797
Registriert: 14. Okt 2007 12:19
Wohnort: VS
Kontaktdaten:

Beitragvon Tim Sasdrich » 30. Dez 2009 16:53

Gehen wir mal davon aus:
  • Der Zug braucht 10 sec um über das gesamte Feld zu fahren.
  • Die Figuren holt er links
  • Links ist ein Hindernis, sodass der Zug dort nicht weiter kann
  • Der Abstand von Feld zu Feld beträgt eine Umdrehung

So könnte das dann funktionieren (da ich schon länger nicht mehr mit dem NXT gearbeitet habe, habe ich hier leider kein NXT-G):
  1. Anfang einer Zählschleife mit Zählerausgang
  2. Der Zug fährt 15 sec. nach links
  3. Greift eine Figur
  4. Der Zug fährt die Anzahl der Zählerschleife in Umdrehungen nach Rechts
  5. Ende der Zählerschleife, die nach 8 Durchgängen beendet wird

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

Beitragvon Golfi123 » 10. Aug 2010 14:09

okay ich würde gerne den NXT an einer bestimmten stelle eine Zahl erstellen lassen. Diese Zahl soll dann gespeichert werden und später soll der NXT schauen ob diese Zahl im Speicher ist ,wenn ja weiß er dass er an der bestimmten Stelle schon war.

Wie ist das im NXC möglich.

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

Beitragvon Golfi123 » 10. Aug 2010 14:15

Dieses Programmmüsste dann ja so ählich aussehen:

Code: Alles auswählen

RotateMotor(OUT_A,100,30);    //zu einem Ort auf der Linie Fahren
CreateNumber(1,save)            //eine Zahl "1" festlegen und speichern
...
...
...                                           //weiter im Programm
...
 ...
if(Number"1" im Speicher);      //falls eine "1"im Speicher ist dann...
...
...


Nur so als beispiel jetzt müsste ich nur wissen wie diese Befehle richtig heißen zum Speichern und abrufen von Zahlen etc.


Zurück zu „Allgemeines zu Lego Mindstorms NXT und EV3“

Wer ist online?

Mitglieder in diesem Forum: Exabot [Bot] und 18 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss