Уровень 2. Продвинутые автономные роботы.
-
ОСНОВЫ РОБОТОТЕХНИКИУрок 1: Введение в робототехнику3 Темы
-
Урок 2: Знакомимся с датчиками4 Темы|1 Тест
-
Урок 3: Знакомимся с приводами6 Темы|1 Тест
-
Урок 4: Распознавание лиц с помощью робота2 Темы
-
АВТОНОМНЫЕ РОБОТЫУрок 5: Робот, избегающий препятствий4 Темы|1 Тест
-
Урок 6: Робот, распознающий край и границы5 Темы|1 Тест
-
Урок 7: Управляемый робот5 Темы|1 Тест
-
РЕАЛЬНОЕ ПРИМЕНЕНИЕ ИИ & РОБОТОТЕХНИКАУрок 8: Полноприводный робот3 Темы
-
Урок 9: Робот, отслеживающий положение объекта5 Темы|1 Тест
-
Урок 10: Подъёмно-транспортный робот - сборка2 Темы
-
Урок 11: Подъёмно-транспортный робот3 Темы
-
ИТОГОВЫЙ ПРОЕКТУрок 12: Курсовой проект
Задание 2: Обнаружение препятствий с помощью ультразвукового датчика
Теперь мы умеем измерять расстояние до объекта. Давайте перейдём к следующей задаче — научим робота Кварки обнаруживать препятствия и менять цвет при приближении к ним.
Светодиоды Кварки должны менять цвет с зелёного на красный, если впереди обнаружено препятствие на расстоянии меньше 10 см. Давайте же напишем такую программу!
Понимание логики
Идея проста. Робот будет постоянно проверять расстояние до объекта. Если расстояние станет меньше 10 см, светодиод сменит цвет на КРАСНЫЙ; во всех прочих случаях он будет оставаться ЗЕЛЁНЫМ. Логику можно проследить с помощью блок-схемы ниже:
Напишем код!
Выполним следующие шаги:
- Перейдём на панель Events (События) и добавим блок when green flag clicked.
- Для подключения контактов перейдём на панель Sensors (Датчики) и добавим блок connect Ultrasonic () to trig (), echo под блок when green flag clicked.
- После этого перейдём на панель Control (Управление) и добавим блок forever под блок connect Ultrasonic () to trig (), echo. Программа внутри этого блока будет исполняться до остановки кода вручную.
- Добавим блок if () then else из панели Control (Управление) внутрь блока forever.
- Затем перейдём на панель Operator (Оператор) и добавим блок ()>() внутрь условия в блоке if () then else.
- Поместим блок get Ultrasonic () distance из панели Sensors (Датчики) внутрь блока ()>() с левой стороны и укажем значение 10 с правой стороны. Это позволит нам сравнивать показания датчика с заранее установленным значением (10 см).
- После этого вставим блок display matrix as () из панели Display (Отображение) под веткой «if» и заполним матрицу ЗЕЛЁНЫМ цветом.
- Скопируем этот блок и поместим его под веткой «else» блока if-else. После этого заполним матрицу КРАСНЫМ цветом.
- И, наконец, вставим после блока if () then else блок wait () из панели Control (Управление) и добавим 0,5-секундную задержку для стабильности.
Мы завершили нашу программу!
Давайте попробуем исполнить ее.
Проверка
Как мы видим, когда какой-нибудь объект оказывается на расстоянии 10 см. от Кварки, датчик его обнаруживает и включает КРАСНУЮ подсветку.