Kamera#

Įvadas#

„VEX AIR“ drone yra du vaizdo jutikliai, kurie atlieka integruotų kamerų funkciją – vienas priekyje, o kitas apačioje. Skrydžio metu jie gali fiksuoti vaizdus ir vaizdo įrašus. „VEXcode AIR“ programoje žodis „camera“ visada reiškia vieną iš šių vaizdo jutiklių. Pavyzdžiui, tokioje komandoje kaip drone.camera.start_recording(FORWARD_CAMERA), camera nurodo vaizdo jutiklius, o FORWARD_CAMERA pasirenka priekinį.

Norėdami perkelti vaizdo įrašus ir vaizdus iš „VEX AIR“ drono valdiklio, prijunkite valdiklį prie kompiuterio. Jis bus rodomas kaip didelės talpos atminties įrenginys (panašus į USB atmintinę), leidžiantis tiesiogiai kopijuoti failus. Baigę projektą, palaukite maždaug minutę, kol valdiklis baigs atsisiųsti visus vaizdus ar įrašus iš drono, prieš bandydami juos kopijuoti.

Žemiau pateikiamas visų galimų metodų sąrašas:

Veiksmai

Mutatoriai

Getteriai

Veiksmai#

start_recording#

start_recording pradeda įrašymą su nurodytu regėjimo jutikliu.

Informacijos apie įrašų peržiūrą ir atkūrimą rasite čia.

Naudojimas:

drone.camera.start_recording(camera)

Parametrai

Aprašymas

camera

Regėjimo jutiklis įrašymui su: DOWNWARD_CAMERA arba 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 sustabdo nurodyto regėjimo jutiklio įrašymą.

Informacijos apie įrašų peržiūrą ir atkūrimą rasite čia.

Naudojimas:

drone.camera.stop_recording(camera)

Parametrai

Aprašymas

camera

Regėjimo jutiklis sustabdo įrašymą, kai: DOWNWARD_CAMERA arba 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 nufotografuoja naudodamas nurodytą regėjimo jutiklį.

Informacijos apie užfiksuotų vaizdų peržiūrą ir atkūrimą rasite čia.

Naudojimas:

drone.camera.capture_image(camera)

Parametrai

Aprašymas

camera

Regėjimo jutiklis nuotraukai daryti su: DOWNWARD_CAMERA arba 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)

Mutatoriai#

show_camera#

show_camera nustato dabartinį ekrano režimą į nurodytą „Visuson Sensor“ tiekimą.

Naudojimas:

controller.screen.show_camera(camera)

Parametrai

Aprašymas

camera

Regėjimo jutiklio signalas, kurį reikia rodyti: DOWNWARD_CAMERA arba 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 paslepia nurodyto regėjimo jutiklio kanalą.

Naudojimas:

controller.screen.hide_camera()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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 įjungia arba išjungia perdengimo tinklelį. Tinklelis yra vaizdinis žymeklis, panašus į kryželį, kuris rodomas kameros vaizde, kad padėtų nukreipti arba lygiuoti objektus.

Pagal numatytuosius nustatymus tinklelio perdengimas projekto pradžioje nustatytas į True , tik žemyn nukreiptame regėjimo jutiklyje.

Usage:
controller.screen.set_overlay_reticle(state)

Parametrai

Aprašymas

state

Perdengiančio tinklelio būsena: True įjungia perdengiantį tinklelį. False išjungia perdengiantį tinklelį.

# 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 įjungia arba išjungia drono telemetrijos duomenų matomumą valdiklio ekrane. Telemetrija – tai tiesioginiai drono duomenys, kai jis skrenda arba vykdo projektą.

Pagal numatytuosius nustatymus telemetrijos duomenų perdanga projekto pradžioje nustatyta į True.

Usage:
controller.screen.set_overlay_telemetry(state)

Parametrai

Aprašymas

state

Telemetrijos duomenų būsena: True įjungia telemetrijos duomenų peržiūrą ekrane. False išjungia telemetrijos duomenų peržiūrą ekrane.

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

Getteriai#

is_recording#

is_recording grąžina loginę reikšmę, nurodančią, ar nurodytas regėjimo jutiklis šiuo metu įrašinėja.

  • True – Nurodytas regėjimo jutiklis įrašinėja.

  • False – Nurodytas regėjimo jutiklis neįrašo.

Naudojimas:

drone.camera.is_recording(camera)

Parametrai

Aprašymas

camera

Regėjimo jutiklis tikrina įrašymo būseną: DOWNWARD_CAMERA arba 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 grąžina laiką, kurį konkretus regėjimo jutiklis įrašinėjo, dešimtainiu (float) skaičiumi sekundėmis.

Naudojimas:

drone.camera.get_recording_time(camera)

Parametrai

Aprašymas

camera

Regėjimo jutiklis tikrina įrašymo laiką: DOWNWARD_CAMERA arba 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)