Блок «Цикл»

Блок «Цикл» – это контейнер, содержащий последовательность программных блоков. Он заставляет последовательность блоков, находящихся внутри него, повторяться. Вы можете выбрать постоянное повторение блоков, определенное количество раз или до того, пока проверка датчика или другие условия не будут истиной.

Повторяются только блоки, находящиеся внутри цикла. После окончания цикла программа продолжит с блоками, находящимися за пределами цикла.
Советы и подсказки
Перетаскивайте блоки для изменения их местоположения в цикле. Блок «Цикл» будет расширяться для того, чтобы вместить в себя блоки.
Выбор режим цикла


Выбор режима
Вводы
Вывод «Установка подсчета»
Имя цикла

Используйте «Выбор режима» для управления повторяемостью цикла. Разные режимы устанавливают условие, при котором цикл заканчивается. Например, вы можете заставить цикл повторяться определенное количество раз, повторяться, пока значение данных датчика не достигнет определенного порогового значения, или повторяться постоянно. Доступные вводы будут меняться в зависимости от режима. Режимы описаны ниже.

Вы можете ввести имя цикла в поле «Имя цикла» в верхней части блока «Цикл». Это имя используется блоком «Прерывание цикла» для предоставления вам другого способа завершения цикла.

Блоки внутри цикла могут использовать вывод «Установка подсчета» для определения количества повторений цикла. Более подробную информацию см. в разделе «Использование вывода «Установка подсчета».
Режимы
Неограниченный


В режиме «Неограниченный» блоки внутри цикла повторяются постоянно. Любой блок, находящийся после цикла, использоваться не будет.
Пример 1
Эта программа заставляет робота двигаться в чередующейся последовательности прямо/поворот снова и снова, пока программа не будет остановлена.
Советы и подсказки
Используйте кнопку «Назад» на EV3 для остановки программы.
Пример 2
Эта программа будет отображать закрытый рот на экране EV3 при нажатии датчика касания и открытый рот во всех других случаях. Цикл обеспечивает постоянное повторение проверки датчика в блоке «Если ... то».
Установка подсчета


В режиме «Установка подсчета» в выводе «Установка подсчета» указывается количество повторения блоков в цикле.
Пример
В этой программе робот говорит один раз «Привет», затем шесть раз «Вперед» и один раз «Браво». Блок «Цикл» содержит один блок «Звук» и настроен на шестикратное повторение.
Время


В режиме «Время» вы можете указать количество повторений цикла во вводе «Секунды». Время измеряется от начала цикла.

Временной предел проверяется только в конце последовательности цикла. Последовательность цикла будет всегда выполняться, как минимум, один раз, и цикл будет продолжаться обратно с начала, только если истекшее время составляет меньше времени, указанного в выводе «Секунды».
Логическое значение


В логическом режиме цикл будет повторяться до тех пор, пока вывод «До» не будет истиной в конце последовательности цикла. Последовательность цикла будет всегда выполняться, как минимум, один раз, и вывод «До» тестируется в конце каждого прерывания цикла.

Используйте шину данных для подсоединения вывода «До» к логическому выводу программного блока цикла. Для завершения цикла вывод должен быть истиной.
Пример
Эта программа заставляет робота двигаться вперед до нажатия датчика касания или до тех пор, пока датчик цвета не определит черный цвет (в зависимости от того, что произойдет раньше). Вывод блока «Логические операции» используется для ввода «До» цикла. Когда цикл заканчивается, робот останавливается.
Советы и подсказки
Много проверок датчика с использованием только одного датчика могут проводиться непосредственно блоком «Цикл», используя режимы датчика, описанные выше.
Режимы датчика
Блок «Цикл» имеет несколько режимов, в которых данные датчика считываются и сравниваются с входящим значением. Каждый тип датчиков имеет разные режимы. Некоторые типы данных датчика могут сравниваться с пороговым значением, а другие типы могут сравниваться с определенными конкретными значениями.
Сравнение данных датчика с пороговым значением
В режиме с выводом «Пороговое значение» блок «Цикл» будет повторять последовательность блоков «Цикл» до тех пор, пока сравнение с пороговым значением является истиной. Например, вы можете повторять цикл до тех пор, пока датчик цвета не определит, что значение яркости отраженного света меньше указанного вами порогового значения.



Выбор режима
Выбор порта
Ввод «Тип сравнения»
Ввод «Пороговое значение»

Используйте выбор режима для выбора режима датчика с выводом «Пороговое значение». Если в этом режиме используется порт, используйте «Выбор порта» для того, чтобы убедиться в том, что порт соответствует порту модуля EV3, к которому подключен датчик или мотор.

Выберите тип сравнения, который вы хотите использовать, в списке «Тип сравнения» и введите пороговое значение.

Каждый раз при завершении последовательности блоков в цикле, блок «Цикл» будет считывать данные датчика и проверять пороговое значением. Если в данный момент проверка является ложью, то цикл повторится. Если проверка оказывается истиной, то цикл закончится, и программа продолжит выполнять следующий блок после цикла.

Более подробную информацию об использовании разных типов датчиков и данных, которые они предоставляют, см. в разделах «Использование датчиков».
Пример
В этой программе робот двигается вперед, повторяя три разных звука, до тех пор, пока датчик цвета не определит, что яркость отраженного света составляет менее 50, после этого робот останавливается.
Советы и подсказки
Пороговое значение датчика проверяется только в конце последовательности цикла. В вышеприведенном примере, если датчик цвета быстро проходит через темный цвет в середине цикла, робот может не увидеть его и не остановиться.
Сравнение данных датчика с конкретными значениями
В следующих режимах датчика цикл может сравнивать данные датчика с конкретными входящими значениями. Цикл будет повторяться до тех пор, пока данные датчика не будут равны указанному входящему значению.
РежимПримечания
Кнопки управления модулем Цикл повторяется до тех пор, пока одна из выбранных кнопок выполняет выбранное действие.

См. «Использование кнопок управления модулем».
Датчик цвета – Цвет Последовательность повторяется до тех пор, пока не будет определен один из выбранных цветов.

См. «Использование датчика цвета».
Инфракрасный датчик – Дистанционное управление Цикл повторяется до тех пор, пока одна из выбранных кнопок ИК-маяка находится в нажатом положении.

См. «Использование инфракрасного датчика в режиме «Дистанционное управление».
Датчик касания Цикл повторяется до тех пор, пока датчик касания находится в выбранном состоянии.

См. «Использование датчика касания».
Ультразвуковой датчик – Присутствие Цикл повторяется до тех пор, пока определяется ультразвуковой сигнал.

См. «Использование ультразвукового датчика».
Обмен сообщениями Цикл повторяется до тех пор, пока не будет получен указанный тип сообщения.

См. «Блок обмена сообщениями».
Советы и подсказки
Датчик проверяется только в конце последовательности цикла. Если данные датчика соответствуют указанному входящему значению в течение лишь короткого промежутка времени в процессе выполнения цикла, то цикл может не остановиться.
Использование вывода «Установка подсчета»
Вывод «Установка подсчета» в начале блока «Цикл» показывает, сколько раз была выполнены последовательность цикла. Вы можете использовать установку подсчета цикла для того, чтобы последовательность цикла делала что-то другое при повторении цикла.

При выполнении цикла в первый раз стоит 0, при каждом повторении цикла это значение будет увеличиваться на 1.
Пример
В этой программе на экране EV3 показывается, сколько раз производился щелчок датчика касания (нажатие и отпускание). Блок «Ожидание» цикла заставляет цикл ждать щелчок датчика касания перед повторением, а «Установка подсчета» используется для текстового ввода блока «Экран».
Изменение размера цикла
Как правило, блок «Цикл» автоматически расширяется для охватывания новых программных блоков, которые вы в него перетаскиваете. При необходимости вы можете изменить размер блока «Цикл» вручную. Для изменения цикла выберите блок «Цикл», затем перетащите маркеры изменения размера, расположенные снаружи.
Пример
Размер этого блока «Цикл» изменен для помещения второй последовательности блоков.
Вводы и вывод
Вводы, доступные для блока «Цикл», будут зависеть от выбранного режима. Вы можете вводить значения ввода прямо в блоке. Или же, как вариант, значения ввода можно передавать по шинам данных от выводов других программных блоков.
ВводТипПримечания
Подсчет Числовое значениеКоличество повторений цикла в режиме «Установка подсчета».
Секунды Числовое значениеКоличество секунд на повторение цикла в режиме «Время».
До Логическое значениеВ логическом режиме цикл завершиться, когда ввод будет истиной.
Тип сравнения Числовое значениеТип сравнения режима датчика с пороговым значением
0: = (равно)
1: ≠ (не равно)
2: > (больше, чем)
3: ≥ (больше или равно)
4: < (меньше, чем)
5: ≤ (меньше или равно)
Пороговое значение Числовое значениеЗначение, с которым сравниваются данные датчика, в режиме датчика с пороговым значением.
(Вводы для определенных типов датчиков)Более подробную информацию о данных датчиков см. в разделах конкретных типов датчиков.
Вывод блока «Цикл» – это количество повторений цикла. Для применения вывода воспользуйтесь шиной данных для его подключения к программному блоку в рамках цикла или после цикла.
ВыводТипПримечания
Подсчет Числовое значениеСколько раз был выполнен цикл. При выполнении цикла впервые счетчик стоит на 0.
Цикл
Быстрые ссылки