Задание 2: Устройство слежения за объектом с контролируемым движением
Урок Progress
0% Complete
В этой теме мы напишем код для робота, отслеживающего положение объекта, используя последовательность операций из предыдущей темы.
Выравнивание направления
- Мы начнём с файла из предыдущего урока.
- Удалим блок say () (произнести_).
- В блоке analyze image from () (анализ изображения из_) выберем вариант stage (локация).
- Ниже блока analyze image from () (анализ изображения из_) добавим блок if () (если_) из панели Control (Управление).
- В условие блока if (если) добавим блок is number () detected (число_распознано). Выберем число 1.
- Создадим блок под названием Adjust Angle (Регулировать угол). И вставим этот блок внутрь блока if (если).
- В шапку блока Adjust Angle (Регулировать угол) вставим блок if () else (если_иначе) из панели Control (Управление).
- Добавим блок () > () внутрь блока if () (если_). Добавим блок get () of number () (получить_числа_) в первое окошко и впишем 50 во второе окошко. В блоке get () of number () (получить_числа_) выберем параметр X position (положение Х). При этом условии знак будет находиться справа от робота, поэтому робота нужно повернуть направо.
- Добавим блок go () at ()% speed for () seconds (двигаться_с_% скоростью в течение _ секунд) в ветку if (если). Выберем направление left (налево), скорость 50% и время 0.3 seconds (0,3 секунды).
- Скопируем блок if (если) и вставим его в ветку else (иначе).
- Изменим условие на get () of number () < -50 (получить_числа_< -50).
- Изменим направление на right (направо).
- В ветку else (иначе) добавим блок stop-all (остановить всё) из панели Control (Управление).
Запустим программу и проверим код до этого момента.
Робот должен выровнять угол.
Приближение к знаку
- Создадим новый блок под названием Adjust Distance (Регулировать расстояние).
- Заменим блок stop-all (остановить всё) на Adjust Distance (Регулировать расстояние) в определении блока Adjust Angle (Регулировать угол).
- В шапку блока Adjust Distance (Регулировать расстояние) вставим блок if () else (если_иначе) из панели Control (Управление).
- В условие блока if () (если_) вставим блок () < (). Добавим блок get () of number () (получить_числа_) в первое окошко и впишем 120 во второе окошко. В блоке get () of number () (получить_числа_) выберем параметр width (ширина). При этом условии знак будет находиться далеко, поэтому робота нужно продвинуть вперёд.
- Добавим блок go () at ()% speed for () seconds (двигаться_с_% скоростью в течение _ секунд) в ветку if (если). Выберем направление forward (вперёд), скорость 50% и время 0.3 seconds (0,3 секунды).
- Наконец, в ветку else (иначе) вставим блок stop-all (остановить всё) из панели Control (Управление).
Запустим программу и проверим код!