Kamera#

Introduktion#

VEX AIR-drönaren har två synsensorer som fungerar som inbyggda kameror – en på framsidan och en på undersidan. Dessa kan ta både bilder och video under flygning. I VEXcode AIR hänvisar ordet “kamera” alltid till en av dessa synsensorer. Till exempel, i ett kommando som drone.camera.start_recording(FORWARD_CAMERA), camera hänvisar till synsensorerna, och FORWARD_CAMERA väljer den framåtriktade.

För att överföra videoinspelningar och bilder från VEX AIR-drönarkontrollen, anslut kontrollenheten till din dator. Den kommer att visas som en masslagringsenhet (liknande ett USB-minne), så att du kan kopiera filer direkt. Efter att ha avslutat ett projekt, vänta ungefär en minut tills kontrollenheten har laddat ner bilder eller inspelningar från drönaren innan du försöker kopiera dem.

Nedan följer en lista över alla tillgängliga metoder:

Åtgärder

Mutatorer

Hämtarna

Åtgärder#

start_recording#

start_recording startar en inspelning med den angivna synsensorn.

För information om hur du visar och hämtar inspelningar, gå hit.

Användande:

drone.camera.start_recording(camera)

Parametrar

Beskrivning

camera

Synsensorn att spela in med: DOWNWARD_CAMERA eller 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 stoppar inspelningen av den angivna synsensorn.

För information om hur du visar och hämtar inspelningar, gå hit.

Användande:

drone.camera.stop_recording(camera)

Parametrar

Beskrivning

camera

Synsensorn för att stoppa inspelningen med: DOWNWARD_CAMERA eller 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 tar en bild med den angivna synsensorn.

För information om hur du visar och hämtar tagna bilder, gå hit.

Användande:

drone.camera.capture_image(camera)

Parametrar

Beskrivning

camera

Synsensorn att ta en bild med: DOWNWARD_CAMERA eller 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)

Mutatorer#

show_camera#

show_camera ställer in det aktuella skärmläget till den angivna Vision Sensor-flödet.

Användande:

controller.screen.show_camera(camera)

Parametrar

Beskrivning

camera

Visningssensorflödet som ska visa: DOWNWARD_CAMERA eller 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 döljer den angivna synsensorns flöde.

Användande:

controller.screen.hide_camera()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 aktiverar eller inaktiverar det överliggande riktmedlet. Ett riktmedel är en visuell markör, som ett hårkors, som visas i kamerans vy för att hjälpa till med sikte eller justera objekt.

Som standard är riktmedelsöverlagringen inställd på True i början av ett projekt, endast på den nedåtriktade synsensorn.

Usage:
controller.screen.set_overlay_reticle(state)

Parametrar

Beskrivning

state

Tillstånd för overlay-riktmedlet: True aktiverar overlay-riktmedlet. False inaktiverar overlay-riktmedlet.

# 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 aktiverar eller inaktiverar synligheten av drönarens telemetridata på kontrollenhetens skärm. Telemetri är livedata från drönaren medan den flyger eller kör ett projekt.

Som standard är telemetridataöverlagringen inställd på True i början av ett projekt.

Usage:
controller.screen.set_overlay_telemetry(state)

Parametrar

Beskrivning

state

Telemetridatans tillstånd: True aktiverar visning av telemetridata på skärmen. False inaktiverar visning av telemetridata på skärmen.

# 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 returnerar ett booleskt värde som anger om en specificerad synsensor för närvarande spelar in.

  • True – Den angivna synsensorn spelar in.

  • False – Den angivna synsensorn spelar inte in.

Användande:

drone.camera.is_recording(camera)

Parametrar

Beskrivning

camera

Synsensorn för att kontrollera inspelningsstatus för: DOWNWARD_CAMERA eller 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 returnerar den tid som en specifik synsensor har spelat in som ett decimaltal (float) i sekunder.

Användande:

drone.camera.get_recording_time(camera)

Parametrar

Beskrivning

camera

Synsensorn för att kontrollera inspelningstiden för: DOWNWARD_CAMERA eller 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)