Вернуться в Курс

Уровень 2. Продвинутые автономные роботы.

0% завершено
0/0 Шагов
  1. ОСНОВЫ РОБОТОТЕХНИКИ
    Урок 1: Введение в робототехнику
    3 Темы
  2. Урок 2: Знакомимся с датчиками
    4 Темы
    |
    1 Тест
  3. Урок 3: Знакомимся с приводами
    6 Темы
    |
    1 Тест
  4. Урок 4: Распознавание лиц с помощью робота
    2 Темы
  5. АВТОНОМНЫЕ РОБОТЫ
    Урок 5: Робот, избегающий препятствий
    4 Темы
    |
    1 Тест
  6. Урок 6: Робот, распознающий край и границы
    5 Темы
    |
    1 Тест
  7. Урок 7: Управляемый робот
    5 Темы
    |
    1 Тест
  8. РЕАЛЬНОЕ ПРИМЕНЕНИЕ ИИ & РОБОТОТЕХНИКА
    Урок 8: Полноприводный робот
    3 Темы
  9. Урок 9: Робот, отслеживающий положение объекта
    5 Темы
    |
    1 Тест
  10. Урок 10: Подъёмно-транспортный робот - сборка
    2 Темы
  11. Урок 11: Подъёмно-транспортный робот
    3 Темы
  12. ИТОГОВЫЙ ПРОЕКТ
    Урок 12: Курсовой проект
Урок прогресс
0% завершено

Пришло время запрограммировать нашего робота, распознающего границы! Выполним следующие шаги, чтобы создать скрипт.

Запуск робота

  1. Возьмём и перетащим блок when green flag clicked (при нажатии зелёного флага) из панели Events (События).
  2. Создадим блок с названием Initialize Robot (Запустить робота). Поместим блок.
  3. Для начала работы контактов перейдём на панель Sensors (Датчики) и добавим блок connect Ultrasonic () to trig (), echo() (подключить ультразвуковой датчик () к trig (), echo) под блоком Initialize Robot (Запустить робота).
  4. Следующий шаг — установить угол сервопривода на 90 градусов. Для этого возьмём и установим блок set servo on() to () angle (установить сервопривод на () до () угла) из панели Robot (Робот).
  5. Добавим блок go () at ()% speed (перемещаться () при ()% скорости). В этот раз установим направление — вперёд, а скорость — на 50%. Это позволит роботу перемещаться вперёд.
  6. Добавим блок wait () second (ждать () секунд) под блок go () at ()% speed (перемещаться () при ()% скорости).

Распознавание границы

  1. После этого перейдём на панель Control (Управление) и добавим блок forever (всегда) под блок Initialize Robot (Запустить робота).
  2. После этого добавим блок if () then (если () то) из панели Control (Управление) внутрь блока forever (всегда).
  3. Затем перейдём на панель Operators (Операторы) и добавим блок ()>() внутрь пробела в блоке if () then (если () то).
  4. Перетащим и поместим блок get ultrasonic () distance (определить с помощью ультразвука () расстояние) из панели Sensors (Датчики) в первый пробел в блоке ()>(), а также укажем значение 10 во втором пробеле. Этот блок позволит сравнивать показания датчика и выявлять границы.

Проверка свободной зоны

  1. Затем создадим новый блок под названием Set Servo Angle with Delay () (Установить угол сервопривода с задержкой ())с параметром Angle (Угол).
  2. Установим блок set servo on() to () angle (установить сервопривод на () до () угла) с параметром Angle (Угол) в качестве значения угла.
  3. После этого добавим задержку на 0,5 секунд с помощью блока wait () seconds (ждать () секунд).
  4. Вернёмся к главному скрипту. Добавим блок stop robot (остановить робота) из панели Robot (Робот). Добавим блок Set Servo Angle with Delay () (Установить угол сервопривода с задержкой ()) со значением угла 0 градусов. Это условие позволит остановить робота и изменить угол сервопривода на 0 при обнаружении границы.
  5. Теперь проверим максимальное расстояние, добавив блок if () then else (если () то или) из панели Control (Управление).
  6. Затем перейдём на панель Operators (Операторы) и добавим блок ()>() внутрь пробела в блоке if () then else (если () то или).
  7. Перетащим и поместим блок get ultrasonic () distance (определить с помощью ультразвука () расстояние) из панели Sensors (Датчики) в первый пробел в блоке ()>(), а также укажем значение 10 во втором пробеле.
  8. При выполнении этого условия робот должен повернуть налево. Этого мы сможем добиться, если вставим блок go () at () % speed for () seconds (перемещаться () при () % скорости в течение () секунд) внутрь оператора «если». Установим скорость на 50%, а время — на 1,2 секунды.
  9. После этого скопируем блок Set Servo Angle with Delay () (Установить угол сервопривода с задержкой ()) и установим его в ветвь «или». Установим угол на 180 градусов, а направление робота — направо.
  10. Добавим блок go () at () % speed for () seconds (перемещаться () при () % скорости в течение () секунд) внутрь ветви «или». В этот раз установим направление — назад, скорость — на 50%, а время — на 0,5 секунды.
  11. Добавим ещё один блок go () at () % speed for () seconds (перемещаться () при () % скорости в течение () секунд). В этот раз установим направление — налево, скорость — на 80%, а время — на 1,4 секунды. Это позволит роботу перемещаться назад.
  12. Ещё, если наш робот не найдёт никаких границ, ему нужно двигаться вперёд. Для этого поместим блок servo () to the () angle (сервопривод () на () угол) в конце первой ветви «если». Установим значение угла на 90 градусов.
  13. Наконец, установим блок go () at () speed () (перемещаться () при () скорости ()). Из выпадающего меню выберем направление — вперёд, а скорость установим на 50%.

Наконец-то, наш робот готов к работе!

Испытание

Включим робота и проверим, всё ли работает как надо.

 

Загрузка кода в Кварки

Ещё мы можем загрузить код в Кварки, чтобы он мог работать независимо от PictoBlox. Это можно сделать только с помощью ноутбука. Выполним следующие шаги:

  1. Переключимся на режим Upload (Загрузка).
  2. Заменим блок when green flag clicked (при нажатии на зелёный флаг) на блок when Quarky starts up (при включении Кварки).
  3. Загрузим код с помощью кнопки Upload Code (Загрузить код).

Вот и всё. Теперь наш робот может работать независимо от PictoBlox.