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

LabVIEW8.6 deutsch Studentenversion:


[1]   2

    Beispielprogramm Ultraschallsensor
    • Ultraschallsensor an Port 1

    • Messung der Entfernung vom Ultraschallsensor zu einer reflektierenden Ebene.
      Der Messwert liegt zwischen 0 und 255cm und kann z.B. im Debug- Modus in LabVIEW als Abstandsmessung verarbeitet werden.
      Der Schaltabstand ist über einen Schieberegler einstellbar.
      Ist z.B. der Wert 50 eingestellt und die reflektierende Ebene liegt bei 45 dann leuchtet die rote LED "Don’t Walk" im Frontpanel und auf dem nxt Display wird die Grafik "Don’t Walk" angezeigt. Ab einer Entfernung über 50 leuchtet die grüne LED "Walk" im Frontpanel und auf dem nxt Display wird die Grafik "Walk" angezeigt.




  • 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
      "While- Schleife" in Blockdiagramm einfügen
    • Zusatzpakete --> NXT Toolkit --> Structures --> Case- Struktur
      "Case- Struktur" in While- Schleife einfügen
    • Zusatzpakete --> NXTToolkit --> NXT Library --> Input --> Ultrasonic Sensor (Ultraschall Sensor)
      "Ultrasonic Sensor" in While- Schleife einfügen
      misst Abstand zu einem vor ihm liegenden Gegenstand (Bereich 0 bis 2,5m oder 100 inch)
      - Abstandmessung in cm (Standard)
      - Abstandmessung in inch (Konstante an "Covert cm to inches?" erstellen --> True)
    • Zusatzpakete --> NXTToolkit --> NXT Library --> Display --> Display Picture
      2x "Display Picture" in Case- Struktur (1x in TRUE und 1x in FALSE) einfügen
      zeigt ein Bild auf dem Disply an
    • Zusatzpakete --> NXTToolkit --> Boolean --> NICHT
      2x "NICHT" in Case- Struktur (1x in TRUE und 1x in FALSE) einfügen
    • Zusatzpakete --> NXTToolkit --> Comparison --> Größer?
      "Größer?" in in While- Schleife einfügen
      vergleicht zwei Werte und gibt TRUE oder FALSE aus

















  • ins Frontpanel wechseln (z.B. Fenster --> Frontpanel anzeigen)
  • aus Elementepalette (ggf. Ansicht --> Elementepalette) in Frontpanel einfügen
    • Zusatzpakete --> NXT Toolkit --> Boolean --> LED (rund)
      2x "LED (rund)" in Frontpanel einfügen
      zeigt Schaltzustand an
    • Zusatzpakete --> NXT Toolkit --> Numeric --> Numerisches Anzeigeelement
      2x "Numerisches Anzeigeelement" in Frontpanel einfügen
      zeigt eingestellten Schaltabstand und gemessenen Abstand zu einer reflektierenden Ebene an
    • Zusatzpakete --> NXT Toolkit --> NXT Controls --> NXT slider
      "NXT slider" in Frontpanel einfügen
      Schaltabstand einstellen
  • Beschriftungen ändern
    z.B. auf Slide doppelklick --> "Abstand einstellen" eingeben und Enter
  • Farbe LED "Don't Walk" ändern: "Don't Walk"
    rechte Maustaste --> Eigenschaften --> Darstellung --> Farben






















  • Skala NXT Slider einstellen: "Abstand einstellen"
    rechte Maustaste --> Eigenschaften --> Skala --> Skalenbereich --> Maximum --> 250
    --> Schaltabstand über Schieberegler 0-250 einstellbar
















  • ins Blockdiagramm wechseln
  • "Abstand einstellen", "eingestellter Abstand" und "gemessener Abstand" in While- Schleife verschieben
    "Walk" in Case- Struktur "TRUE" verschieben
    "Don't Walk" in Case- Struktur "FALSE" verschieben
  • Datentypen ändern
    • "eingestellter Abstand" --> rechte Maustaste --> Darstellung --> U16 (Vorzeichenloses Word)
    • "gemessener Abstand" --> rechte Maustaste --> Darstellung --> U16 (Vorzeichenloses Word)
  • Verbindungen erstellen
    • Ultraschallsensor: "Distance" --> Größer?: "x"
      "Distance" gibt gemessenen Wert (Entfernung vom Ultraschallsensor zu einer reflektierenden Ebene) aus
    • "gemessener Abstand" --> Größer?: "x"
      für Anzeige von gemessenen Wert (Entfernung vom Ultraschallsensor zu einer reflektierenden Ebene)
    • "Abstand einstellen" --> Größer?: "y"
      über Schieberegler eingestellter Wert
    • "eingestellter Abstand" --> Größer?: "y"
      für Anzeige von über Schieberegler eingestellter Wert
    • Größer?: "x>y?" --> Case- Struktur: "Case Selektor"
      x > y (gemessener Abstand > eingestellter Abstand):
      --> "x>y?"=TRUE  (TRUE von Case- Struktur wird ausgeführt)
      x < y (gemessener Abstand < eingestellter Abstand):
      --> "x>y?"=FALSE (FALSE von Case- Struktur wird ausgeführt)
    • Case- Struktur TRUE:
      • Case- Struktur: "Case Selektor" --> "Walk"
      • Case- Struktur: "Case Selektor" --> NICHT: "x"
    • Case- Struktur FALSE:
      • Case- Struktur: "Case Selektor" --> "Don't Walk"
      • Case- Struktur: "Case Selektor" --> NICHT: "x"

  • 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.
    • Light Sensor: "Input(Port 4)":
      rechte Maustaste --> Erstellen --> Konstante
      auf Port 1 umstellen
    • Case- Struktur "TRUE":
      • Display Picture: "Filename *.ric"
        rechte Maustaste --> Erstellen --> Konstante
        Walk 02.ric eingeben und Enter
      • "Walk"
        rechte Maustaste --> Erstellen --> lokale Variable
        außerhalb Case- Struktur linke Maustaste
        oder:
        Zusatzpakete --> NXT Toolkit --> Structures --> Lokale Variable
        "Lokale Variable" in Case- Struktur TRUE einfügen
        linke Maustaste (wenn Mauszeiger Hand) --> "Walk"
    • Case- Struktur "FALSE":
      • Display Picture: "Filename *.ric"
        rechte Maustaste --> Erstellen --> Konstante
        Dont Walk 02.ric eingeben und Enter
      • "Don't Walk"
        rechte Maustaste --> Erstellen --> lokale Variable
        außerhalb Case- Struktur linke Maustaste
      • oder:
        Zusatzpakete --> NXT Toolkit --> Structures --> Lokale Variable
        "Lokale Variable" in Case- Struktur FALSE einfügen
        linke Maustaste (wenn Mauszeiger Hand) --> "Don't Walk"
...weiter

Lego nxt mit

  LabView 8.6

Installation
- nxt toolkit

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