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

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

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

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 см от робота.