Korzystanie z czujnika odległości w VEXcode VR

Czujnik odległości w robocie VR raportuje odległość pomiędzy robotem VR a najbliższym obiektem. Czujnik oblicza odległość na podstawie czasu potrzebnego, aby światło lasera odbiło się od obiektu i wróciło do czujnika.


Czujnik odległości w robocie VR

oko z przodu w dół

Czujnik odległości to czujnik, który raportuje odległość pomiędzy robotem VR a najbliższym obiektem stałym.

VR z góry na dół

Czujnik odległości wykorzystuje do pomiaru dźwięku te same zasady, co urządzenia sonarowe. Wysyła niewielki impuls światła laserowego za pomocą emitera po jednej stronie czujnika, a następnie mnoży czas potrzebny na odbicie światła z powrotem do odbiornika po drugiej stronie czujnika. Czujnik oblicza odległość na podstawie czasu trwania podróży w obie strony impulsu. Następnie czujnik odległości raportuje robotowi VR, jak daleko znajduje się najbliższy obiekt.

Screen_Shot_2021-12-10_at_2.45.39_PM.png

Szerokość zasięgu widzenia czujników odległości zmienia się w miarę oddalania się od przodu robota VR:

  • Czujnik może wykrywać obiekty w polu widzenia 10 stopni, szukając obiektów znajdujących się w odległości mniejszej niż 1000 milimetrów (~39 cali).
  • Czujnik może wykrywać obiekty w polu widzenia 5 stopni, szukając obiektów w odległości od 1000 milimetrów (~39 cali) do 2000 milimetrów (~78 cali).
  • Czujnik może wykrywać obiekty w polu widzenia o wartości 2 stopni podczas wyszukiwania obiektów znajdujących się w odległości większej niż 2000 milimetrów (~78 cali).

Typowe zastosowania czujnika odległości

VR z góry na dół

Czujnik odległości może wykryć, czy przed robotem VR znajduje się obiekt. Można to wykorzystać do ominięcia przeszkody.

Bloki VEXcode VR Plac zabaw w labiryncie ściennym
Przykład odległości z przodu.png odległość placu zabaw 1.jpeg
VEXcode VR Python
def main():
, gdy nie jest to front_distance.get_distance(MM) < 50:
drivetrain.drive(PRZÓD)
wait(20, MSEC)
drivetrain.stop()

Czujnik odległości może mierzyć odległość pomiędzy przodem czujnika odległości a przodem obiektu. Może to być pomocne w ukończeniu labiryntu bez ciągłego wpadania na ściany lub unikania obiektów.

Bloki VEXcode VR Dynamiczny plac zabaw Castle Crasher
Odległość na zawsze przykład.png

odległość placu zabaw 2.jpeg

VEXcode VR Python
def main():
while True:
if front_distance.found_object():
drivetrain.drive(PRZÓD)
else:
drivetrain.turn(RIGHT)
wait(20,MSEC)

W tym przykładzie robot VR pojedzie do przodu, jeśli czujnik odległości znajdzie obiekt. Jeśli nie wykryje obiektu, Robot VR skręci w prawo i będzie szukał obiektu.

Uwaga: Ten przykład znajdzie pierwszy budynek, ale wymaga ulepszeń, aby uniknąć upadku ze stołu.


Korzystanie z czujnika odległości z blokami VEXcode VR

Czujnik odległości.png

Bloki stosowane z czujnikiem odległości znajdziesz w kategorii Sensing.

<Odległość znalezionego obiektu> Blok

Odległość znalezionego obiektu block.png

Czujnik odległości wykrywa, czy przed nim znajduje się obiekt, korzystając z bloku <Odległość znalezionego obiektu>. Czujnik odległości może wykryć obiekt lub powierzchnię w odległości 3000 mm (~118 cali) od czujnika.

Poczekaj, aż znaleziono odległość obiektu.png

Blok <Odległość znalezionego obiektu>jest blokiem logicznym, który zwraca warunek jako prawda lub fałsz i mieści się w dowolnych blokach z sześciokątnymi (sześciościennymi) spacjami dla innych bloków.

Aby uzyskać więcej informacji na temat bloków boolowskich, zobacz ten artykuł.

Znaleziono odległość obiektu.png

Wartość bloku <Distance found object> jest blokiem logicznym, który zgłasza wartość true, gdy czujnik odległości znajduje się blisko obiektu, i zgłasza wartość false, gdy nie jest wystarczająco blisko obiektu.

Prawda lub Fałsz zostanie zgłoszony i wyświetlony w Konsoli Monitora. 

Aby dowiedzieć się więcej o konsoli monitora, zapoznaj się z tym artykułem.

(Odległość od) bloku

Lista rozwijana odległości.png

Korzystając z bloku (Odległość od), czujnik odległości może zgłosić odległość do najbliższego obiektu w milimetrach (mm) lub calach.

Odległość większa niż.png

Blok (Odległość od) podaje wartości liczbowe i mieści się w dowolnych blokach z owalnymi spacjami.

Więcej informacji na temat blokad reporterów w tym artykule

Odległość z przodu w mm lub calach.png

Wartość bloku (Odległość od) w milimetrach (mm) lub calach można wyświetlić na konsoli monitora w VEXcode VR. 

Aby dowiedzieć się więcej o konsoli monitora, zapoznaj się z tym artykułem.


Korzystanie z czujnika odległości w VEXcode VR Python

Screen_Shot_2021-11-11_at_9.49.14_AM.png

Aby rozpocząć programowanie czujnika odległości w Pythonie, musisz najpierw otworzyć projekt tekstowy VEXcode VR. Aby uzyskać więcej informacji, ten artykuł.

Screen_Shot_2021-12-10_at_2.26.12_PM.png

Następnie znajdź kategorię Wykrywanie w Przyborniku i znajdź polecenia found_object i get_distance. Są to funkcje, które zgłaszają wartość logiczną lub numeryczną dotyczącą czujnika.

Screen_Shot_2021-12-10_at_2.38.31_PM.png

Aby dodać polecenie do projektu, możesz przeciągnąć je z Przybornika lub wpisać je w obszarze roboczym, korzystając z funkcji Autouzupełniania.

Aby dowiedzieć się więcej o autouzupełnianiu w VEXcode VR z Pythonem, ten artykuł.

def main(): 
, gdy nie jest to front_distance.get_distance(MM) < 50:
drivetrain.drive(PRZÓD)
wait(20, MSEC)
drivetrain.stop()

Pętli while można używać z czujnikami w robocie, jeśli chcesz, aby robot wykonał np. jazdę, aż czujnik odległości znajdzie się w odległości 50 mm lub mniej od ściany, a następnie zatrzyma się lub skręci.

W tym projekcie robot będzie jechał do przodu, gdy czujnik odległości zgłosi wartość większą niż 50 mm, i zatrzyma się, gdy czujnik odległości znajdzie się w odległości mniejszej niż 50 mm od ściany.

def main():
monitor_sensor("front_distance.get_distance", "front_distance.found_object")

Wartość poleceńget_distance ifound_object można wyświetlić w konsoli monitora w VEXcode VR. Aby dowiedzieć się więcej na temat korzystania z konsoli monitora w VEXcode VR Python, ten artykuł.

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

Last Updated: