voyagetom
13.10.2015, 22:56

Frage zu NXT 2.0 Programmierung

Hallo liebe Lego Freaks,

Da ich immer nur sporadisch kleine Programme am NXT 2.0 erstellt habe, habe ich nun ein paar detailliertere Fragen an die "echten" Programmierer:

Beim Warte Block muss ich eine Zeit angeben. Bisher habe ich immer einen festen Wert angegeben. Ein aktuelles Projekt erfordert aber nun, dass ich die Zeit als Variable eingeben sollte während dem laufenden Betrieb. Am liebsten die Variable abfragen gleich zu Beginn nach dem Programmstart und dann in den Zeitblock übernehmen. Geht sowas und wenn ja, dann wie ? Die NXT Tastatur hat ja nun auch keine Zahlen zur Verfügung, aber mit den Pfeiltasten könnte man ja wie bei einem Radiowecker die Zeit mit +/- korrigieren bzw. einstellen, z.B. ausgehend von einem fest vorgegebenen Wert 50sec. mit < > das "Feintuning" vornehmen. Dabei keine fremden Hilfsmittel, wie Laptop, Smartfone o.ä., nur die NXT Tasten.

Das selbe müsste ich dann noch haben für die Blöcke der Motorsteuerung. Auch dort will ich Laufzeiten in 0.1 sec. Schritten für die Laufzeit Dauer einstellen.

Für Anregungen, Tips, Anleitungen etc. bin ich Dankbar.

Viele Grüsse,

Tom


Video Channel: http://www.youtube.com/us...oyagetom?feature=watch

brickshelf: http://www.brickshelf.com...ery.cgi?m=voyagetom-01

Flickr: https://www.flickr.com/ph...with/72157711557227973


1 vorhergehender Beitrag ist ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

voyagetom
14.10.2015, 19:21

Als Antwort auf den Beitrag von freakwave

Re: Frage zu NXT 2.0 Programmierung

Hallo Gerald,

vielen Dank.

Ich hatte selbst gegoogelt, aber das war die Suche nach der Nadel im Heuhaufen.

Ich werde mich mal mit den links hier auseinandersetzen


Viele Grüsse,

Tom


Video Channel: http://www.youtube.com/us...oyagetom?feature=watch

brickshelf: http://www.brickshelf.com...ery.cgi?m=voyagetom-01

Flickr: https://www.flickr.com/ph...with/72157711557227973


voyagetom
14.10.2015, 21:32

Als Antwort auf den Beitrag von freakwave

Re: Frage zu NXT 2.0 Programmierung

OK, darauf kann ich aufbauen.
Super links


Noch ne Frage.

Wenn ich 2 Programme habe, kann ich dann die Variablen in beiden Programmen nutzen ?

Programm 1 : Rufe ich bei Bedarf auf und definiere mit den Tasten meine Einschaltdauern etc. Die Variablen bleiben dann gespeichert.
Programm 2 : Damit Steuere ich meine Motoren etc. Das Programm nutzt die in 1 definierten Variablen bis ich 1 erneut aufrufe zum umdefinieren.

Klappt das ?
Klappt es auch, wenn der NXT zwischendurch ausgeschaltet wird ?

Viele Grüsse,

Tom


Video Channel: http://www.youtube.com/us...oyagetom?feature=watch

brickshelf: http://www.brickshelf.com...ery.cgi?m=voyagetom-01

Flickr: https://www.flickr.com/ph...with/72157711557227973


freakwave
15.10.2015, 07:49

Als Antwort auf den Beitrag von voyagetom

+1Re: Frage zu NXT 2.0 Programmierung

Aus der Hüfte heraus würde ich sagen dass das nicht klappt.

Meine Begründung wäre dass die Variablen am Anfang des Programms initialisiert werden müssen, damit also einen Wert bekommen der in dem entsprechenden Block definiert ist. Speichern um in einem anderen Programm darauf zuzugreifen, geht, glaube ich. nicht.


My Flickr
Blog zum Trainposter V2
LDraw Teile Update 2019-01


gefällt das


Tagl
15.10.2015, 20:00

Als Antwort auf den Beitrag von freakwave

Editiert von
Tagl
15.10.2015, 20:06

+1Re: Frage zu NXT 2.0 Programmierung

Hallo zusammen,

Aus der Hüfte heraus würde ich sagen dass das nicht klappt.

Meine Begründung wäre dass die Variablen am Anfang des Programms initialisiert werden müssen, damit also einen Wert bekommen der in dem entsprechenden Block definiert ist. Speichern um in einem anderen Programm darauf zuzugreifen, geht, glaube ich. nicht.


Dem würde ich zustimmen.

Was aber gehen sollte, ist die beiden Programme parallel laufen zu lassen.
Dafür gibt es glaube ich auch entsprechende Blöcke, oder man kann einen "Abzweig" in eine Verbindung zweier Blöcke machen. Hab da schon lang nix mehr gemacht.
Hier ist ein Link, die Seite kann auch auf Englisch umgestellt werden.
Speichen über das Ausschalten hinaus geht aber soweit ich weiß nicht.

Gruß
Marco


Steinregal Flickr

[image]


maydayartist gefällt das


Lok24
16.10.2015, 08:00

Als Antwort auf den Beitrag von Tagl

Re: Frage zu NXT 2.0 Programmierung

Hallo Marco,

Ich kann die Frage nicht beantworten, da ich NXT 2.0 nicht kenne.

Für EV3 / Labview kann ich sie beantworten: JA.
Man kann hier nämlich Werte in Text-Files schreiben, die auf der Karte gespeichert werden.
(Oder sogar intern? keine Ahnung).

Damit kann man Programme untereinander kommunizieren lassen wie auch Werte beim Ausschalten retten

Grüße

Werner



voyagetom
16.10.2015, 22:02

Als Antwort auf den Beitrag von Lok24

Re: Frage zu NXT 2.0 Programmierung

Ich schätze, ich muss es einfach mal probieren.
Ich dachte nur, vielleicht weiss das jemand gerade und hat es schon benutzt.

Bei meinem Sharp PC 1403H Basic Programmierbarer Taschenrechner ist es nämlich so.

Da kann ich mittels Basic Programmen Variablen (von Matrizen) vollschreiben und dann in den Taschenrechner Modus bzw. Matrizenrechnung Modus gehen und dort mit den Werten weiterrechnen. Das ging mit Stab und Balkenelementen für die "von Hand" FEM Berechnung von Fachwerkstrukturen. Das gab bei der FEM Prüfung (als Vertiefungsfach) während dem Studium Note 1.2 .
Auch nach dem Ausschalten bleiben beim PC 1403H die Inhalte der Variablen erhalten.


Es muss ja auch einen Grund haben, warum die Programmierer üblicherweise erst ihre Variablen "initialisieren"...?

Auch von Speicherbausteinen aus dem Elektrotechnik Labor während meiner FH-Zeit kenne ich das. Nur hat man da keine Variablen überschrieben sondern Speicheradressen mit Daten gefüttert.

Ich werde zu gegebener Zeit Berichten...

Viele Grüsse,

Tom


Video Channel: http://www.youtube.com/us...oyagetom?feature=watch

brickshelf: http://www.brickshelf.com...ery.cgi?m=voyagetom-01

Flickr: https://www.flickr.com/ph...with/72157711557227973


freakwave
16.10.2015, 23:05

Als Antwort auf den Beitrag von voyagetom

+1Re: Frage zu NXT 2.0 Programmierung

Bei der Suche nach möglichen Lösungen las ich auch etwas von einem Bereich in dem die Variablen definiert sind. "Dort" sollten die erhalten bleiben aber das war im Zusammenhang mit NQC Programmierung. Mit einem einfachen NXT-G Programm ging es nicht.


Bei meinem Sharp PC 1403H Basic Programmierbarer Taschenrechner ist es nämlich so.


Einen 1403!!!

Ich hab es nur bis zum 1401 geschafft! Mann das waren Dinger, das Ding in Assembler mittels POKE programmieren... Das waren Zeiten in denen man ein Byte noch schätzen konnte :-) Muss ich meinen wieder mal suchen...

Das ultimative Rechengerät war ja der 1350


My Flickr
Blog zum Trainposter V2
LDraw Teile Update 2019-01


maydayartist gefällt das


Lok24
17.10.2015, 08:49

Als Antwort auf den Beitrag von voyagetom

+1Re: Frage zu NXT 2.0 Programmierung

Hallo Tom,

Es muss ja auch einen Grund haben, warum die Programmierer üblicherweise erst ihre Variablen "initialisieren"...?


Ja, schindet Eindruck

Es gibt genügend Programmiersprachen wo man Variablen nicht deklarieren muss.
Früher war das wichtig(er) für das Reservieren von Speicherplatz, aber das interessiert ja keinen mehr.
Außerdem bei der objektorientierten Programmierung, wo die Variable "A" ja keine Zahl, sondern ein Netzwerkanschluss oder ein Word-Dokument sein könnte, da wäre es schon gut zu wissen welche Eigenschaften und Methoden sie hat, die erbt sie über die Deklaration.

Probiers mal mit den Text-Files, geht auch beim NXT.

Grüße

Werner



maydayartist gefällt das


voyagetom
20.10.2015, 01:12

Als Antwort auf den Beitrag von freakwave

Re: Frage zu NXT 2.0 Programmierung

Hi,

also in der Anleitung/Hilfe zum Variablenblock steht folgendes:

"Informationsaustausch zwischen einem Programm und einem Eigenen Block"

Wenn du Daten zwischen deinem Hauptprogramm und einem Eigenen Block (bzw. zwischen zwei .rbt-Dateien) austauschen willst, kannst du dies mit zwei Schritten erreichen:

Definiere dieselbe Variable (gleicher Name, gleicher Datentyp) im Hauptprogramm sowie im Eigenen Block.
Benutze diese Variable in den Variablen-Blöcken des Hauptprogramms sowie im Eigenen Block.
Der Schreib- und Lesezugriff auf diese Variable erfolgt nun von allen Stellen auf denselben Speicherort im NXT.

--------------------------------------------------

Ich krieg's aber irgendwie nicht hin...

Ich könnte auch noch damit leben, jedes mal beim Start die Daten neu einzugeben - ist halt weniger komfortabel.

Der link für die Variablen Definition mit +/- war sehr Hilfreich, das klappt.
Allerdings bleibt beim Wechsel von 10 auf 9 die Null stehen im Display, ähnliches gilt bei Vorzeichenwechsel in den neg. Bereich.
Ich denke aber, ein Display Reset an der richtigen Stelle nochmal eingesetzt schafft Abhilfe.

Jetzt habe ich aber ein anderes Problem:

Die Zahlen-Variablen "Zeit" und "Leistung" mit "Auslesen" vor den Motor Block gesetzt...
Datenleitungen gezogen zu den entsprechenden Stellen am Motor Block, Eingangsseite.
Datenleitungen sind gelb, also meines Erachtens ok. Geltungsbereiche für Zeit und Leistung sind eingehalten.
Die entsprechenden Felder im Motor Block werden aber nicht ausgegraut (immer noch editierbar) und beim Testlauf macht der Motor keinen Muks...
Die Edit Werte im Motor Block scheint er also auch nicht zu nehmen.

Auch beim Warte Block (Zeit in sec.) setze ich eine Zahlen Variable (auslesen) davor und verbinde sie mit dem Wecker. Das geht und die Leitung wird gelb, obwohl der Wecker keinen Dateneingang hat. Der Wecker nimmt die Zahl aber auch nicht an und graut auch das Editier Feld nicht aus...




Grüsse,

Tom


Video Channel: http://www.youtube.com/us...oyagetom?feature=watch

brickshelf: http://www.brickshelf.com...ery.cgi?m=voyagetom-01

Flickr: https://www.flickr.com/ph...with/72157711557227973


Lok24
20.10.2015, 09:22

Als Antwort auf den Beitrag von voyagetom

Editiert von
Lok24
20.10.2015, 09:22

Re: Frage zu NXT 2.0 Programmierung

Hallo Tom,

wer soll Dir da helfen?

Wie man die Daten über das Programmende rettet hatte ich Dir schon geschrieben, leider keine Antwort, ob das geklappt hat.

Um "Programmfehler" zu suchen braucht man das Programm, eine Beschreibung wie Deine hilft mir leider nicht.

Und eine Definition, was der "Fehler" ist. Ich kenne sehr viel Programme, die zwar fehlerfrei sind, aber nicht machen, was der Programmierer erwartet

Ich habe leider nicht einmal eine Information, welche "Programmiersprache" Du benutzt.
Stelle das Programm mal zum Download ein, vielleicht kann ich es nachvollziehen.

Grüße

Werner



7 nachfolgende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen

Gesamter Thread: