Обзор среды программирования EV3. Часть 5.

Программные блоки панели "Деяния" подверглись рассмотрению в прошлых частях обзора, а в данной статье я расскажу о блоках со вкладки "Управление операторами".

Эти блоки можно представить в качестве "регулировщиков" программки: они отдадут приказ тормознуть и продолжить движение программки, перейти на соседнюю ветку либо идти по кругу.

По сопоставлению с NXT Обзор среды программирования EV3. Часть 5. было добавлено 2 новых блока:


Общий перечень блоков управления операторами смотрится так:


Блок "Начало"

Может быть, вы направили внимание Обзор среды программирования EV3. Часть 5. на то, что 1-ый блок всех EV3 программ - блок с зеленоватой стрелкой. Этот блок - "Начало". Без него не обойдется ни одна программка - конкретно с него и начинается выполнение команд. Если перед последовательностью блоков не поставить "Начало", то такая программка производиться не будет.
К примеру, по программке, представленной Обзор среды программирования EV3. Часть 5. ниже, бот будет кружится вокруг оси (будет производиться верхняя последовательность действий), но не будет проигрывать аудио файлы и зажигать подсветку кнопок (нижняя последовательность без блока "Начало" не активна):

EV3 поддерживает многозадачность, т.е. программка может содержать больше одной последовательности команд. При этом эти последовательности могут иметь собственный свой блок Обзор среды программирования EV3. Часть 5. "Начало" либо выходить из 1-го "Начала":

Свой блок "Начало" Общий блок "Начало"

Все такие последовательности будут производиться сразу.

Замечу, что зеленоватая стрелка на блоке - это не декоративный элемент. Если блок подключен к компу (непринципиально как: через usb, wi-fi либо блютуз), то нажатие на стрелку запустит данную последовательность на выполнение Обзор среды программирования EV3. Часть 5..

Блок "Ожидание"

Этот блок тоже является одним из самых применяемых. На нем программка "зависает" - следующие блоки программки не производятся - и ожидает определенное количество времени либо определенного значения датчика.
У "Ожидание" огромное число режимов, которое может напугать:


Но, по сути, все достаточно легко. Все режимы можно поделить на категории Обзор среды программирования EV3. Часть 5.:


Разглядим примеры программ с каждым режимом блока.
В первой программке меняется подсветка кнопок. Секунду подсветка будет пылать зеленоватым, потом 1 секунду красноватым и после чего переключится на стандартный режим - мигающий зеленоватый:

2-ая программка представляет из себя начало традиционного решения в Обзор среды программирования EV3. Часть 5. соревновании "Кегельринг": бот кружится вокруг собственной оси до того времени, пока не увидит впереди себя банку:

Последующая программка включает мотор А, и после того, как он сделает 5 оборотов, выключает его:

Работа этого блока с блютуз ничем не отличается от работы с хоть каким детектором. К примеру, последующая программка ждет сообщения "HI Обзор среды программирования EV3. Часть 5." и после чего зажигает подсветку зеленоватым и проигрывает звуковой файл:

Блок "Цикл"

Это особенный блок - вовнутрь его можно вставлять другие блоки. Блоки, находящиеся снутри, будут повторяться. Режимы блока "Цикл" задают метод, который определяет, когда цикл должен закончиться. Большая часть этих режимов мы уже знаем по предшествующему Обзор среды программирования EV3. Часть 5. блоку ожидания, но добавилось несколько новых:

Над блоком написано имя цикла - 01, 02, .... Это имя может употребляться в блоке прерывания цикла, который будет описан позже.
Разглядим примеры. По этой программке бот будет ехать прямо и поворачивать, до того времени, пока Обзор среды программирования EV3. Часть 5. программку не приостановят (употребляется нескончаемый цикл):

Последующая программка употребляет датчик касания. Пока он не нажат, бот крутит средним мотором поначалу по часовой, позже против часовой стрелки. После нажатия на датчик мотор останавливается:

Цикл со счетчиком позволяет проиграть нотку 10 раз:

С режимом логического значения придется использовать еще не изученные блоки опроса датчиков Обзор среды программирования EV3. Часть 5.. Данная программка принуждает бота ехать вперед до того времени, пока он не увидит предмет на расстоянии, меньше 20 см (1-ый блок цикла) либо не натолкнется на препятствие датчиком касания (2-ой блок цикла). Итог логической операции "Либо" дает 3-ий блок цикла:


Блок "Тумблер"

Аналогичный блок есть и в NXT, он позволяет Обзор среды программирования EV3. Часть 5. зависимо от значения переменной либо показания датчика делать различные последовательности действий.
После выполнения данной последовательности действий, программка делает блоки, идущие за "Тумблером".
Режим данного блока определяет, значение какого датчика либо переменной будет употребляться. Употребляются все те же режимы, что и блок "Цикл": можно использовать хоть какой датчик (цвета, гироскопический Обзор среды программирования EV3. Часть 5., инфракрасный, ультразвуковой, вращения мотора и другие), числовое либо текстовое значение, сообщение блютуз.
К примеру, по данной программке бот поначалу будет крутиться вокруг собственной оси 5 оборотов мотора, а потом, зависимо от показаний датчика гироскопа, ехать вперед либо вспять. Если угол, определяемый гироскопом, будет меньше 90 градусов, тогда бот поедет Обзор среды программирования EV3. Часть 5. вперед. Если же угол меньше 90 градусов - тогда бот поедет вспять.

Последующая программка представляет собой реализацию простого релейного регулятора для движения по темной полосы:

В обоих прошлых примерах блок "Тумблер" содержал только 2 варианта развития событий. Но по сути, данный блок может иметь и больше вариантов. К примеру, если бот будет Обзор среды программирования EV3. Часть 5. определять цвет предмета, то он может выбирать из куда большего числа вариантов:


В этой программке бот определяет красноватый, голубий, зеленоватый и отсутствие цвета. Он будет именовать цвета, также для красноватого и зеленоватых цветов включать подсветку кнопок, а по голубому цвету поедет вперед. Можно добавить оставшиеся цвета, которые может найти датчик - темный, желтоватый Обзор среды программирования EV3. Часть 5., белоснежный, карий - при помощи малеханькой кнопки "+", расположенной у верхнего варианта (она обведена красноватым).
При большенном количестве вариантов (как в примере выше) блок "Тумблер" становится достаточно массивным и работать с ним не комфортно. В данном случае блок можно переключить в "тонкий режим":

Кнопка, переключающая режимы "тонкий / подробный", обведена красноватым.

Блок Обзор среды программирования EV3. Часть 5. "Прерывание цикла"

Этот блок новый, в NXT подобного блока не было. Он позволяет выходить из цикла - оставшиеся блоки цикла производиться не будут, и программка перейдет к блокам после цикла. В "шапке" блока задается имя цикла, который должен быть завершен.
К примеру, цикл в программке должен повториться Обзор среды программирования EV3. Часть 5. 5 раз, но если расстояние до предмета станет больше 50 см, то произойдет преждевременный выход из цикла и бот проиграет звуковой тон:

Особенностью данного блока будет то, что он не непременно должен находится снутри прерываемого цикла. К примеру, последующая программка выводит число повторений цикла до того времени, пока яркость отраженного света больше 50. Но если Обзор среды программирования EV3. Часть 5. в процессе выполнения программки будет нажат датчик касания, то цикл закончится и программка остановится:


Все статьи обзора:
Часть 1 - Установка среды программирования, ее основной интерфейс. Лобби
Часть 2 - Понятие проекта. Его создание, главные элементы.
Часть 3 - Программирование бота. Управление моторами.
Часть 4 - Программирование бота. Экран, звук, индикатор состояния модуля. Редактор изображений и Обзор среды программирования EV3. Часть 5. редактор звуков.


obzor-tendencij-ekonomicheskogo-razvitiya-poyasnitelnaya-zapiska-k-godovomu-otchetu-za-2012-god-obshestva-s-ogranichennoj.html
obzor-triggerov-otnoshenij.html
obzor-vazhnejshih-ramochnih-harakteristik-sovremennogo-specialista-ekonomista.html