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

Mutatory

Getterzy

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

camera

Czujnik wizyjny do nagrywania za pomocą: DOWNWARD_CAMERA lub FORWARD_CAMERA.

# 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

camera

Czujnik wizyjny zatrzymuje nagrywanie za pomocą: DOWNWARD_CAMERA lub FORWARD_CAMERA.

# 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

camera

Czujnik wizyjny umożliwiający wykonanie zdjęcia za pomocą: DOWNWARD_CAMERA lub FORWARD_CAMERA.

# 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

camera

Wyświetlany sygnał czujnika wizyjnego: DOWNWARD_CAMERA lub FORWARD_CAMERA.

# 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

state

Stan nakładanej siatki celowniczej: True włącza nakładaną siatkę celowniczą. False wyłącza nakładaną siatkę celowniczą.

# 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

state

Stan danych telemetrycznych: True włącza przeglądanie danych telemetrycznych na ekranie. False wyłącza przeglądanie danych telemetrycznych na ekranie.

# 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

camera

Czujnik wizyjny sprawdzający stan nagrywania: DOWNWARD_CAMERA lub FORWARD_CAMERA.

# 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

camera

Czujnik wizyjny sprawdzający czas nagrywania: DOWNWARD_CAMERA lub FORWARD_CAMERA.

# 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)