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
start_recording– Spelar in video från en synsensor.stop_recording– Stoppar inspelning från en synsensor.capture_image– Tar en bild från en synsensor.
Mutatorer
show_camera– Visar den valda synsensorn på VEX AIR-drönarkontrollen.hide_camera– Döljer visningssensorns flöde på kontrollenheten.set_overlay_reticle– Visar eller döljer det överliggande siktet.set_overlay_telemetry– Visar eller döljer telemetridata.
Hämtarna
is_recording– Returnerar om synsensorn spelar in.get_recording_time– Returnerar inspelningstiden.
Å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 |
|---|---|
|
Synsensorn att spela in med: |
# 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 |
|---|---|
|
Synsensorn för att stoppa inspelningen med: |
# 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 |
|---|---|
|
Synsensorn att ta en bild med: |
# 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 |
|---|---|
|
Visningssensorflödet som ska visa: |
# 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 |
|---|---|
|
Tillstånd för 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 |
|---|---|
|
Telemetridatans tillstånd: |
# 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 |
|---|---|
|
Synsensorn för att kontrollera inspelningsstatus för: |
# 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 |
|---|---|
|
Synsensorn för att kontrollera inspelningstiden för: |
# 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)