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

Уровень 1. Роботы и Искусственный интеллект с Кварки

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

В предыдущей теме мы разобрали, как калибровать ИК датчики.

Почему бы теперь не создать робота-питомца, который реагирует на ласку. Робот может распознавать поглаживания при помощи ИК датчиков и действовать соответственно.

Нам нужно, чтобы робот выполнял определённые действия, когда обнаруживает руку:

  1. Когда руку обнаруживает левый датчик (Left), повернуть налево.
  2. Когда руку обнаруживает правый датчик (Right), повернуть направо.
  3. Когда оба датчика (левый и правый) обнаруживают руку, Кварки должен представиться и улыбнуться.
  4. Когда ничего не обнаружено, не делать ничего.

Напишем код!

  1. Добавим блок when flag clicked (когда нажат флажок) из панели Events (События).
  2. Перейдём на панель Sensors (Датчики) и добавим два блока set () IR sensor thresholds to () (задать_пороговое значение _ ИК датчика_) и укажем пороговое значение, которое ты вычислил на прошлом уроке.
  3. Добавим блок set robot orientation as () (задать положение робота_) и выбрать вертикальное.
  4. После этого добавим блок forever (всегда) из панели Control (Управление). Мы используем этот блок, потому что хотим постоянно проверять, обнаруживает ли датчик линию.
  5. Затем добавим блок if-else (если-иначе) внутрь блока forever (всегда).
  6. Далее перейдём к панели Sensors (Датчики) и добавим блок is () IR sensor active? (_ИК датчик активен?) в белое окошко блока if-else (если-иначе). Инфракрасный датчик станет активным, когда обнаружит чёрную линию. Это значит, что его значение должно быть выше порогового значения. Данный блок будет проверять, действительно ли показание датчика выше порогового значения.
  7. Скопируем блок if (если) и поместим его внутрь двух веток блоков if (если). Изменим величину на IR-L.
  8. Теперь у нас есть две ветки, охватывающих все четыре условия. Давайте рассмотрим их по очереди.
    1. Первый случай, когда рука не обнаружена. Добавим блок clear screen (очистить экран) из панели Display (Отображение).
    2. Второй случай, когда руку обнаруживает датчик IR-R (правый). В этом случае робот повернёт налево. Добавим блок go () at () % speed for () seconds (двигаться_с_% скоростью в течение _ секунд) из панели Robot (Робот). Зададим направление налево и время 0,3 секунды.
    3. Третий случай, когда руку обнаруживает датчик IR-L (левый). В этом случае робот повернёт направо. Добавим блок go () at () % speed for () seconds (двигаться_с_% скоростью в течение _ секунд) из панели Robot (Робот). Зададим направление направо и время 0,3 секунды.
    4. Наконец, руку обнаруживают оба датчика. Пусть робот улыбнётся и воспроизведёт запись: “Привет, я – Кварки!”, при помощи блока play sound () until done (воспроизвести запись _ до конца)

Код завершён!

Запустим его, чтобы проверить!