Использование датчика цвета VEX IQ (1-го поколения)

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

Датчик цвета VEX IQ (1-го поколения).

Датчик цвета VEX IQ входит в комплект VEX IQ Super Kit и также может быть приобретен здесь

Используете робота VEX IQ второго поколения? Обзор датчиков 2-го поколения можно посмотреть здесь, а информацию об оптическом датчике , версии цветового датчика 2-го поколения, можно найти здесь 1.


Описание датчика цвета

Цветной датчик VEX IQ имеет несколько режимов, позволяющих ему получать различные типы информации из окружающей среды. На получаемую информацию влияют условия освещения в окружающей среде, а также расстояние между датчиком и объектом или поверхностью, с которой он работает.


Цветовой круг, демонстрирующий, как круг в 360 градусов соотносится со значением оттенка. Красный цвет соответствует 0 градусам, зеленый — 120 градусам, а синий — 240 градусам.


Как работает датчик цвета

Цветовой датчик способен распознавать как цвет, так и приближение.

Обнаружение цветов
VEXcode IQ Яркость блока, отображающего яркость Color3 в процентах
Схема работы цветового датчика, который обнаруживает яркую поверхность и выдает значение 80%, а затем обнаруживает темную поверхность и выдает значение 20%.

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

Блок управления VEXcode IQ Set color sensor light block, считывающий значение "Set Color3 light to 50%.".
На фотографии показан датчик цвета, установленный на роботе в темном помещении. Лампа датчика цвета включается для освещения окружающего пространства.

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

Три блока цветового датчика VEXcode IQ. Первый параметр — это цвет блока, который отображает название цвета Color3. Второй параметр — это оттенок блока, который отображает оттенок Color3 в градусах. Третий блок — это блок «Цвет определяется», в котором написано: «Color3 не определяет ничего?»

Датчик цвета может сообщать об воспринимаемом цвете либо как значение цвета, либо как значение оттенка.

VEXcode IQ Color обнаруживает блок с текстом "Color3 ничего не обнаруживает"? Открывается выпадающее меню «Цвет» блока, в котором отображается список цветов, которые блок может распознать. В списке указаны следующие цвета: оранжевый, фиолетовый, красно-фиолетовый, фиолетовый, сине-фиолетовый, сине-зеленый, желто-зеленый, желто-оранжевый и красно-оранжевый.

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

Диаграмма цветового тона, демонстрирующая, как 360 градусов соотносятся с цветовым тоном. Красный цвет соответствует 0 градусам, зеленый — 120 градусам, а синий — 240 градусам.

Значения оттенка.Значения оттенка похожи на значения цвета, но числовые. Значение оттенка варьируется от 0 до 360, как и в градусах. Перечисленные выше значения цвета имеют свои собственные эквивалентные диапазоны значений оттенка. 

Для распознавания цветов и оттенков важно, чтобы датчик цвета получал достаточное количество света. Обязательно проверьте (или откалибруйте) датчик цвета при разных уровнях освещенности и при разной интенсивности освещения, чтобы определить наиболее надежную настройку датчика цвета вашего робота.

Обнаружение близости

Датчик цвета включает в себя инфракрасный излучатель. Инфракрасный излучатель направляет невидимый свет, а затем регистрирует его отражение. Если большая часть инфракрасного света отражается обратно к датчику, это сигнализирует роботизированному мозгу о том, что объект находится рядом.

VEXcode IQ обнаружил блок объекта, в котором указано, что Color3 находится рядом с объектом?

Распространенное использование датчика цвета

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

К числу распространенных способов применения в повседневной жизни относятся:

  • Инструменты калибровки цвета проверяют, отображает ли цифровой экран точные цвета, а затем при необходимости настройте параметры дисплея. Для художников-графиков и любого дизайнера, работающего с цветом на цифровом экране, важно иметь возможность видеть именно тот цвет, который отображается. Недоразумения и напрасная трата ресурсов возникают, когда цвета не точны.
  • Фотокамеры и видеокамеры используют датчики цвета для настройки параметров в зависимости от условий освещения, в которых они находятся, чтобы улучшить качество фотографий и видео за счет максимального увеличения уровня освещенности и улучшения тусклых цветов. Эти датчики также позволяют фотографу фокусироваться на определенных цветах на фотографиях.
  • Датчики цвета иногда используются на производстве, чтобы быстро проверить, имеет ли продукт правильный цвет, прежде чем он будет отправлен покупателю. Например, фрукты и овощи, меняющие цвет при созревании или готовности к употреблению, можно сканировать, чтобы убедиться, что они имеют правильный цвет для отправки на рынок. 


К числу распространенных вариантов использования робота VEX IQ относятся:

  • Этот датчик можно использовать для определения цвета объекта. Посмотрите эту анимацию, чтобы увидеть, как робот движется вперед, пока датчик цвета не обнаружит зеленый куб.

  • Этот датчик можно использовать для обнаружения и/или отслеживания линии. Посмотрите эту анимацию, чтобы увидеть робота, использующего датчик цвета для движения по обозначенной линии.

  • Этот датчик может определить, находится ли объект рядом.

Датчики цвета на соревновательном роботе

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

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

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

Кодирование датчика цвета в блоках

VEXcode IQ Найден блок объекта, который читает Color3, находится рядом с объектом?

Блок <Found an object> — это логический блок репортера, который сообщает об истинном или ложном условии. Логические блоки, такие как блок <Found an object> , помещаются внутри блоков с шестиугольными (шестисторонними) входами для других блоков.

Логический блок <Found an object> сообщает «истина», если «истина», если датчик цвета обнаруживает объект, и «ложь», если датчик этого не делает. Чтобы узнать больше о логических блоках, посетите статью Помощь или формы блоков и их значение.

 

Проект VEXcode IQ Blocks, в котором используется датчик цвета для движения вперед до тех пор, пока не будет обнаружен объект. Проект гласит: «При запуске двигайтесь вперед, подождите, пока Color3 обнаружит объект, а затем остановитесь».

В этом примере блок <Found an object> используется для обнаружения близости вместе с блоком [Подождать, пока] чтобы заставить робота двигаться вперед до тех пор, пока не будет обнаружен объект.

VEXcode IQ Color обнаруживает блок, который считывает Color3, обнаруживает зеленый цвет?

Блок <Color detects> также является логическим блоком репортера, который сообщает об истинном или ложном условии. Блок <Color detects> сообщает «истина», если «истина», если датчик цвета обнаруживает выбранный цвет, и «ложь», если датчик обнаруживает любой другой цвет. Чтобы узнать больше о логических блоках, посетите статью Помощь или формы блоков и их значение.

 

Проект VEXcode IQ блокирует использование датчика цвета для движения вперед до тех пор, пока не будет обнаружен зеленый цвет. Проект гласит: «При запуске двигайтесь вперед, подождите, пока Color3 не обнаружит зеленый свет, а затем остановитесь».

В этом примере блок <Color detects> используется вместе с блоком [Подождать, пока] чтобы заставить робота двигаться вперед до тех пор, пока датчик цвета не обнаружит зеленый объект. После этого робот прекратит движение. Это показано в первом видео выше.

VEXcode IQ Яркость блока, который считывает яркость Color3 в %.

Блок (Яркость) сообщает количество света, обнаруженное датчиком цвета. Это репортерный блок, используемый внутри других блоков с круглыми пробелами.

Блок (Яркость) сообщает диапазон от 0% до 100%.

 

Проект блоков VEXcode IQ, в котором для отслеживания отмеченной линии используется направленный вниз датчик цвета. Проект гласит: При запуске установите яркость Color3 на 25%. Далее, если яркость Color3 в % больше 25, то вращаем LeftMotor вперед на 35 градусов, в противном случае вращаем RightMotor вперед на 35 градусов.

В этом примере блок (Яркость) используется для того, чтобы робот обнаруживал линию и следовал ей, как показано во втором видео выше.

VEXcode IQ Оттенок блока, который считывает оттенок Color3 в градусах.

Блок (Оттенок) сообщает оттенок цвета, обнаруженный датчиком цвета. Это репортерный блок, используемый внутри других блоков с круглыми пробелами.

Блок (Яркость) сообщает диапазон от 0 до 360.

 

Проект блоков VEXcode IQ, в котором используется оптический датчик для движения вперед до тех пор, пока не достигнет объекта, а затем поворот направо, если он красный, или налево, если нет. Проект гласит: При запуске выведите оттенок Color3 в градусах на Brain, двигайтесь вперед, а затем ждите, пока Color3 не найдет объект. Если оттенок Color3 в градусах больше 330, а оттенок Color3 в градусах меньше 30, то поверните направо на 90 градусов, в противном случае поверните налево на 90 градусов.

В этом примере блок (Оттенок) используется для того, чтобы робот проверял диапазон значений оттенка, соответствующих красному цвету, и поворачивал направо на 90 градусов, если эти значения обнаруживаются датчиком. Если будут обнаружены какие-либо другие значения оттенка, робот повернет влево на 90 градусов.

Блок (Оттенок) может быть полезен, когда роботу необходимо обнаружить определенные цвета, когда условия окружающего освещения могут быть непостоянными.

Кодирование датчика цвета на Python

Примечание:Для программирования бамперного переключателя VEX IQ (1-го поколения) на Python его необходимо подключить к блоку управления VEX IQ (2-го поколения). VEX IQ (1-го поколения) Brain не поддерживает Python.

color_3.is_near_object()

Команда color.is_near_object сообщает True , когда датчик цвета обнаруживает объект или поверхность рядом с передней частью датчика, и False , когда датчик цвета а не обнаруживает объект или поверхность, расположенную близко к передней части датчика. датчик.

Примечание:Имя датчика цвета, отображаемое в команде, соответствует имени, заданному в конфигурации. 

drivetrain.drive(FORWARD)
while not color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
В этом примере используется циклWhile с условием not вместе с командой color.is_near_object , чтобы робот двигался вперед до тех пор, пока датчик цвета не обнаружит объект, находящийся близко к передней части датчика.
color_3.color()

Команда color.color сообщает цвет, который в данный момент определяется датчиком цвета.

drivetrain.drive(FORWARD)
while not color_3.GREEN():
    wait(20, MSEC)
drivetrain.stop()
В этом примере используется циклWhile с условием not и командой color.color , чтобы робот двигался вперед до тех пор, пока датчик цвета не обнаружит зеленый объект. После этого робот прекратит движение. Это показано в первом видео выше.
color_3.brightness()

Команда color.brightness отображает количество света, обнаруженного датчиком цвета. В отчете отображается диапазон значений от 0% до 100%.

color_3.set_light(25, PERCENT)
    while True:
        if color_3.brightness() > 25:
            # Если датчик цвета обнаруживает свет, робот сдвинется влево
            LeftMotor.spin_for(FORWARD, 35, DEGREES)
        else:
            # Если датчик цвета обнаруживает темноту, робот сдвинется вправо
            RightMotor.spin_for(FORWARD, 35, DEGREES)
        wait(20, MSEC)
В этом примере команда color.brightness используется для того, чтобы робот обнаружил линию и следовал ей, как показано во втором видео выше.
цвет_3.оттенок()

Команда color.hue сообщает оттенок цвета, обнаруженный датчиком цвета. Он сообщает диапазон значений оттенка от 0 до 360.

brain.screen.print(color_3.hue())
drivetrain.drive(FORWARD)
while not color_3.is_near_object():
    wait(20, MSEC)
if color_3.hue() > 330 and color_3.hue() < 30:
    drivetrain.turn_for(RIGHT, 90, DEGREES)
else:
    drivetrain.turn_for(LEFT, 90, DEGREES)

В этом примере команда color.hue используется для того, чтобы робот проверил диапазон значений оттенка, соответствующих красному цвету, и повернул направо на 90 градусов, если эти значения обнаружены датчиком. Если будут обнаружены какие-либо другие значения оттенка, робот повернет влево на 90 градусов.

Команда color.hue может быть полезна, когда роботу необходимо обнаружить определенные цвета, когда условия окружающего освещения могут быть непостоянными.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: