Czujnik odległości#
Wstęp#
Czujnik odległości potrafi wykryć, czy obiekt znajduje się przed czujnikiem i określić jego odległość. Może również określić prędkość względną wykrytego obiektu i oszacować, czy jest on mały, średni czy duży.
Czujnik odległości działa w zakresie od 20 mm do 2000 mm.
Poniżej 200 mm dokładność wynosi około ±15 mm. Powyżej 200 mm dokładność poprawia się do około 5%.
Czujnik odległości wykorzystuje laser klasy 1. Detekcja odbywa się na wprost i jest bezpieczna w klasach szkolnych.

Ta strona używa distance_sensor jako przykładowej nazwy czujnika odległości. W razie potrzeby zastąp ją własną, skonfigurowaną nazwą.
Poniżej znajduje się lista dostępnych metod:
object_distance— Zwraca odległość między czujnikiem odległości a najbliższym wykrytym obiektem.object_velocity— Zwraca informację o tym, jak szybko wykryty obiekt porusza się w kierunku czujnika odległości lub od niego.object_size— Zwraca szacowany rozmiar wykrytego obiektu.is_object_detected— Zwraca informację, czy czujnik odległości aktualnie wykrył obiekt.changed— Rejestruje funkcję, która ma zostać uruchomiona za każdym razem, gdy zmieni się wartość czujnika odległości.
Konstruktor — ręczna inicjalizacja czujnika odległości.
Distance— Tworzy czujnik odległości.
odległość_obiektu#
object_distance zwraca odległość między czujnikiem odległości a najbliższym wykrytym obiektem jako liczbę dziesiętną (float).
Usage:
distance_sensor.object_distance(units)
Parametry |
Opis |
|---|---|
|
Opcjonalnie. Jednostka odległości: |
# Drive forward until the object is within 50 mm away
drivetrain.drive(FORWARD)
while not distance_sensor.object_distance(MM) < 50:
pass
drivetrain.stop()
prędkość_obiektu#
object_velocity zwraca względną prędkość wykrytego obiektu jako wartość dziesiętną (float) w m/s (metrach na sekundę).
Prędkość pokazuje, jak szybko obiekt zbliża się do czujnika odległości lub od niego odsuwa. Wartość bliska 0 oznacza, że obiekt nie porusza się znacząco względem czujnika.
Usage:
distance_sensor.object_velocity()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
rozmiar_obiektu#
object_size zwraca szacowany rozmiar obiektu wykrytego przez czujnik odległości.
Czujnik odległości szacuje rozmiar obiektu na podstawie tego, jaka część pola widzenia czujnika zajmuje wykryty obiekt.
ObjectSizeType(0, “NONE”)— Nie wykryto żadnego obiektu.ObjectSizeType(1, “SMALL”)— Wykryto mały obiekt.ObjectSizeType(2, “MEDIUM”)— Wykryto obiekt średniej wielkości.ObjectSizeType(3, “LARGE”)— Wykryto duży obiekt.
Usage:
distance_sensor.object_size()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
wykryto_obiekt#
is_object_detected zwraca informację, czy czujnik odległości aktualnie wykrył obiekt.
True— Czujnik odległości wykrył obiekt.False— Czujnik odległości nie wykrył obiektu.
Usage:
distance_sensor.is_object_detected()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Drive forward until the object is within 50 mm away
while True:
drivetrain.drive(FORWARD)
if distance_sensor.is_object_detected():
if distance_sensor.object_distance(MM) < 50:
drivetrain.stop()
break
zmieniony#
changed rejestruje funkcję, która ma zostać wywołana za każdym razem, gdy zmieni się wartość czujnika odległości.
Usage:
distance_sensor.changed(callback, arg)
Parametry |
Opis |
|---|---|
|
Wcześniej zdefiniowana funkcja, która jest wykonywana, gdy zmienia się wartość czujnika odległości. |
|
Opcjonalnie. Krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w Używanie funkcji z parametrami. |
def my_function():
brain.screen.print("Distance changed")
# Call my_function whenever distance_sensor's value changes
distance_sensor.changed(my_function)
Konstruktor#
Konstruktory służą do ręcznego tworzenia obiektów o odległości Distance , na przykład podczas konfigurowania czujnika odległości poza programem VEXcode.
Distance#
Distance tworzy obiekt czujnika odległości.
Usage:
Distance(smartport)
Parametr |
Opis |
|---|---|
|
Inteligentny port, do którego podłączony jest czujnik odległości, zapisany jako |
# Create a Distance Sensor in Port 10
distance_sensor = Distance(Ports.PORT10)