Sie befinden sich hier: Lego® - nxt - LabView - Programmierbeispiele - Beispiel Lichtsensor

LabVIEW8.6 deutsch Studentenversion:


[1]   2

  • Beispielprogramm Lichtsensor
    • Lichtsensor an Port 1
    • nxt Motor an Port A

    • zeigt aktuell gemessenen Lichtwert (Intensität) (0-100%) auf nxt Display an
    • Motor läuft solange gemessene Intensität > 50 ist

      Erweiterung:
    • eigene Lichtquelle kann über das Frontpanel ein und aus geschaltet werden
    • zeigt aktuell gemessene Intensität mit verschiedenen Anzeigeelementen im Frontpanel an
      • Numerisches Element
      • Signalverlaufsdiagramm
      • Schieberegler
      • Rundinstrument



  • LabView starten und leeres VI öffnen
  • Blockdiagrammfenster (ggf. Fenster --> Blockdiagramm anzeigen)
    (Blockdiagramm / Frontpanel)
  • Funktionenpalette (ggf. Ansicht --> Funktionenpalette)
  • aus Funktionenpalette in Blockdiagramm einfügen
    • Zusatzpakete --> NXT Toolkit --> Structures --> While- Schleife
      2x "While- Schleife" in Blockdiagramm einfügen
    • Zusatzpakete --> NXTToolkit --> NXT Library --> Input --> Light Sensor
      "Light Sensor" in Blockdiagramm einfügen
      kann zwischen hell und dunkel unterscheiden und die Lichtintensität auf farbigen Oberflächen messen.
    • Zusatzpakete --> NXTToolkit --> NXT Library --> Display --> Display Text
      "Display Text" in Blockdiagramm einfügen
      zeigt einen Text auf dem Disply an.
    • Zusatzpakete --> NXTToolkit --> NXT Library --> String --> String/Number Conversion --> Zahl nach String (Dezimaldarstellung)
      "Zahl nach String (Dezimaldarstellung)" in Blockdiagramm einfügen
      wandelt Zahl nach String (Dezimaldarstellung) um.
    • Zusatzpakete --> NXTToolkit --> NXT Library --> Output --> Motor Unlimited
      "Motor Unlimited" in Blockdiagramm einfügen
    • Zusatzpakete --> NXTToolkit --> NXT Library --> Output --> Stop Motor
      "Stop Motor" in Blockdiagramm einfügen
    • Zusatzpakete --> NXTToolkit --> Comparison --> Kleiner oder gleich?
      "Kleiner oder gleich?" in Blockdiagramm einfügen
      vergleicht zwei Werte und gibt TRUE oder FALSE aus
    • Zusatzpakete --> NXTToolkit --> Comparison --> Größer?
      "Größer?" in Blockdiagramm einfügen
      vergleicht zwei Werte und gibt TRUE oder FALSE aus

  • Verbindungen erstellen
    • Lichtsensor: "Sequence Flow out" (Grad) --> Motor Unlimited: "Sequence Flow in"
    • Lichtsensor: "Intensity" --> Kleiner oder gleich?: "x"
    • Lichtsensor: "Intensity" --> Größer?: "x"
    • Lichtsensor: "Intensity" --> Zahl nach String (Dezimaldarstellung): "Wert"
    • Kleiner oder gleich?: "x<=y?" --> Stop Motor: "Sequence Flow in"
    • Motor ist aus so lange x<=y ist.
    • Größer?: "x>y?" --> innere While Schleife: "Schleifenbedingung"
    • While Schleife wird so lange wiederholt bis x>y ist.
    • Zahl nach String (Dezimaldarstellung): "Dezimal-Integer-String" --> Display Text: "Text"
      "Display Text" zeigt gemessenen Lichtwert von Lichtsensor auf Display an
      Intensity (Lichtwert) {0; 1; 2; ... ; 98; 99; 100}

  • Konstanten erstellen
    • äußere While- Schleife: "Schleifenbedingung":
      rechte Maustaste --> Erstellen --> Konstante
      Konstante auf False (grüner Kasten um F)
      Endlosschleife wird so lange wiederholt bis die Stop Taste auf dem nxt gedrückt wird.
    • Stop Motor: "Next Aktion (Brake)":
      rechte Maustaste --> Erstellen --> Konstante
      Konstante auf Coast
      Motor bremst nicht sofort ab; Motor läuft aus
    • Light Sensor: "Input(Port 3)":
      rechte Maustaste --> Erstellen --> Konstante
      auf Port 1 umstellen
    • Kleiner oder gleich?: "y":
      rechte Maustaste --> Erstellen --> Konstante
      49 eingeben und Enter
      Vergleicht gemessenen Lichtwert von Lichtsensor mit einer Konstante. x<=49 --> Motor Stop
      Motor Stop für x {0; 1; 2; ... ; 47; 48; 49}
    • Größer?: "y":
      rechte Maustaste --> Erstellen --> Konstante
      49 eingeben und Enter
      Vergleicht gemessenen Lichtwert von Lichtsensor mit einer Konstante. x>49 --> innere Schleife Abbruch; Motor läuft
      Motor läuft für x {50; 51; 52; ... ; 98; 99; 100}














Erweiterung:

Ins Frontpanel wechseln
  • aus Elementepalette (ggf. Ansicht --> Elementepalette) in Frontpanel einfügen
    • Zusatzpakete --> NXT Toolkit --> Boolean --> Druckschalter
      "Druckschalter" in Frontpanel einfügen
    • Zusatzpakete --> NXT Toolkit --> Numeric --> Numerisches Anzeigeelement
      "Numerisches Anzeigeelement" in Frontpanel einfügen
    • Zusatzpakete --> NXT Toolkit --> Numeric --> Rundinstrument
      "Rundinstrument" in Frontpanel einfügen
    • Zusatzpakete --> NXT Toolkit --> Numeric --> Schieber (vertikal, gefüllt)
      "Schieber (vertikal, gefüllt)" in Frontpanel einfügen
    • Zusatzpakete --> NXT Toolkit --> Graph --> Signalverlaufsdiagramm
      "Signalverlaufsdiagramm" in Frontpanel einfügen






















...weiter

Lego nxt mit

  LabView 8.6

Installation
- nxt toolkit

Programmier-
beispiele
  - allgemein
  - Sensoren
  - Boolean
  - speichern
  - Eigenbau-     Hardware