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
start_recording– Įrašo vaizdo įrašą iš regėjimo jutiklio.stop_recording– Sustabdo įrašymą iš regėjimo jutiklio.capture_image– Užfiksuoja vaizdą iš regėjimo jutiklio.
Mutatoriai
show_camera– Rodo pasirinktą vaizdo jutiklį VEX AIR drono valdiklyje.hide_camera– Paslepia vaizdo jutiklio signalą valdiklyje.set_overlay_reticle– Rodo arba paslepia perdengiantį tinklelį.set_overlay_telemetry– Rodo arba paslepia telemetrijos duomenis.
Getteriai
is_recording– Grąžina, ar regėjimo jutiklis įrašinėja.get_recording_time– Grąžina įrašymo laiką.
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 |
|---|---|
|
Regėjimo jutiklis įrašymui su: |
# 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 |
|---|---|
|
Regėjimo jutiklis sustabdo įrašymą, kai: |
# 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 |
|---|---|
|
Regėjimo jutiklis nuotraukai daryti su: |
# 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 |
|---|---|
|
Regėjimo jutiklio signalas, kurį reikia rodyti: |
# 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 |
|---|---|
|
Perdengiančio tinklelio būsena: |
# 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 |
|---|---|
|
Telemetrijos duomenų būsena: |
# 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 |
|---|---|
|
Regėjimo jutiklis tikrina įrašymo būseną: |
# 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 |
|---|---|
|
Regėjimo jutiklis tikrina įrašymo laiką: |
# 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)