Back to Курс

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

0% Complete
0/0 Steps
  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: Итоговый проект
Урок Progress
0% Complete

Калибровка инфракрасных датчиков — Общие сведения

Мы знаем, что роботы этого типа двигаются по специальной «линии». Но как же они узнают, где эта линия находится?

В игру вступают инфракрасные датчики!

Такие роботы используют электронные устройства, которые называются «инфракрасные датчики», чтобы находить линию, по которой им нужно перемещаться.

Давайте разберёмся, как они работают.

Понимание логики

Инфракрасный датчик состоит из 2 светодиодов: один передаёт инфракрасный свет, а другой принимает инфракрасный свет. При передаче инфракрасных лучей, они отражаются от ближайшей поверхности и попадают на светодиод-приёмник. Именно так инфракрасный датчик и обнаруживает объекты.

Но обнаружение объектов разного цвета зависит от количества лучей, которые отражает поверхность:

  1. Тёмная поверхность будет поглощать больше инфракрасных лучей, в результате чего на принимающий светодиод их будет попадать меньше.
  2. Белые и блестящие объекты будут поглощать меньше инфракрасных лучей, поэтому на принимающий светодиод их попадёт больше.

Мы можем получать показания датчиков в PictoBlox и на основании полученных данных определять, белая поверхность или чёрная.

  1. Если датчик обнаруживает чёрную линию, числа, которые он отправляет, становятся больше. Это значит, что датчик активен.
  2. IЕсли он обнаруживает белую зону, числа, которые он отправляет, становятся меньше. Это значит, что датчик неактивен.

Нам нужно назначить пороговое значение – число, при превышении которого датчик обнаруживает чёрную линию. Если число, которое отправляет датчик, меньше порогового, это значит, что он ещё не обнаружил линию.

Прежде, чем мы начнём использовать нашего робота, двигающегося по маршруту, нам нужно откалибровать инфракрасные датчики – то есть убедиться, что они работают правильно. Для их калибровки нам нужно написать программу в PictoBlox. Подключим Кварки к PictoBlox и выясним, какое пороговое значение соответствует его инфракрасным датчикам.

evive Alert
Инфракрасные датчики НЕ РАБОТАЮТ при ярком свете солнца. Инфракрасные лучи, излучаемые солнцем, повышают общее пороговое значение для датчиков, поэтому они остаются активными всё время. Подходящие время/место для работы с роботом, передвигающимся по маршруту — замкнутое помещение или тёмное время суток.

Напишем код!

Определим пороговое значение

  1. Откроем новый проект, выбрав New (Новый) во вкладке File (Файл).
  2. Подключим Кварки к PictoBlox, так же как мы делали на прошлом уроке.
  3. Перейдём на панель Variables (Переменные ) и создадим переменную под названием Sensor Value (Значение датчика).Variable
  4. Теперь нам нужно составить следующую программу, которая будет постоянно обновлять значение переменной в соответствии с показаниями левого инфракрасного датчика.
    Вы увидите, что эти показания появляются в верхнем левом углу рабочей панели. Мы будем использовать эту переменную, чтобы определить пороговое значение для наших инфракрасных датчиков.
  5. Сначала выясним, какое предельное значение у первого, то есть левого, инфракрасного датчика.
  6. Возьмем дорожку из вашего набора для Кварки и поднесём чёрную линию довольно близко к датчику. Посмотрим на изменившееся значение переменной на Рабочей панели. Запомним полученное значение.
  7. Теперь поднесём к датчику белое пространство. На наших глазах значение снизится. Запомним новое значение. Пороговое значение — число посередине между первым и вторым значениями. То есть, если при обнаружении датчиком чёрной линии значение было 2000, а при обнаружении белого пространства оно стало 500, то наше пороговое значение составит 1200.
    Повторим тот же процесс для второго, то есть правого, инфракрасного датчика. Примечание: значения датчиков могут быть разными, это нормально.

Получение обратной связи с помощью светодиодов

Теперь проверим, подходит ли нашим датчикам рассчитанное нами значение. Добавим петлю для получения обратной связи. Так мы сможем понять, обнаружил ли датчик чёрную линию.

  1. Добавим блок when flag clicked из панели Events (События).
  2. Перейдём на панель Sensors (Датчики), добавим блок set () IR sensor threshold to () и укажем пороговое значение, которое мы вычислили ранее.
  3. Затем добавим блок forever из панели Control (Управление). Мы используем этот блок, потому что хотим постоянно проверять, обнаруживает ли датчик линию.
  4. Затем вставим блок if-else внутрь блока forever.
  5. После этого перейдём на панель Sensors (Датчики) и добавим блок is () IR sensor active? в белую часть блока if-else. Инфракрасный датчик станет активным, когда обнаружит чёрную линию. Это значит, что его значение должно быть выше порогового значения. Данный блок будет проверять, действительно ли показание датчика выше порогового значения.
  6. Чтобы дать понять, что датчик активен, включим один из светодиодов на точечной матрице. Добавим блок set LED x () y () to () with brightness () из панели Display (Отображение) в ветку if блока if-else. Из выпадающего списка выберем зелёный цвет, нажав на цветовой круг на блоке.
  7. Скопируем этот блок и поместим его в ветку else блока if-else. В этот раз выберем красный цвет.

Калибровка инфракрасных датчиков

Теперь запустим программу, нажав на зелёный флаг и поднеся чёрную линию дорожки к инфракрасному датчику. Выполнится один из следующих трёх пунктов:

  1. Значение калибровки слишком ВЫСОКОЕ: В этом случае чёрная область не будет определяться. Нужно уменьшить значение калибровки.
  2. Значение калибровки слишком НИЗКОЕ: В этом случае не будет определяться белая область. Нужно увеличить значение калибровки.
  3. Значение калибровки ПОДХОДЯЩЕЕ: Белые и чёрные области чётко определяются.

После этого изменим программу таким образом, чтобы добавить показания правого инфракрасного датчика.

А теперь запустим программу, нажав на зелёный флаг и поднеся чёрную линию дорожки к правому инфракрасному датчику.

Финальное испытание

Прежде чем приступать к дальнейшей работе, нам нужно убедиться, что и левый, и правый датчики правильно настроены.