czwartek, 24 października 2019

7. Loop Blok Poradnik. Lego Mindstorms EV3

Lego Mindstorms EV3: Loop Blok Poradnik


Blok Loop ciągu oprogramowaniu LEGO Mindstorms EV3 (lub aplikacji) jest jednym z najbardziej użytecznych bloków programista może użyć. W tym poście będziemy zagłębić się co to jest, jak to może być używane wraz z dużą ilością przykładowych programów, aby pomóc zrozumieć pojęcia pokrywa.

Co oznacza Loop Blok zrobić?

Blok pętla jest przydatna, ponieważ może on być stosowany do programowania logiki powtarzać aż pewien warunek jest spełniony, lub powtórzyć logikę nieskończenie jeśli zajdzie taka potrzeba. Warunkiem przerwania pętli może być zegar lub sygnałem z czujnika (jak naciśnięcie przycisku na czujnik dotyku lub obiektu wykrywane przez czujnik na podczerwień / ultradźwiękowe).

Co robi Loop Blok wyglądać?

Blok pętli jest dostępny z palety kontroli przepływu pomarańczowy:
LEGO Mindstorms EV3 - Pętla Blok
Na własny blok Loop nic nie da, tak jak w bloku Przełącznik musimy budować naszą logikę wewnątrz bloku, aw przypadku bloku pętla - powtórzyć logikę aż pewien warunek jest spełniony.

Przerwa Stan bloku pętla

Warunkiem przerwa bloku pętla jest warunek, który musi być spełniony, aby w pętli do końca. Wejście na tryb bloku pętla jest używany do ustawiania stanu przerwę i domyślnie tryb jest ustawiony na nieograniczony. Co oznacza, że ​​blok pętli nie złamie (zjazd) i będzie to powtórzyć swoją logikę zawsze. Gdy ten tryb jest ustawiony dowolny blok po prawej stronie bloku pętla nigdy nie zostanie wykonane (o ile mamy blok pętli Przerwania, które są uwzględnione w dalszej części tego postu).
LEGO Mindstorms EV3 - Pętla Blok Mod
Warunki przerwa (sposoby) mogą być podzielone na następujące kategorie 5, i to zostało opisane bardziej szczegółowo poniżej.

Nieograniczony

Jak wspomniano powyżej, nieograniczony tryb blok pętli nigdy nie wyjdzie z bloku pętla więc należy być ostrożnym podczas korzystania z tego trybu. Tryb ten jest zwykle używany, gdy można oczekiwać, aby zakończyć program ręcznie lub przy użyciu bloku pętla przerwań, aby wyjść z pętli.

Liczyć

Liczyć tryb blokowy pętli wyjdzie po osiągnięciu zaprogramowanej liczby pętli. Poniższy rysunek przedstawia tryb naliczania ustawiony na 10 pętlach:
LEGO Mindstorms EV3 - Tryb Hrabia Loop Blok
Wartość licznika nie musi być wstępnie zdefiniowane przed uruchomieniem programu, może też być ustawiona poprzez zmienną w czasie wykonywania. Poniżej program pokaże, jak to zrobić:
logika programu:
  • Tworzenie nowej zmiennej numerycznej nazwie NoOfLoops
  • Generowanie liczb losowych i zapisać go do zmiennej NoOfLoops
  • Zacznij pętlę, która złamie od wartości zmiennej NoOfLoops
    • Wyświetli komunikat na ekranie „liczba pętli: X” (x jest zmienną NoOfLoops).
    • Ustawić licznik pętli do zmiennej NoOfLoops i na każdej pętli wyświetla licznik pętli do ekranu
Zacznijmy:
  1. Tworzenie zmiennej NoOfLoops:
    • Przeciągnij i upuść czerwoną Zmienny blok obok bloku startowym
    • Kliknij nazwę zmiennej i wybierz Dodaj Variable
    • Wpisz NoOfLoops w nowej zmiennej pola tekstowego i kliknij Ok
    • Uwaga: Domyślnie zmienna blok zostanie ustawiony na liczbowe
LEGO Mindstorms EV3 - Pętla Blok hrabia Programu - krok 1jpg
  1. Generowanie liczb losowych między 1 a 10
    • Przeciągnąć i upuścić czerwoną Losowa blok po prawej stronie bloku Variable
    • Zapewnić jej dolna granica wejściowy jest ustawiony na 1 , a górna granica wejście jest ustawione na 10 .
LEGO Mindstorms EV3 - Pętla Blok hrabia Program - Krok 2
  1. Zapisz losowy numer do zmiennej NoOfLoops
    • Przeciągnąć i upuścić czerwoną zmiennej długości bloku do końca programu EV3
    • Zapewnić jej tryb jest ustawiony Napisz | numeryczny
    • Połącz wyjście wartość z Losowe bloku do wejścia wartości zmiennej bloku
LEGO Mindstorms EV3 - Pętla Blok hrabia Program - Krok 3
  1. Wyświetlanie tekstu „Liczba pętli” na wyświetlaczu Lego EV3 Brick
    • Przeciągnąć zieloną wyświetlanie bloku do końca programu
    • Zmień to tryb na tekst | Krata
    • Ustaw rozmiar czcionki wejście do 1
    • Zmienić tekst do: liczba pętli:
LEGO Mindstorms EV3 - Pętla Blok hrabia Program - Krok 4
  1. Wyświetlenie wartości zmiennej NoOfLoops na ekranie wraz z komunikatem z poprzedniego etapu i dodaj oczekiwanie na 3 sekundy, aby dać wystarczająco dużo czasu, aby ją przeczytać.
    • Przeciągnąć i upuścić czerwoną zmiennej długości bloku do końca programu
      • Ustaw swój tryb do Czytaj | numeryczny
    • Przeciągnij i upuść zielone wyświetlanie bloku do końca programu
      • Ustaw jej tryb na tekst | Krata
      • Ustaw Wyczyść ekran wkład Fałsz
      • Ustawić X wejście do 10 i Y wkład 3
      • Zmień tekst wejście od Mindstorms do przewodowy
      • Drut Variable blok wczytywane do wprowadzania tekstu w bloku wyświetlacza
    • Przeciągnij i upuść bloku pomarańczowy doczekać, aby po prawej stronie bloku wyświetlacza
      • Ustaw swój sekund wejście do 3
LEGO Mindstorms EV3 - Pętla Blok hrabia Program - Krok 5
  1. Dodaj pętli i ustawić jego licznik (czyli ile razy będzie powtórzyć logiki) do zmiennej NoOfLoops
    1. Przeciągnij i upuść jest blok pomarańczowy pętli do końca programu
    2. Ustaw swój tryb do hrabiego
    3. Drut Variable blok odczytu z poprzedniego etapu do wejścia licznika pętli w
LEGO Mindstorms EV3 - Pętla Blok hrabia Program - Krok 6
  1. Wyświetlanie liczby pętli na wyświetlaczu EV3 cegły przy użyciu indeksu pętli
    • Przeciągnąć i upuścić zielonym wyświetlaczem blok wewnątrz pętli
      • Ustaw jej tryb na tekst | Krata
      • Ustawić wartość tekstową do Loop Number
    • Przeciągnij i upuść kolejny zielony wyświetlanie bloku obok jednego powyżej nadal wewnątrz pętli)
      • Ustaw jej tryb na tekst | Krata
      • Ustaw Przezroczysty ekran do Fałsz
      • Zestaw X do 10 i Y do 3
      • Ustaw tekst do przewodowy
      • Drut w Indeksie Loop z lewej strony pętli do wprowadzania tekstu (patrz obrazek poniżej po więcej szczegółów)
    • Przeciągnij i upuść pomarańczowy blok timera obok bloku wyświetlacza
      • Zostaw go w domyślnej 1 sekundy - to powinno dać wystarczająco dużo czasu, aby czytać licznik pętli
LEGO Mindstorms EV3 - Pętla Blok hrabia Program - Krok 7
Program jest już gotowy! Hit pobrać i uruchomić przycisk, aby go wypróbować.
Ilość pętli zawsze będzie jeden mniej niż wygenerowanej liczby losowej. To dlatego, że wartość wskaźnika pętli od zera (zaczyna się od 0 zamiast 1).
Spróbuj za pomocą czerwonego bloku Math, aby go naprawić.

Logika

Tryb blok pętli logiczny wykorzystuje wartość logiczną w celu określenia, czy przerwania pętli. Gdy logika (prawda / fałsz) równa się prawda, wówczas pętla zostanie przerwane.
poniżej następujący program jest dobrym przykładem pętli logicznej. Podobnie jak w przypadku poprzedniego programu będzie policzyć liczbę pętli na wyświetlaczu cegły EV3 i będziemy ustawić blok logiczny true gdy licznik osiągnie sześć.
Logika programu:
  • Utwórz nową zmienną o nazwie BreakLoop logiki (i ustawić ją na false)
  • Uruchomić pętlę, która zakończy gdy zmienna BreakLoop jest prawda
  • Drukuj indeks pętli na wyświetlaczu EV3 Brick
  • Sprawdź, czy indeks pętli jest równa sześciu
    • Jeśli nie jest ustawiona zmienna BreakLoop False
    • Jeśli tak jest, należy ustawić zmienną BreakLoop True
Teraz do programu:
  1. Utworzyć zmienną logiczną nazwie BreakLoop
    • Przeciągnij i upuść czerwoną Zmienny blok obok przycisku Start
    • Ustaw swój tryb do Napisz | Logika
    • Kliknij nazwę zmiennej i wybierz Dodaj Variable
    • Wpisz BreakLoop w nowej zmiennej pola tekstowego i kliknij Ok
LEGO Mindstorms EV3 - Pętla bloku logicznego Program - Krok 1
  1. Dodaj pętli logicznych
    • Przeciągnij i upuść jest blok pomarańczowy pętli obok bloku Variable
    • Ustaw swój tryb logiki
LEGO Mindstorms EV3 - Pętla bloku logicznego Program - Krok 2
  1. Pokaż liczbę indeksu na wyświetlaczu EV3 Brick
    • Pokaż słowa „numer Loop”
      • Przeciągnąć zieloną wyświetlanie bloku w pętli
        • Ustaw jej tryb na tekst | Krata
        • Ustawić wartość tekstową do Loop Number
    • Wyświetlanie indeksu pętli
      • Przeciągnąć zieloną wyświetlanie bloku w pętli
        • Ustaw jej tryb na tekst | Krata
        • Ustaw jasny ekran do Fałsz
        • Zestaw X do 10 i Y do 3
        • Ustawić wartość tekstową do przewodowy
        • Drut z indeksu pętli do 2 bloku reklamowej
    • Pauza tekst wystarczająco długo, aby ją przeczytać
      • Przeciągnąć i upuścić blok pomarańczowy Czekaj na prawo od ostatniego bloku reklamowej
        • Pozostaw domyślne 1 sekundy
LEGO Mindstorms EV3 - Pętla bloku logicznego Program - Krok 3
  1. Sprawdź indeks pętli i ustawić zmienną BreakLoop True jeśli jest równa sześciu
    • Przeciągnąć i upuścić pomarańczowy blok przełącznika po prawej stronie bloku Wait
      • Ustaw jej tryb na numeryczne
      • Podłączyć do indeksu pętli do tego przełącznik bloku wejścia numer
    • Ustawić zmienną BreakLoop false jeśli indeks pętli jest mniej niż 6
      • Przeciągnij i upuść czerwoną Zmienny blok w sekcji Case for 1
        • Ustaw swój tryb do Napisz | Logika
        • Ustawić wartość na false (powinno być domyślnie)
    • Ustawić zmienną BreakLoop True, jeśli indeks pętli jest 6
      • Zmień drugą sekcję przypadku bloku przełączyć się 6
      • Przeciągnij i upuść czerwoną Zmienny blok do (6) części Case
      • Ustaw swój tryb napisać | Logika
      • Ustawić wartość na True,
LEGO Mindstorms EV3 - Pętla bloku logicznego Program - Krok 4
  1. Sprawdź zmienną BreakLoop aby zobaczyć, czy pętla musi zatrzymać
    1. Przeciągnij i upuść czerwoną Zmienny blok po prawej stronie bloku przełączników
    2. Ustaw swój tryb do Czytaj | Logika
    3. Drut zmienna bloku do bloku Loop Do dnia wejścia Prawdziwego .
LEGO Mindstorms EV3 - Pętla bloku logicznego Program - Krok 5
To ostatni etap, pełny program powinien wyglądać jak na zdjęciu poniżej (kliknij, aby otworzyć pełny ekran):
LEGO Mindstorms EV3 - Pętla bloku logicznego Program - Krok 6
Uwaga: Upewnij się, że oświadczenie domyślny przypadek w bloku przełącznik jest „1”, wybierając odpowiedni przycisk radiowy, jak na ostatnim zdjęciu powyżej.

Czas

Tryb bloku pętla czasu pozwala nam wyjść z pętli, gdy określony czas jest spełniony. Na przykład, pętla może być ustawiony, aby zakończyć w ciągu 10 sekund.
Poniższy program demonstruje, jak używać trybu czasu na bloku pętli. Jest to schludny trochę gra, która będzie korzystać z czujnika przycisk, aby policzyć, ile razy można nacisnąć go w 10 sekund.
Aby stworzyć ten program Wszystko czego potrzebujesz to klocka Lego EV3 i czujnik dotykowy podłączony do numeru portu 1.
Logika programu:
  • Ustawić timer na 10 sekund w pętli
  • Za każdym razem, czujnik dotykowy jest na podsłuchu, dodać 1 do zmiennej NoOfBumps
  • Wyświetla zmienną NoOfBumps na ekranie
Zauważ, że bardziej zaawansowana wersja tego programu można znaleźć tutaj ##. Który może być używany jako gra.
Teraz do programu:
  1. Ustaw pętlę, która będzie działać przez 10 sekund
    • Przeciągnij i upuść jest blok pomarańczowy pętli obok bloku startowym
    • Ustaw jej tryb na wskaźniku czasu
    • Ustaw sekund wkład 10
LEGO Mindstorms EV3 - Pętla Blok Czas Indicator Program - Krok 1
  1. Dodać 1 do zmiennej (NoOfBumps) za każdym razem, czujnik dotykowy jest wciśnięty
    • Sprawdź, czy bump na czujniku dotykowym
      • Przeciągnij i upuść pomarańczowy Blok przełączników do pętli
      • Ustaw swój tryb do czujnika dotykowego | Porównaj | Stan
      • Ustaw stan wejście do 2
    • Tworzenie zmiennej NoOfBumps
      • Przeciągnąć i upuścić czerwoną Zmienny blok do prawdziwego rachunku przypadku bloku switch
      • Ustaw swój tryb do Czytaj | numeryczny
      • Kliknij Variable nazwę i wybierz Dodaj Variable
      • Wpisz NoOfBumps i kliknij Ok
    • Dodaj 1 do zmiennej NoOfBumps
      • Przeciągnij i upuść czerwony klocek Math obok bloku zmiennej
        • Drut czytać Zmienny blok na wejście A w bloku Meczu
      • Przeciągnij i upuść czerwoną Zmienny blok po prawej stronie bloku Math
        • Upewnić NoOfBumps jest zaznaczona w nazwie
        • Drut = wyjście z bloku Math do bloku zmiennej
LEGO Mindstorms EV3 - Pętla Blok Czas Indicator Program - Krok 2
  1. Odczytu zmiennej NoOfBumps i pokazać go na ekranie EV3
    • Odczytu zmiennej
      • Przeciągnij i upuść czerwony zmiennej blok po bloku przełącznik (wciąż w pętli)
      • Ustaw swój tryb do Czytaj | numeryczny
      • Upewnić NoOfBumps została wybrana jako nazwy zmiennej
    • Display „Nie od stłuczki X”, aby wyświetlić EV3 cegły (gdzie X jest liczbą uderzeń)
      • Przeciągnij i upuść zielony wyświetlacz blok obok bloku odczytu zmiennej
        • Ustaw jej tryb na tekst | Krata
        • Zmiana X 10 i Y 3
        • Zmień tekst z Mindstorms do przewodowy
        • Okablować Odczyt zmiennej długości bloku do wejścia bloku tekstowego wyświetlacza
      • Przeciągnij i upuść zielony wyświetlacz blok obok bloku wyświetlaczu nad
        • Ustaw jej tryb na tekst | Krata
        • Ustaw Przezroczysty ekran wejście do Fałsz
        • Zmienić tekst do nr uderzeń
    • Dodaj timer do końca programu tak, że ostatni numer można odczytać
      • Przeciągnij i upuść pomarańczowy bloku czasowego na końcu programu, na zewnątrz pętli
      • Zmień swoje drugie wejście do 4
LEGO Mindstorms EV3 - Pętla Blok Czas Indicator Program - Krok 3
Teraz program jest zrobione, hit pobieranie i przycisk Uruchom, aby ją wypróbować. Ile guzki można dostać się w 10 sekund?
Wyzwanie: Sprawdź, czy możesz dodać komunikat końcowy dać ostateczny wynik.

godzin

Jest jeszcze jeden sposób na wykorzystanie czasu z bloku pętli, a to za pomocą programatora | Tryb Wskaźnik czasu:
LEGO Mindstorms EV3 - Pętla Blok Tryb zegara
Tryb blok czasowy Loop pozwala nam porównać jedno z 8 wbudowanych w liczniki na wartości progowej i przerwać pętlę jeśli czas jest:
  • Równy
  • Nie równy
  • Lepszy niż
  • Większe bądź równe
  • Mniej niż
  • Mniejszy lub równy
Na przykład, kolejny blok pętli zostanie zamknięty, gdy zegar 1 jest większa niż 10 sekund.
LEGO Mindstorms EV3 - Pętla Blok Timer trybu - większe niż 10
Jedną rzeczą jest, aby pamiętać podczas korzystania z trybu timera, można kontrolować czas timera, używając żółtego sterowania czasowego. Z tej kontroli można wyzerować stoper daje nam większą kontrolę nad tym, kiedy dokładnie program przerywa pętlę.

Tryby pracy czujnika

Tryby czujnik bloku Programowanie Loop EV3 będzie monitorować konkretny i przerwać pętlę gdy pewien warunek z czujnika jest spełniony. Blok pętli przeznaczony dla następujących czujników EV3 i NXT:
  • cegła Przyciski
  • Kolor Sensor
  • Czujnik żyroskopowy
  • Czujnik podczerwieni
  • obrotów silnika
  • Czujnik temperatury
  • Czujnik dotyku
  • Czujnik ultradźwiękowy
  • Licznik energii
  • NXT czujnik dźwięku
Uwaga: jeśli jesteś użyć wydanie domem oprogramowaniu EV3 czym niektóre z tych opcji nie są dostępne. Nasza poczta tutaj przechodzi nad różnicami między edycjach Home and Education oprogramowania.

W naszym przykładzie trybu Czujnik programu bloku pętla mamy zamiar wykorzystać czujnik koloru. Program pokaże nam kolor wykryje i będzie przerwa pętli, gdy wykryje kolor niebieski.
Wszystko, czego potrzebujesz do tego programu jest Lego EV3 Cegła i czujnik koloru podłączony do portu 3.
Logika programu:
  • Ustaw pętlę złamać, gdy czujnik wykryje kolor niebieski
  • Korzystanie z czujnika kolorów ustawić zmienną o nazwie Kolor z nazwą koloru wykrytego
  • Pokaż nazwy kolorów na wyświetlaczu EV3 i wstrzymanie przez 1 sekundę
  • Jeśli kolor jest niebieski, przerwać pętlę i napis „Loop zakończony” na wyświetlaczu EV3
Teraz przejdźmy do programu:
  1. Założyć pętlę, aby wyjść na niebiesko wykrycia
    • Przeciągnij i upuść jest blok pomarańczowy pętli obok bloku startowym
    • Ustaw jej tryb na Colour Sensor | Kolor
    • SET „ zestaw kolorów ” Wejście do 2 (niebieski) i odznacz domyślne (czerwony - 5)
LEGO Mindstorms EV3 - Pętla Blok Kolor Sensor - Krok 1
  1. Korzystanie z czujnika koloru wykryć kolor i zapisać go do zmiennej o nazwie Kolor
    • Przeciągnij i upuść pomarańczowy Blok przełączników wewnątrz pętli
      • Ustaw swój tryb do Kolor | Zmierz | Kolor
      • Dodaj przypadek dla każdego koloru (w tym brak)
        • Wolę, aby zmienić widok przełącznika do widoku zakładki, klikając ikonę po lewej stronie numeru portu. To sprawia, że ​​o wiele łatwiejsze do odczytania, gdy istnieje wiele opcji w przełączniku
    • Przeciągnij i upuść czerwoną Zmienny blok w każdym przypadku kolorów w bloku przełącznika
      • W pierwszym z nich utworzyć zmienną tekstową o nazwie Kolor
      • Ustaw swój tryb do Napisz | Tekst
      • Ustawić wartość zmiennej wejście do nazwy każdego z kolorów .
LEGO Mindstorms EV3 - Pętla Blok Kolor Sensor - Krok 2
  1. Wyświetlanie wykryty kolor na wyświetlaczu EV3 cegły
    • Przeciągnij i upuść na zielony blok wyświetlacza po przełączeniu
      • Ustaw jej tryb na tekst | Krata
      • Zmień wartość tekstową do koloru:
    • Przeciągnij i upuść czerwoną Zmienny blok obok bloku reklamowej
      • Ustaw swój tryb do Czytaj | Tekst
      • Upewnij się, że nazwa zmiennej jest kolorowa
    • Przeciągnij i upuść kolejny zielony blok wyświetlacza i umieścić ją obok Variable bloku.
      • Ustaw jej tryb na tekst | Krata
      • Ustaw Przezroczysty ekran do Fałsz
      • Zestaw X do 10 i Y do 3
      • Ustawić jego wprowadzania tekstu do przewodowy
      • Drut Variable bloku na wejście tekst bloku wyświetlacza
    • Przeciągnij i upuść jest blok pomarańczowy Wait obok bloku wyświetlacza
      • Zostaw swoje drugie wejście do 1 (ta wyświetli komunikat na 1 sekundę - zwiększy to jak widać pasuje).
LEGO Mindstorms EV3 - Pętla Blok Kolor Sensor - Krok 3

  1. Wyświetli komunikat „Loop Ended”, gdy zostanie wykryty i niebieski pętla wyjściu:
    • Przeciągnij i upuść zielone wyświetlanie bloku poza blokiem Loop
      • Ustaw jej tryb na tekst | Krata
      • Ustaw tekst do pętli Ended Niebieski Wykryto
    • Przeciągnij i upuść jest blok pomarańczowy Wait obok bloku wyświetlacza
      • Ustaw swój sekund wejście do 2
LEGO Mindstorms EV3 - Pętla Blok Kolor Sensor - Krok 4
Teraz mamy zrobić - kompletny program powinien wyglądać tak:
LEGO Mindstorms EV3 - Pętla Blok Kolor Sensor - kompletny program
Sprawdź, czy możesz zaktualizować program również wyjście na czerwony (lub inny wybrany kolor).
Jeśli chcesz dowiedzieć się więcej o czujnik koloru, kliknij tutaj, aby zobaczyć nasz czujnik koloru szczegółowo postu.

Przerwanie pętli

Ostatnia pozycja związana z bloku pętli jest pomarańczowy blok przerwania pętli:
LEGO MINDSTORMS Loop przerwań
Blok pętli Przerwanie następuje wyjście z pętli przed stanem przerwa spełnione. Jest to szczególnie przydatne, gdy warunek przerwania pętla znajduje się w położeniu bez ograniczeń (nieskończony), co może być wykorzystywane podczas sprawdzania więcej niż jednym stanie przerwy, gdy wykryta jest albo przerwanie pętli służy do przerwania pętli.

Brak komentarzy:

Prześlij komentarz