Sensoren in Logikschaltung kombinieren?

Mindstorms und Delphi, Basic...
Läuft etwas nicht? für den NXT

Moderator: Moderatoren

Benutzeravatar
rno
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 15. Jan 2008 11:39
Wohnort: Sagittarius A*

Sensoren in Logikschaltung kombinieren?

Beitragvon rno » 16. Jan 2008 08:52

Erstmal Tag zusammen, ich bin brandneu hier.

Gleich eine Frage:

Ich möchte den Schall- und den Lichtsensor als ODER-Gatter kombinieren um ein Gerät sowohl auf Lichtsignal oder auf Schallsignal starten zu lassen. Ich schreibe meine Programme zur Zeit noch auf der grafischen LEGO-Oberfläche.

Zur Zeit gehe ich so vor: Ich setze die beiden Sensoren zusammen mit dem Logiksignal-Block in eine Logik-Schleife, verbinde die Ja/Nein-Ausgänge der Sensoren mit den A- und B-Eingängen des Gatters und den Ergebnisausgang des Gatters zur Steuerung der Schleife. Das funktioniert.

Mir sieht das allerdings ein wenig unelegant aus. Hat einer von den Starprogrammieren hier vielleicht eine bessere Lösung, die weniger Code produziert?

Vielen Dank schon mal im voraus für Eure Hilfe!

Netstorms
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 71
Registriert: 7. Aug 2007 13:27

Beitragvon Netstorms » 16. Jan 2008 10:04

Du kannst die beiden Abfragen auch als "quasi-parallel Prozesse" behandeln. Dazu kannst Du beide Blöcke parallel an den Eingang hängen. Die jeweiligen Aktionsblöcke kommen dann dahinter.

Benutzeravatar
rno
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 15. Jan 2008 11:39
Wohnort: Sagittarius A*

Beitragvon rno » 16. Jan 2008 10:44

Netstorms hat geschrieben:Du kannst die beiden Abfragen auch als "quasi-parallel Prozesse" behandeln. Dazu kannst Du beide Blöcke parallel an den Eingang hängen. Die jeweiligen Aktionsblöcke kommen dann dahinter.


Da scheint genau mein Problem zu liegen. Ich hatte das so ähnlich vor. Irgendwie komme ich mit dieser grafischen Methode nicht so ganz klar.
Schade, dass es hier so kompliziert ist, Bilder einzubinden.

Danke für die superschnelle Antwort!

Benutzeravatar
darth_joghurt
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 656
Registriert: 12. Jan 2007 14:24
Wohnort: IN

Beitragvon darth_joghurt » 16. Jan 2008 15:07

Also ganz einfach wäre es so: Bild
Ich bin kein Jedi, genau wie mein Vater vor mir!
Doch möge die Macht mir und allen Mindstormlern viele gute Ideen bescheren!

Steph

Benutzeravatar
rno
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 15. Jan 2008 11:39
Wohnort: Sagittarius A*

@darth_joghurt

Beitragvon rno » 16. Jan 2008 15:28

Das stimmt, so ist es einfach. Aber dann muss ich ja alle folgenden Aktionsblöcke doppelt setzen.

*ratlos*

Benutzeravatar
darth_joghurt
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 656
Registriert: 12. Jan 2007 14:24
Wohnort: IN

Beitragvon darth_joghurt » 16. Jan 2008 15:31

ist doch egal! Kopieren und dann einfügen! :wink:
Ich bin kein Jedi, genau wie mein Vater vor mir!

Doch möge die Macht mir und allen Mindstormlern viele gute Ideen bescheren!



Steph

Benutzeravatar
rno
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 15. Jan 2008 11:39
Wohnort: Sagittarius A*

Beitragvon rno » 17. Jan 2008 08:46

darth_joghurt hat geschrieben:ist doch egal! Kopieren und dann einfügen! :wink:
:wink:

Ja, und der Speicher des NXT gib wegen Überfüllung nur noch würgende Geräusche von sich ...

Netstorms
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 71
Registriert: 7. Aug 2007 13:27

Beitragvon Netstorms » 17. Jan 2008 09:56

rno hat geschrieben:
Ja, und der Speicher des NXT gib wegen Überfüllung nur noch würgende Geräusche von sich ...


Das ist so nicht ganz richtig, wie Du auch in der National Instruments und Lego Group Doku "Writing Efficicient NXT Programs" auf der Seite 3 nachlesen kannst:

1. Maximize Code Re-use
Code re-use is perhaps the most important concept to understand when attempting to write efficient NXT-G programs. Each NXT-G block added to a program increases the size of the program file in the NXT brick’s memory. However, each copy of the same type of block automatically shares the code of the first instance of the block. For example, placing one Move block in your program requires a large amount of code but each additional Move block you place adds a relatively small amount of code to your program file because a lot of the code can be reused.

Der Programcode für Blöcke wird nur einmal komplett angelegt. Wird der gleiche Block ein zweites mal verwendet, wird der Hauptteil des Codes wiederverwendet.
Soll nicht heissen, dass wir hier die Effizienz von NXT-G Code generell diskutieren müssen.


Zurück zu „sonstige Software und Software-Probleme“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss