Kamera#
Wstęp#
Dron VEX AIR jest wyposażony w dwa czujniki wizyjne, które pełnią funkcję kamer pokładowych – jeden z przodu i jeden na dole. Mogą one rejestrować zarówno obrazy, jak i filmy podczas lotu. W VEXcode AIR słowo „kamera” zawsze odnosi się do jednego z tych czujników wizyjnych. Na przykład, w poleceniu takim jak drone.camera.start_recording(FORWARD_CAMERA), camera odnosi się do czujników wizyjnych, a FORWARD_CAMERA wybiera czujnik skierowany do przodu.
Aby przesłać nagrania wideo i obrazy z kontrolera drona VEX AIR, podłącz kontroler do komputera. Będzie on widoczny jako urządzenie pamięci masowej (podobne do dysku USB), co umożliwi bezpośrednie kopiowanie plików. Po zakończeniu projektu odczekaj około minuty, aż kontroler zakończy pobieranie obrazów lub nagrań z drona, zanim spróbujesz je skopiować.
Poniżej znajduje się lista wszystkich dostępnych metod:
Akcje
start_recording– Nagrywa wideo z czujnika wizyjnego.stop_recording– Zatrzymuje nagrywanie z czujnika wizyjnego.capture_image– Przechwytuje obraz z czujnika wizyjnego.
Mutatory
show_camera– Pokazuje wybrany czujnik wizyjny na kontrolerze drona VEX AIR.hide_camera– Ukrywa sygnał czujnika wizji na kontrolerze.set_overlay_reticle– Pokazuje lub ukrywa nałożoną siatkę celowniczą.set_overlay_telemetry– Pokazuje lub ukrywa dane telemetryczne.
Getterzy
is_recording– Zwraca informację, czy czujnik wizyjny nagrywa.get_recording_time– Zwraca czas spędzony na nagrywaniu.
Akcje#
start_recording#
start_recording rozpoczyna nagrywanie przy użyciu określonego czujnika wizyjnego.
Aby uzyskać informacje na temat przeglądania i pobierania nagrań, przejdź tutaj.
Stosowanie:
drone.camera.start_recording(camera)
Parametry |
Opis |
|---|---|
|
Czujnik wizyjny do nagrywania za pomocą: |
# Press button 7 to end recording
def end_recording():
drone.camera.stop_recording(FORWARD_CAMERA)
drone.land()
controller.button7.pressed(end_recording)
# Record a video as you fly around
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
drone.camera.start_recording(FORWARD_CAMERA)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
stop_recording#
stop_recording zatrzymuje nagrywanie określonego czujnika wizyjnego.
Aby uzyskać informacje na temat przeglądania i pobierania nagrań, przejdź tutaj.
Stosowanie:
drone.camera.stop_recording(camera)
Parametry |
Opis |
|---|---|
|
Czujnik wizyjny zatrzymuje nagrywanie za pomocą: |
# Press button 7 to end recording
def end_recording():
drone.camera.stop_recording(FORWARD_CAMERA)
drone.land()
controller.button7.pressed(end_recording)
# Record a video as you fly around
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
drone.camera.start_recording(FORWARD_CAMERA)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
capture_image#
capture_image wykonuje zdjęcie za pomocą określonego czujnika wizyjnego.
Aby uzyskać informacje na temat przeglądania i pobierania przechwyconych obrazów, przejdź tutaj.
Stosowanie:
drone.camera.capture_image(camera)
Parametry |
Opis |
|---|---|
|
Czujnik wizyjny umożliwiający wykonanie zdjęcia za pomocą: |
# Press button 7 to take pictures
def take_picture():
drone.camera.capture_image(FORWARD_CAMERA)
controller.button7.pressed(take_picture)
# Take pictures while you control the drone
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
Mutatory#
show_camera#
show_camera ustawia bieżący tryb ekranu na określony sygnał czujnika wizyjnego.
Stosowanie:
controller.screen.show_camera(camera)
Parametry |
Opis |
|---|---|
|
Wyświetlany sygnał czujnika wizyjnego: |
# Switch camera feeds after 3 seconds
controller.screen.show_camera(DOWNWARD_CAMERA)
wait(3, SECONDS)
controller.screen.show_camera(FORWARD_CAMERA)
hide_camera#
hide_camera ukrywa kanał określonego czujnika wizyjnego.
Stosowanie:
controller.screen.hide_camera()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Hide camera feed after 3 seconds
controller.screen.show_camera(FORWARD_CAMERA)
wait(3, SECONDS)
controller.screen.hide_camera()
set_overlay_reticle#
set_overlay_reticle włącza lub wyłącza nałożoną siatkę celowniczą. Siatka celownicza to wizualny znacznik, podobny do celownika, który pojawia się w polu widzenia kamery, aby ułatwić celowanie lub ustawianie obiektów.
Domyślnie nakładka siatki celowniczej jest ustawiona na True na początku projektu, tylko na skierowanym w dół czujniku wizyjnym.
Usage:
controller.screen.set_overlay_reticle(state)
Parametry |
Opis |
|---|---|
|
Stan nakładanej siatki celowniczej: |
# Hide the reticle when not aligning to a landing area
controller.screen.show_camera(DOWNWARD_CAMERA)
drone.take_off(climb_to=500)
controller.screen.set_overlay_reticle(False)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
set_overlay_telemetry#
set_overlay_telemetry włącza lub wyłącza widoczność danych telemetrycznych drona na ekranie kontrolera. Dane telemetryczne to dane na żywo z drona podczas lotu lub realizacji projektu.
Domyślnie na początku projektu nakładka danych telemetrycznych jest ustawiona na True.
Usage:
controller.screen.set_overlay_telemetry(state)
Parametry |
Opis |
|---|---|
|
Stan danych telemetrycznych: |
# Clear the camera video for better visibility
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
controller.screen.set_overlay_telemetry(False)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
Getters#
is_recording#
is_recording zwraca wartość logiczną wskazującą, czy określony czujnik wizyjny aktualnie nagrywa.
True– określony czujnik wizyjny nagrywa.False– Określony czujnik wizyjny nie nagrywa.
Stosowanie:
drone.camera.is_recording(camera)
Parametry |
Opis |
|---|---|
|
Czujnik wizyjny sprawdzający stan nagrywania: |
# Use button 7 to start and stop recording
def toggle_recording():
if drone.camera.is_recording(FORWARD_CAMERA):
drone.camera.stop_recording(FORWARD_CAMERA)
else:
drone.camera.start_recording(FORWARD_CAMERA)
controller.button7.pressed(toggle_recording)
# Make video recordings while you control the drone
controller.screen.show_camera(FORWARD_CAMERA)
drone.take_off(climb_to=500)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
get_recording_time#
get_recording_time zwraca ilość czasu nagrywania określonego czujnika wizyjnego w postaci wartości dziesiętnej (float) w sekundach.
Stosowanie:
drone.camera.get_recording_time(camera)
Parametry |
Opis |
|---|---|
|
Czujnik wizyjny sprawdzający czas nagrywania: |
# Record a video for 10 seconds
controller.screen.show_camera(FORWARD_CAMERA)
drone.camera.start_recording(FORWARD_CAMERA)
drone.take_off(climb_to=500)
while not (drone.camera.get_recording_time(FORWARD_CAMERA)) >= 10:
wait(5, MSEC)
drone.camera.stop_recording(FORWARD_CAMERA)