Занятие № 4. Датчик цвета

Задание № 1. Определение цвета

Подключите датчик цвета к порту 3. Датчик должен быть направлен в сторону поверхности по которой движется робот.


Один из способов присоединить датчик:

1.1 Остановка по цвету

Робот едет прямо, пока не заметит на столе красный цвет, после чего останавливается.

1.2 Определитель цвета

Робот выводит на экран название цвета, который находится под датчиком.

Рисунок 1

1.3 Движение по меткам

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

  • белый - движение прямо;
  • красный - поворот налево на 90 градусов (поворот на месте);
  • синий - поворот направо на 90 градусов (поворот на месте);
  • нет цвета - остановка.

Используйте цветовые метки, чтобы провести робота по лабиринту из коробок.


За основу возьмите код на Рисунок 1.

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

Задание № 2. Движение по линии

Реализуем релейный алгоритм движения по линии.

Для движения по линии нужно определить среднюю точку - значение количества отражённого света, после которого робот будет менять своё состояние.

Включите режим просмотра портов:

Кликните по изображению датчика цвета и выберите режим Яркость отраженного света:

Поставьте робота на белую часть поля и запишите показания датчика \(d_1\):

Поставьте робота на линию и запишите показания датчика \(d_2\). Найдите среднее значение между \(d_1\) и \(d_2\). Это и будет значение средней точки \(M\). Используйте это значение в следующем алгоритме.

2.1 Релейный алгоритм движения по линии

Составьте следующую программу для движения робота по линии:

Рисунок 2

В условии блока Переключатель используйте значение \(M\) из прошлого задания.

2.2 Пропорциональный алгоритм движения по линии

Составьте следующую программу для движения по линии. Значение средней точки \(M\) возьмите из предыдущих заданий.

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

Значение количества отражённого света получим с помощью блока Датчик освещённости. Блок Математика переключим в режим ADV. Введите выражение в текстовое поле. Значения из одного блока в другой передаём с помощью шин.

Величину поворота \(X\) рассчитаем по формуле: \[ \class{var_r}{X} = (\class{var_p}{M} - \class{var_a}{s}) \cdot \class{var_b}{k} \] \(М\) - средняя точка, \(s\) - показания датчика, \(k\) - коэффициент коррекции. Разность в скобках принято называть ошибкой или рассогласованием.

Подберите такое значение коэффициента \(k\), чтобы движение по линии было плавным, без рывков.

Дополнительные задания

3. Грузоперевозки

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

  • Белый цвет - двигаться прямо;
  • Зелёный цвет - повернуть налево и немного проехать прямо;
  • Чёрный цвет - развернуться на месте и немного проехать прямо.

4. Линия с препятствиями

На линии в случайных позициях могут стоять препятствия. Дополните алгоритм на рисунке 2 и реализуйте объезд преграды. Объезд начинайте, как только препятствие находится на расстоянии 10 см от робота.


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