Ожидание, повторение, контейнеры и многозадачность

Содержание

Слайд 2

Ожидание, повторение, контейнеры и многозадачность

Тема занятия

Ожидание, повторение, контейнеры и многозадачность Тема занятия

Слайд 3

Создать новый проект

Новый проект

Создать новый проект Новый проект

Слайд 4

Что мы будем делать?

В предыдущей главе вы изучили, как запрограммировать робота на

Что мы будем делать? В предыдущей главе вы изучили, как запрограммировать робота
выполнение различных действий, например на передвижение. В этой главе вы узнаете, как приостановить выполнение программы с помощью блока Ожидание (Wait), как повторить последовательность действий с помощью блока Цикл (Loop), как запустить несколько блоков одновременно и даже как создать собственный блок.

Слайд 5

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

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

Слайд 7

Блок Цикл

Представьте, что вы идете по траектории квадратной формы, как показано

Блок Цикл Представьте, что вы идете по траектории квадратной формы, как показано
на рис. 5.3. При этом вы повторяете определенный шаблон несколько раз: идете прямо, затем поворачиваете направо, идете прямо, поворачиваете направо и так далее.

Слайд 8

Для создания такого шаблона движения для вашего робота вы можете использовать один

Для создания такого шаблона движения для вашего робота вы можете использовать один
блок Рулевое управление (Move Steering), чтобы робот шел прямо, а второй, чтобы он поворачивал направо. Чтобы робот прошел полный квадрат и вернулся в исходное положение, вы должны использовать каждый блок четыре раза, в общей сложности восемь блоков. Вместо того чтобы использовать восемь блоков Рулевое управление (Move Steering), чтобы создать такую программу, гораздо проще применить блок Цикл (Loop), который позволяет повторять последовательности блоков, размещенных внутри него. Блоки Цикл (Loop) особенно пригодятся в случае, если вы хотите повторить определенные действия много раз.

Слайд 9

Использование циклов

Блок Цикл (Loop) (рис. 5.4) многократно запускает блоки, которые вы

Использование циклов Блок Цикл (Loop) (рис. 5.4) многократно запускает блоки, которые вы
поместили в него. В зависимости от режима, который вы выбираете, он запускает эти блоки либо заданное количество раз, либо в течение определенного количества секунд, либо до тех пор, пока вы вручную не прервете выполнение дальнейшей программы

Слайд 11

Вам необходимо создать программу, чтобы ваш робот в начале сказал “Hello”, затем

Вам необходимо создать программу, чтобы ваш робот в начале сказал “Hello”, затем
начал движение, описывая форму квадрата и затем, в конце движения, сказал “Good Bye”. Для движения по квадрату вам необходимо использовать цикл, в котором будут 2 блока рулевого управления: один задаёт движение вперёд, другой – поворот налево или направо. Сколько раз должен проработать цикл ?

ПРАКТИКУМ: ДВИЖЕНИЕ ПО КВАДРАТУ

Слайд 13

Вложенный цикл

Вы можете использовать еще один блок Цикл (Loop), зациклив движение по

Вложенный цикл Вы можете использовать еще один блок Цикл (Loop), зациклив движение
траектории, чтобы робот несколько раз повторил заданный маршрут. В режиме Неограниченный (Unlimited) робот будет продолжать движение по квадрату бесконечно. Попробуйте реализовать такое поведение. Чтобы это сделать, дополните программу, которую вы только что создали, добавив второй блок Цикл (Loop) из палитры программирования и установив режим Неограниченный (Unlimited). Перетащите цикл, созданный ранее, и второй блок Звук (Sound) в новый блок Цикл (Loop). Теперь робот будет двигаться по квадратной траектории, говоря «Пока» после завершения каждого квадрата, пока вы не завершите программу нажатием кнопки «Назад» на модуле EV3

Слайд 16

Многозадачность

Все блоки, которые вы использовали до сих пор, выполняются по одному в

Многозадачность Все блоки, которые вы использовали до сих пор, выполняются по одному
том порядке, в котором они расположены в области программирования. Тем не менее модуль EV3 поддерживает многозадачность, позволяя выполнять инструкции нескольких блоков одновременно. Для этого применяются либо несколько блоков Начало (Start) или разделенные соединители, называемые шинами последовательности. Вы увидите, что эти методы очень похожи

Слайд 17

Использование нескольких блоков Начало

Самый простой способ заставить работать параллельно (одновременно) две последовательности

Использование нескольких блоков Начало Самый простой способ заставить работать параллельно (одновременно) две
блоков заключается в добавлении второго блока Начало (Start), как показано на рисунке. После нажатия кнопки Загрузить и запустить (Download and Run) обе последовательности начинают работать одновременно. Программа заканчивается, когда обе последовательности блоков завершают работу. Чтобы проверить работу одной последовательности без участия второй, нажмите кнопку в виде зеленой стрелки на соответствующем блоке Начало (Start). Когда вы запустите эту программу, робот начнет двигаться и воспроизводить звук.

Слайд 18

Параллельное соединение блоков

Еще один способ реализовать многозадачность заключается в разделении соединителей

Параллельное соединение блоков Еще один способ реализовать многозадачность заключается в разделении соединителей
(шин последовательности), как показано на рисунке. Такой вариант может пригодиться, если вам нужны две параллельные последовательности блоков, которые включаются не с начала программы. В программе показано, как робот воспроизводит мелодию, а затем два действия происходят одновременно: робот едет вперед и произносит «Привет! Доброе утро!».

Слайд 20

Избегание конфликтов ресурсов

Точно так же, как вы не можете одновременно идти

Избегание конфликтов ресурсов Точно так же, как вы не можете одновременно идти
и вперед, и назад, вы не можете запрограммировать робота в одной последовательности двигаться в одном направлении, а в другой — в противоположном направлении. В этом случае возникает конфликт ресурсов, когда две последовательности блоков пытаются управлять одним мотором или датчиком одновременно. К сожалению, программное обеспечение EV3 не сообщит вам, возникает ли конфликт ресурсов в вашей программе; вероятнее всего, программа продолжит работать, но результат будет непредсказуемым. Например, робот не сможет двигаться в заданном направлении. Чтобы избежать этой проблемы, не используйте один и тот же мотор или датчик более чем в одной последовательности. По возможности старайтесь избегать многозадачности, потому что конфликты ресурсов могут возникнуть неожиданно. Иногда вы можете выполнить ту же задачу, используя только одну последовательность блоков. Например, вместо перемещения и воспроизведения звуков с помощью двух параллельных последовательностей, вы можете выполнить оба действия из одной последовательности, как вы увидите в практикуме № 21.
Имя файла: Ожидание,-повторение,-контейнеры-и-многозадачность.pptx
Количество просмотров: 31
Количество скачиваний: 0