Fotoaparát#

Zavedení#

Dron VEX AIR obsahuje dva obrazové senzory, které slouží jako palubní kamery – jeden na přední straně a jeden na spodní straně. Ty dokáží během letu zachytit jak snímky, tak video. V kódu VEXcode AIR se slovo „kamera“ vždy vztahuje k jednomu z těchto obrazových senzorů. Například v příkazu jako drone.camera.start_recording(FORWARD_CAMERA)se camera vztahuje na obrazové senzory a FORWARD_CAMERA vybírá ten, který směřuje dopředu.

Chcete-li přenést videozáznamy a obrázky z ovladače dronu VEX AIR, připojte ovladač k počítači. Zobrazí se jako velkokapacitní paměťové zařízení (podobné USB disku), což vám umožní přímo kopírovat soubory. Po ukončení projektu počkejte přibližně minutu, než ovladač dokončí stahování všech obrázků nebo nahrávek z dronu, než se je pokusíte zkopírovat.

Níže je uveden seznam všech dostupných metod:

Akce

Mutátory

Získávači

Akce#

start_recording#

start_recording spustí nahrávání se zadaným kamerovým senzorem.

Informace o prohlížení a načítání nahrávek naleznete zde.

Používání:

drone.camera.start_recording(camera)

Parametry

Popis

camera

Kamerový senzor pro nahrávání: DOWNWARD_CAMERA nebo 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 zastaví nahrávání zadaného kamerového senzoru.

Informace o prohlížení a načítání nahrávek naleznete zde.

Používání:

drone.camera.stop_recording(camera)

Parametry

Popis

camera

Kamerový senzor pro zastavení nahrávání pomocí: DOWNWARD_CAMERA nebo 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 pořídí snímek pomocí zadaného obrazového senzoru.

Informace o prohlížení a načítání pořízených snímků naleznete zde.

Používání:

drone.camera.capture_image(camera)

Parametry

Popis

camera

Kamerový senzor pro pořízení snímku: DOWNWARD_CAMERA nebo 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)

Mutátory#

show_camera#

show_camera nastaví aktuální režim obrazovky na zadaný signál z vizuální kamery.

Používání:

controller.screen.show_camera(camera)

Parametry

Popis

camera

Zobrazení obrazu z kamerového senzoru: DOWNWARD_CAMERA nebo 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 skryje obraz ze zadaného kamerového senzoru.

Používání:

controller.screen.hide_camera()

Parametry

Popis

Tato metoda nemá žádné parametry.

# 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 povoluje nebo zakazuje překrývající se zaměřovací kříž. Zaměřovací kříž je vizuální značka, podobně jako zaměřovací kříž, která se zobrazuje v zorném poli kamery a pomáhá s mířením nebo zarovnáním objektů.

Ve výchozím nastavení je překrytí osnovy na začátku projektu nastaveno na True , pouze na dolním senzoru Vision Sensor.

Usage:
controller.screen.set_overlay_reticle(state)

Parametry

Popis

state

Stav překryvné osnovy: True překryvnou osnovu povolí. False překryvnou osnovu zakáže.

# 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 povoluje nebo zakazuje viditelnost telemetrických dat dronu na obrazovce ovladače. Telemetrie jsou živá data z dronu během letu nebo spouštění projektu.

Ve výchozím nastavení je překrytí telemetrických dat na začátku projektu nastaveno na True.

Usage:
controller.screen.set_overlay_telemetry(state)

Parametry

Popis

state

Stav telemetrických dat: True povoluje zobrazení telemetrických dat na obrazovce. False zakazuje zobrazení telemetrických dat na obrazovce.

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

Gettery#

is_recording#

is_recording vrací booleovskou hodnotu označující, zda zadaný kamerový senzor aktuálně nahrává.

  • True – Zadaný kamerový senzor nahrává.

  • False – Zadaný kamerový senzor nezaznamenává.

Používání:

drone.camera.is_recording(camera)

Parametry

Popis

camera

Kamerový senzor pro kontrolu stavu nahrávání: DOWNWARD_CAMERA nebo 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 vrací dobu, po kterou daný kamerový senzor nahrával, jako desetinné číslo (float) v sekundách.

Používání:

drone.camera.get_recording_time(camera)

Parametry

Popis

camera

Kamerový senzor pro kontrolu doby záznamu: DOWNWARD_CAMERA nebo 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)