VEX IQ(1세대) 컬러 센서 사용

컬러 센서는 반사광을 사용하여 물체의 색상, 색조 값, 회색조 값, 밝기 및 근접성을 감지합니다.

VEX IQ (1세대) 컬러 센서 부품.

VEX IQ 컬러 센서는 VEX IQ 슈퍼 키트에 포함되어 있으며 구매할 수 있습니다.

2세대 VEX IQ 로봇을 사용하고 계신가요? 2세대 센서 에 대한 개요는 여기에서 확인할 수 있으며, 세대 컬러 센서 버전인 광학 센서에 대한 정보도 확인할 수 있습니다.


컬러 센서 설명

VEX IQ 컬러 센서는 다양한 모드를 갖추고 있어 주변 환경에서 여러 유형의 정보를 캡처할 수 있습니다. 센서가 수집하는 정보는 주변 환경의 조명 조건뿐만 아니라 센서와 측정 대상 물체 또는 표면 사이의 거리에도 영향을 받습니다.


색상환은 360도 원이 색조 값과 어떻게 연관되는지를 보여줍니다. 빨간색은 0도, 초록색은 120도, 파란색은 240도입니다.


컬러 센서의 작동 방식

컬러 센서는 색상과 근접성을 모두 감지할 수 있습니다.

색상 감지
VEXcode IQ 블록의 밝기는 Color3 밝기를 % 단위로 읽습니다.
밝은 표면을 감지하여 80% 값을 보고하고, 어두운 표면을 감지하여 20% 값을 보고하는 색상 센서의 다이어그램.

밝기 모드에 있을 때 컬러 센서는 로봇 환경의 모든 빛의 강도를 감지하는 데 사용됩니다. 활성화된 동안 컬러 센서에 도달하는 빛이 많을수록 로봇 두뇌로 전송되는 백분율 값이 높아집니다.

VEXcode IQ Set 컬러 센서 라이트 블록은 Color3 조명을 50%로 설정합니다.
어두운 환경에서 로봇에 부착된 컬러 센서가 보인다. 컬러 센서의 램프가 켜져 주변을 비춥니다.

감지된 밝기 비율이 낮거나 신뢰할 수 없는 경우 컬러 센서의 램프를 켜거나 다음 설정 조명을 사용하여 램프의 밝기 비율을 높일 수 있습니다.

VEXcode IQ 컬러 센서 블록 3개. 첫 번째는 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> 블록과 같은 부울 블록은 다른 블록에 대한 육각형(6면) 입력이 있는 블록 내부에 맞습니다.

<Found an object> 부울 블록은 컬러 센서가 물체를 감지하면 'true', 센서가 감지하지 않으면 'false'이면 'true'를 보고합니다. 부울 블록에 대해 자세히 알아보려면 도움말 또는 블록 모양 및 의미 기사를 참조하세요.

 

VEXcode IQ는 컬러 센서를 사용하여 객체를 찾을 때까지 전진하는 프로젝트를 차단합니다. 이 프로젝트는 "시작하면 앞으로 주행하고, Color3가 객체를 찾을 때까지 기다린 다음 주행을 멈춥니다."로 시작됩니다.

이 예에서는 <Found an object> 블록을 사용하여 [Wait Until] 블록과 함께 근접성을 감지하여 물체가 감지될 때까지 로봇이 전진하도록 합니다.

VEXcode IQ Color는 Color3가 녹색을 감지한다는 블록을 감지합니까?

<Color detects> 블록은 조건을 참 또는 거짓으로 보고하는 부울 리포터 블록이기도 합니다. <Color detects> 블록은 색상 센서가 선택한 색상을 감지하면 'true', 센서가 다른 색상을 감지하면 'false'인 경우 'true'를 보고합니다. 부울 블록에 대해 자세히 알아보려면 도움말 또는 블록 모양 및 의미 기사를 참조하세요.

 

VEXcode IQ는 색상 센서를 사용하여 녹색을 감지할 때까지 앞으로 주행하는 프로젝트를 차단합니다. 이 프로젝트에서는 "시작하면 앞으로 주행하고, Color3가 녹색을 감지할 때까지 기다린 다음 주행을 멈춥니다"라고 설명합니다.

이 예에서는 <Color detects> 블록을 [Wait Until] 블록과 함께 사용하여 컬러 센서가 녹색 물체를 감지할 때까지 로봇이 전진하도록 합니다. 그러면 로봇은 운전을 멈춥니다. 이는 위의 첫 번째 비디오에 설명되어 있습니다.

Color3의 밝기를 %로 읽는 블록의 VEXcode IQ 밝기입니다.

(밝기) 블록은 컬러 센서가 감지한 빛의 양을 보고합니다. 원형 공백이 있는 다른 블록 내부에 사용되는 리포터 블록입니다.

(밝기) 블록은 0% ~ 100% 범위를 보고합니다.

 

VEXcode IQ 블록 프로젝트는 아래쪽을 향한 컬러 센서를 사용하여 표시된 선을 따라갑니다. 이 프로젝트는 시작할 때 Color3 조명을 25%로 설정합니다. 다음으로, Color3의 밝기(%)가 25보다 크면 LeftMotor를 35도 앞으로 돌리고, 그렇지 않으면 RightMotor를 35도 앞으로 돌립니다.

이 예에서는 위의 두 번째 비디오에서 볼 수 있듯이 (밝기) 블록을 사용하여 로봇이 선을 감지하고 따라가도록 합니다.

Color3 색조를 각도 단위로 읽는 블록의 VEXcode IQ 색조입니다.

(색조) 블록은 컬러 센서가 감지한 색상의 색조를 보고합니다. 원형 공백이 있는 다른 블록 내부에 사용되는 리포터 블록입니다.

(밝기) 블록은 0 ~ 360 범위를 보고합니다.

 

VEXcode IQ는 광학 센서를 사용하여 물체에 도달할 때까지 전진한 다음 빨간색이면 오른쪽으로, 빨간색이 아니면 왼쪽으로 회전하는 프로젝트를 차단합니다. 이 프로젝트는 시작할 때 Brain에 Color3 색조를 각도로 인쇄하고 진행한 다음 Color3가 객체를 찾을 때까지 기다립니다. Color3 색조가 330보다 크고 30보다 작으면 오른쪽으로 90도 회전하고, 그렇지 않으면 왼쪽으로 90도 회전합니다.

이 예에서 (Hue of) 블록은 로봇이 빨간색에 해당하는 색상 값의 범위를 확인하고 해당 값이 센서에 의해 감지되면 오른쪽으로 90도 회전하는 데 사용됩니다. 다른 색조 값이 감지되면 로봇은 왼쪽으로 90도 회전합니다.

(색조) 블록은 주변 조명 조건이 일치하지 않을 수 있는 경우 로봇이 특정 색상을 감지해야 할 때 유용할 수 있습니다.

Python에서 컬러 센서 코딩

참고:VEX IQ(1세대) 범퍼 스위치를 Python으로 코딩하려면 VEX IQ(2세대) 브레인에 연결해야 합니다. VEX IQ(1세대) 브레인은 Python을 지원하지 않습니다.

color_3.is_near_object()

color.is_near_object 명령은 컬러 센서가 센서 전면에 가까운 물체나 표면을 감지하면 참 보고하고, 컬러 센서가 센서 전면에 가까운 물체나 표면을 하지 않으면 거짓 합니다. 감지기.

참고:명령에 나타나는 컬러 센서의 이름은 구성에 지정된 이름과 일치합니다. 

drivetrain.drive(FORWARD)
while not color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
이 예제에서는 명령과 함께While 루프not 조건을 사용하여 로봇이 컬러 센서센서 앞쪽에 물체 감지할 때까지 앞으로 이동하도록 합니다.
color_3.color()

color.color 명령은 컬러 센서가 현재 감지하고 있는 색상을 보고합니다.

drivetrain.drive(FORWARD)
while not color_3.GREEN():
    wait(20, MSEC)
drivetrain.stop()
이 예제에서는While 루프와 not 조건을 사용하여 color.color 명령을 실행하여 컬러 센서가 녹색 물체를 감지할 때까지 로봇이 앞으로 나아가도록 합니다. 그러면 로봇은 주행을 멈춥니다. 이는 위의 첫 번째 영상에서 확인할 수 있습니다.
color_3.밝기()

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 명령을 사용하여 로봇이 선을 감지하고 따라가도록 합니다.
color_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: