Κάμερα#
Εισαγωγή#
Το VEX AIR Drone περιλαμβάνει δύο αισθητήρες όρασης που χρησιμεύουν ως ενσωματωμένες κάμερες—μία στο μπροστινό μέρος και μία στο κάτω μέρος. Αυτοί μπορούν να καταγράφουν εικόνες και βίντεο κατά τη διάρκεια της πτήσης. Στο VEXcode AIR, η λέξη “κάμερα” αναφέρεται πάντα σε έναν από αυτούς τους αισθητήρες όρασης. Για παράδειγμα, σε μια εντολή όπως drone.camera.start_recording(FORWARD_CAMERA), camera αναφέρεται στους αισθητήρες όρασης και FORWARD_CAMERA επιλέγει αυτόν που είναι στραμμένος προς τα εμπρός.
Για να μεταφέρετε εγγραφές βίντεο και εικόνες από το χειριστήριο VEX AIR Drone, συνδέστε το χειριστήριο στον υπολογιστή σας. Θα εμφανιστεί ως συσκευή μαζικής αποθήκευσης (παρόμοια με μια μονάδα USB), επιτρέποντάς σας να αντιγράφετε αρχεία απευθείας. Αφού ολοκληρώσετε ένα έργο, περιμένετε περίπου ένα λεπτό για να ολοκληρώσει το χειριστήριο τη λήψη οποιωνδήποτε εικόνων ή εγγραφών από το drone πριν επιχειρήσετε να τα αντιγράψετε.
Παρακάτω είναι μια λίστα με όλες τις διαθέσιμες μεθόδους:
Ενέργειες
start_recording– Εγγράφει βίντεο από έναν αισθητήρα όρασης.stop_recording– Διακόπτει την εγγραφή από έναν αισθητήρα όρασης.capture_image– Καταγράφει μια εικόνα από έναν αισθητήρα όρασης.
Μεταλλαγμένοι
show_camera– Εμφανίζει τον επιλεγμένο αισθητήρα όρασης στο χειριστήριο VEX AIR Drone.hide_camera– Αποκρύπτει την τροφοδοσία του αισθητήρα όρασης στον ελεγκτή.set_overlay_reticle– Εμφανίζει ή αποκρύπτει το πλέγμα επικάλυψης.set_overlay_telemetry– Εμφανίζει ή αποκρύπτει δεδομένα τηλεμετρίας.
Αποκτητές
is_recording– Επιστρέφει εάν ο αισθητήρας όρασης καταγράφει.get_recording_time– Επιστρέφει τον χρόνο που αφιερώθηκε στην ηχογράφηση.
Ενέργειες#
start_recording#
start_recording ξεκινά μια εγγραφή με τον καθορισμένο αισθητήρα όρασης.
Για πληροφορίες σχετικά με την προβολή και ανάκτηση εγγραφών, μεταβείτε εδώ.
Χρήση:
drone.camera.start_recording(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 σταματά την καταγραφή του καθορισμένου αισθητήρα όρασης.
Για πληροφορίες σχετικά με την προβολή και ανάκτηση εγγραφών, μεταβείτε εδώ.
Χρήση:
drone.camera.stop_recording(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 τραβάει μια φωτογραφία με τον καθορισμένο αισθητήρα όρασης.
Για πληροφορίες σχετικά με την προβολή και ανάκτηση εικόνων που έχουν ληφθεί, μεταβείτε εδώ.
Χρήση:
drone.camera.capture_image(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)
Μεταλλάκτες#
show_camera#
show_camera ορίζει την τρέχουσα λειτουργία οθόνης στην καθορισμένη τροφοδοσία αισθητήρα όρασης.
Χρήση:
controller.screen.show_camera(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 αποκρύπτει την καθορισμένη τροφοδοσία του αισθητήρα όρασης.
Χρήση:
controller.screen.hide_camera()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# 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 ενεργοποιεί ή απενεργοποιεί το σταυρόνημα επικάλυψης. Ένα σταυρόνημα είναι ένας οπτικός δείκτης, όπως ένα σταυρόνημα, που εμφανίζεται στην προβολή της κάμερας για να βοηθήσει στη στόχευση ή την ευθυγράμμιση αντικειμένων.
Από προεπιλογή, η επικάλυψη του πλέγματος έχει οριστεί σε True στην αρχή ενός έργου, μόνο στον καθοδικό αισθητήρα όρασης.
Usage:
controller.screen.set_overlay_reticle(state)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατάσταση του σταυρονήματος επικάλυψης: |
# 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 ενεργοποιεί ή απενεργοποιεί την ορατότητα των δεδομένων τηλεμετρίας του drone στην οθόνη του χειριστηρίου. Η τηλεμετρία είναι δεδομένα σε πραγματικό χρόνο από το drone ενώ πετάει ή εκτελεί ένα έργο.
Από προεπιλογή, η επικάλυψη δεδομένων τηλεμετρίας έχει οριστεί σε True στην αρχή ενός έργου.
Usage:
controller.screen.set_overlay_telemetry(state)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατάσταση των δεδομένων τηλεμετρίας: |
# 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)
Αποκτητές#
is_recording#
Η συνάρτηση is_recording επιστρέφει μια λογική τιμή που υποδεικνύει εάν ένας καθορισμένος αισθητήρας όρασης καταγράφει αυτήν τη στιγμή.
True– Ο καθορισμένος αισθητήρας όρασης καταγράφει.False– Ο καθορισμένος αισθητήρας όρασης δεν καταγράφει.
Χρήση:
drone.camera.is_recording(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 επιστρέφει το χρονικό διάστημα που ένας συγκεκριμένος αισθητήρας όρασης έχει καταγράψει ως δεκαδικό (float) σε δευτερόλεπτα.
Χρήση:
drone.camera.get_recording_time(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)