Урок прогресс
0% завершено
Пришло время запрограммировать нашего робота, распознающего границы! Выполним следующие шаги, чтобы создать скрипт.
Запуск робота
- Возьмём и перетащим блок when green flag clicked (при нажатии зелёного флага) из панели Events (События).
- Создадим блок с названием Initialize Robot (Запустить робота). Поместим блок.
- Для начала работы контактов перейдём на панель Sensors (Датчики) и добавим блок connect Ultrasonic () to trig (), echo() (подключить ультразвуковой датчик () к trig (), echo) под блоком Initialize Robot (Запустить робота).
- Следующий шаг — установить угол сервопривода на 90 градусов. Для этого возьмём и установим блок set servo on() to () angle (установить сервопривод на () до () угла) из панели Robot (Робот).
- Добавим блок go () at ()% speed (перемещаться () при ()% скорости). В этот раз установим направление — вперёд, а скорость — на 50%. Это позволит роботу перемещаться вперёд.
- Добавим блок wait () second (ждать () секунд) под блок go () at ()% speed (перемещаться () при ()% скорости).
Распознавание границы
- После этого перейдём на панель Control (Управление) и добавим блок forever (всегда) под блок Initialize Robot (Запустить робота).
- После этого добавим блок if () then (если () то) из панели Control (Управление) внутрь блока forever (всегда).
- Затем перейдём на панель Operators (Операторы) и добавим блок ()>() внутрь пробела в блоке if () then (если () то).
- Перетащим и поместим блок get ultrasonic () distance (определить с помощью ультразвука () расстояние) из панели Sensors (Датчики) в первый пробел в блоке ()>(), а также укажем значение 10 во втором пробеле. Этот блок позволит сравнивать показания датчика и выявлять границы.
Проверка свободной зоны
- Затем создадим новый блок под названием Set Servo Angle with Delay () (Установить угол сервопривода с задержкой ())с параметром Angle (Угол).
- Установим блок set servo on() to () angle (установить сервопривод на () до () угла) с параметром Angle (Угол) в качестве значения угла.
- После этого добавим задержку на 0,5 секунд с помощью блока wait () seconds (ждать () секунд).
- Вернёмся к главному скрипту. Добавим блок stop robot (остановить робота) из панели Robot (Робот). Добавим блок Set Servo Angle with Delay () (Установить угол сервопривода с задержкой ()) со значением угла 0 градусов. Это условие позволит остановить робота и изменить угол сервопривода на 0 при обнаружении границы.
- Теперь проверим максимальное расстояние, добавив блок if () then else (если () то или) из панели Control (Управление).
- Затем перейдём на панель Operators (Операторы) и добавим блок ()>() внутрь пробела в блоке if () then else (если () то или).
- Перетащим и поместим блок get ultrasonic () distance (определить с помощью ультразвука () расстояние) из панели Sensors (Датчики) в первый пробел в блоке ()>(), а также укажем значение 10 во втором пробеле.
- При выполнении этого условия робот должен повернуть налево. Этого мы сможем добиться, если вставим блок go () at () % speed for () seconds (перемещаться () при () % скорости в течение () секунд) внутрь оператора «если». Установим скорость на 50%, а время — на 1,2 секунды.
- После этого скопируем блок Set Servo Angle with Delay () (Установить угол сервопривода с задержкой ()) и установим его в ветвь «или». Установим угол на 180 градусов, а направление робота — направо.
- Добавим блок go () at () % speed for () seconds (перемещаться () при () % скорости в течение () секунд) внутрь ветви «или». В этот раз установим направление — назад, скорость — на 50%, а время — на 0,5 секунды.
- Добавим ещё один блок go () at () % speed for () seconds (перемещаться () при () % скорости в течение () секунд). В этот раз установим направление — налево, скорость — на 80%, а время — на 1,4 секунды. Это позволит роботу перемещаться назад.
- Ещё, если наш робот не найдёт никаких границ, ему нужно двигаться вперёд. Для этого поместим блок servo () to the () angle (сервопривод () на () угол) в конце первой ветви «если». Установим значение угла на 90 градусов.
- Наконец, установим блок go () at () speed () (перемещаться () при () скорости ()). Из выпадающего меню выберем направление — вперёд, а скорость установим на 50%.
Наконец-то, наш робот готов к работе!
Испытание
Включим робота и проверим, всё ли работает как надо.
Загрузка кода в Кварки
Ещё мы можем загрузить код в Кварки, чтобы он мог работать независимо от PictoBlox. Это можно сделать только с помощью ноутбука. Выполним следующие шаги:
- Переключимся на режим Upload (Загрузка).
- Заменим блок when green flag clicked (при нажатии на зелёный флаг) на блок when Quarky starts up (при включении Кварки).
- Загрузим код с помощью кнопки Upload Code (Загрузить код).
Вот и всё. Теперь наш робот может работать независимо от PictoBlox.