Python을 사용하여 VEXcode VR의 거리 센서 사용

VR 로봇의 거리 센서는 VR 로봇과 가장 가까운 물체 사이의 거리를 보고합니다. 센서는 레이저 빛이 물체에서 반사되어 센서로 돌아오는 데 걸리는 시간을 사용하여 거리를 계산합니다.


VR 로봇의 거리 센서

앞 눈을 아래로

거리 센서는 VR 로봇과 가장 가까운 고체 물체 사이의 거리를 보고하는 센서입니다.

VR 하향식

거리 센서는 최신 휴대폰이 머리 감지에 사용하는 레이저와 유사한 클래스 1 레이저를 사용합니다. 안전한 레이저 광의 작은 펄스를 보낸 다음 펄스가 반사되는 데 걸리는 시간을 사용하여 근처 물체의 거리를 계산합니다. 센서는 레이저 펄스가 왕복하는 데 걸린 시간을 기준으로 거리를 계산합니다.


거리 센서와 함께 사용되는 VEXcode VR 명령

거리_명령.png

거리 센서와 함께 사용되는 명령은 감지 카테고리에서 찾을 수 있습니다.

get_distance 명령

Screen_Shot_2021-10-07_at_4.17.49_PM.png

get_distance 명령을 사용하면 거리 센서가 가장 가까운 물체의 거리를 밀리미터(mm) 또는 인치 단위로 보고할 수 있습니다. get_distance명령은 숫자 값을 밀리미터(mm) 또는 인치 단위로 보고합니다.

def main(): 
monitor_sensor("distance.get_distance")

모니터 콘솔에 거리 센서 값을 표시하려면 모니터 센서 명령을 드래그하거나 입력하세요. 그런 다음 표시할 센서 값에 대한 문자열 식별자로 매개변수를 설정합니다. 이 경우 문자열 식별자는 "distance.get_distance"입니다.

Screen_Shot_2021-10-07_at_4.52.59_PM.png

거리는 모니터 콘솔에 밀리미터(mm)와 인치로 표시됩니다.

발견된 개체 명령

Screen_Shot_2021-10-07_at_4.24.37_PM.png

거리 센서는 Distancefound object 명령을 사용하여 앞에 물체가 있는지 감지합니다. 거리 센서는 센서로부터 3000mm(~118인치) 이내의 물체나 표면을 감지할 수 있습니다. 발견된 개체 거리 명령은 부울 값을 True 또는 False으로 반환합니다.

def main():
monitor_sensor("distance.found_object")

명령의 값은 부울 값을 반환하고, 거리 센서가 물체에 가까우면 True 보고하고, 물체에 충분히 가깝지 않으면 False 를 보고합니다.

모니터 콘솔에 거리 센서 값을 표시하려면 모니터 센서 명령을 드래그하거나 입력하세요. 그런 다음 표시할 센서 값에 대한 문자열 식별자로 매개변수를 설정합니다. 이 경우 문자열 식별자는 "distance.found_object"입니다.

Screen_Shot_2021-10-07_at_5.12.14_PM.png

또는 거짓 보고되고 모니터 콘솔에 나타납니다.

레이저를 사용하면 센서의 시야가 매우 좁아지므로 항상 센서 바로 앞에서 감지할 수 있습니다. 


거리 센서의 일반적인 용도

VR 하향식

거리 센서는 VR 로봇 앞에 물체가 있는지 감지할 수 있습니다. 장애물을 피하는 데 사용할 수 있습니다.

Screen_Shot_2021-10-07_at_4.39.16_PM.png

거리 센서는 거리 센서 전면과 물체 전면 사이의 거리를 측정할 수 있습니다. 이는 벽에 계속 부딪히지 않고 미로를 완성하거나 물체를 피하는 데 도움이 될 수 있습니다.

def main():
while distance.get_distance(MM) > 50:
드라이브트레인.drive(FORWARD)
wait(5, MSEC)
드라이브트레인.stop()

위의 예시를 사용하려면 이 코드를 VEXcode VR에 복사하고 Wall Maze Playground에서 프로젝트를 실행하세요.


거리 센서 예시 프로젝트

Screen_Shot_2021-10-07_at_4.48.44_PM.png

이 예에서는 거리 센서가 물체를 찾으면 VR 로봇이 앞으로 나아갑니다. 물체를 감지하지 못하면 VR 로봇은 오른쪽으로 회전하여 물체를 계속 확인합니다.

참고: 이 예에서는 첫 번째 건물을 찾지만 테이블에서 떨어지지 않도록 개선이 필요합니다.

def main():
while True:
if distance.found_object():
드라이브트레인.drive(FORWARD)
else:
드라이브트레인.turn(RIGHT)
wait(5, MSEC)

위의 예시를 사용하려면 이 코드를 VEXcode VR에 복사하고 Castle Crasher 또는 Dynamic Castle Crasher Playground에서 프로젝트를 실행하세요.

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

Last Updated: