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

Уровень 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. Создадим две переменные под названием Max (Максимум), and Min (Минимум) из панели Variables (Переменные).
  2. Возьмём и перетащим блок when green flag clicked (при нажатии зелёного флага) из панели Events (События)..
  3. Затем добавим блок set () to() ((установить () на ()). Установим на Min (Минимум), на 5.
  4. Скопируем этот блок и установим на Max (Максимум), на 30. Так мы определили максимальное и минимальное расстояние как 30 см и 5 см.
  5. Создадим блок с названием Initialize Robot (Запустить робота). Поместим блок.
  6. Для начала работы контактов перейдём на панель Sensors (Датчики) и добавим блок connect Ultrasonic () to trig (), echo() (подключить ультразвуковой датчик () к trig (), echo) под блок Initialize Robot (Запустить робота).
  7. Следующий шаг — установить угол сервопривода на 90 градусов. Для этого возьмём и установим блок set servo on() to () angle (установить сервопривод на () до () угла) из панели Robot (Робот).
  8. Добавим wait () second (ждать () секунд) под блок set servo on () to () angle (установить сервопривод на () до () угла).

Обнаружение препятствия

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

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

  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 () (Установить угол сервопривода с задержкой ()) со значением угла 45 градусов. Это условие позволит остановить робота и изменить угол сервопривода на 45, если в минимальном диапазоне расстояния появится препятствие.
  5. Теперь проверим максимальное расстояние, добавив блок if () then else (если () то или) из панели Control (Управление).
  6. Затем перейдём на панель Operators (Операторы) и добавим блок ()>() внутрь пробела в блоке if () then else (если () то или).
  7. Перетащим и поместим блок get ultrasonic () distance (определить с помощью ультразвука () расстояние) из панели Sensors (Датчики) в первый пробел в блоке ()>(), а также укажем переменную Max (Максимум) во втором пробеле. Этот блок позволит сравнить показания датчика со значением максимального расстояния.
  8. При выполнении этого условия робот должен повернуть направо. Этого мы сможем добиться, если вставим блок go () at () % speed for () seconds (перемещаться () при () % скорости в течение () секунд) внутрь оператора «если». Установим скорость на 50%, а время — на 0,6 секунды.
  9. После этого скопируем блок Set Servo Angle with Delay () (Установить угол сервопривода с задержкой ()) и установим его в ветвь «или». Установим угол на 135 градусов, а направление робота — налево.
  10. Создадим новый блок с названием Check Extreme (Проверка предельного значения). Этот блок будет проверять условия для 0 и 180 градусов. Добавим блок в ветвь “или”.
  11. Ещё, если наш робот не найдёт никаких препятствий, ему нужно двигаться вперёд. Для этого поместим блок servo () to the () angle (сервопривод () на () угол) в конце первой ветви «если». Установим значение угла на 90 градусов.
  12. Наконец, установим блок go () at () speed () (перемещаться () при () скорости ()). Из выпадающего меню выберем направление — вперёд, а скорость установим на 50%.

Проверка условий предельных значений

  1. Скопируем блок Set Servo Angle with Delay () (Установить угол сервопривода с задержкой ()) со значением 135 и поместим его под блок Check Extreme (Проверка предельного значения). Установим угол на 0 градусов, направление робота — направо, а время — на 1,2 секунды.
  2. Скопируем блок Set Servo Angle with Delay () (Установить угол сервопривода с задержкой ()) и установим его в ветвь «или». Установим угол на 180 градусов, а направление робота — налево.
  3. Добавим блок go () at () % speed for () seconds (перемещаться () при () % скорости в течение () секунд) внутрь ветви «или». В этот раз установим направление — направо, скорость — на 80%, а время — на 1,5 секунды. Это позволит роботу перемещаться назад.

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

Испытание

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

 

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

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

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

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