آلة تصوير#

مقدمة#

تتضمن طائرة VEX AIR بدون طيار مستشعري رؤية يعملان ككاميرات مدمجة، أحدهما في الأمام والآخر في الأسفل. يمكن لهذين المستشعرين التقاط الصور والفيديو أثناء الطيران. في VEXcode AIR، تشير كلمة “كاميرا” دائمًا إلى أحد مستشعري الرؤية هذين. على سبيل المثال، في أمر مثل drone.camera.start_recording(FORWARD_CAMERA)، يشير camera إلى مستشعري الرؤية، بينما يحدد FORWARD_CAMERA المستشعر الأمامي.

لنقل تسجيلات الفيديو والصور من وحدة تحكم طائرة VEX AIR بدون طيار، قم بتوصيلها بجهاز الكمبيوتر. ستظهر كوحدة تخزين خارجية (شبيهة بذاكرة USB)، مما يسمح لك بنسخ الملفات مباشرةً. بعد الانتهاء من أي مشروع، انتظر دقيقة تقريبًا حتى تنتهي وحدة التحكم من تنزيل جميع الصور والتسجيلات من الطائرة بدون طيار قبل محاولة نسخها.

فيما يلي قائمة بجميع الطرق المتاحة:

الإجراءات

  • start_recording – يسجل الفيديو من مستشعر الرؤية.

  • stop_recording – إيقاف التسجيل من مستشعر الرؤية.

  • capture_image – يلتقط صورة من مستشعر الرؤية.

المُحَوِّرون

  • show_camera – يعرض مستشعر الرؤية المحدد على وحدة التحكم في الطائرة بدون طيار VEX AIR.

  • hide_camera – إخفاء تغذية مستشعر الرؤية على وحدة التحكم.

  • set_overlay_reticle – إظهار أو إخفاء شبكة التراكب.

  • set_overlay_telemetry – إظهار أو إخفاء بيانات القياس عن بعد.

المُنجزون

  • is_recording – تُرجع ما إذا كان مستشعر الرؤية يقوم بالتسجيل.

  • get_recording_time – تُرجع الوقت الذي تم قضاؤه في التسجيل.

الإجراءات#

start_recording#

start_recording يبدأ التسجيل باستخدام مستشعر الرؤية المحدد.

للحصول على معلومات حول عرض واسترجاع التسجيلات، انتقل إلى هنا.

طريقة الاستخدام:

drone.camera.start_recording(camera)

حدود

وصف

camera

مستشعر الرؤية للتسجيل باستخدام: DOWNWARD_CAMERA أو 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 يوقف تسجيل مستشعر الرؤية المحدد.

للحصول على معلومات حول عرض واسترجاع التسجيلات، انتقل إلى هنا.

طريقة الاستخدام:

drone.camera.stop_recording(camera)

حدود

وصف

camera

مستشعر الرؤية لإيقاف التسجيل باستخدام: DOWNWARD_CAMERA أو 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 يلتقط صورة باستخدام مستشعر الرؤية المحدد.

للحصول على معلومات حول عرض واسترجاع الصور الملتقطة، انتقل إلى هنا.

طريقة الاستخدام:

drone.camera.capture_image(camera)

حدود

وصف

camera

مستشعر الرؤية لالتقاط صورة باستخدام: DOWNWARD_CAMERA أو 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)

المتحولون#

show_camera#

show_camera يضبط وضع الشاشة الحالي على تغذية مستشعر الرؤية المحددة.

طريقة الاستخدام:

controller.screen.show_camera(camera)

حدود

وصف

camera

بيانات مستشعر الرؤية للعرض: DOWNWARD_CAMERA أو 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 يخفي تغذية مستشعر الرؤية المحدد.

طريقة الاستخدام:

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)

حدود

وصف

state

حالة شبكة التراكب: True يُفعّل شبكة التراكب، False يُعطّل شبكة التراكب.

# 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 أو يُعطّل عرض بيانات القياس عن بُعد الخاصة بالطائرة المسيّرة على شاشة وحدة التحكم. بيانات القياس عن بُعد هي بيانات مباشرة من الطائرة المسيّرة أثناء تحليقها أو تشغيلها لمشروع ما.

بشكل افتراضي، يتم ضبط تراكب بيانات القياس عن بعد على True في بداية المشروع.

Usage:
controller.screen.set_overlay_telemetry(state)

حدود

وصف

state

حالة بيانات القياس عن بُعد: True يُمكّن عرض بيانات القياس عن بُعد على الشاشة. False يُعطّل عرض بيانات القياس عن بُعد على الشاشة.

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

حدود

وصف

camera

مستشعر الرؤية للتحقق من حالة التسجيل لـ: DOWNWARD_CAMERA أو 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 تُرجع مقدار الوقت الذي قام فيه مستشعر الرؤية المحدد بالتسجيل كعدد عشري (float) بالثواني.

طريقة الاستخدام:

drone.camera.get_recording_time(camera)

حدود

وصف

camera

مستشعر الرؤية للتحقق من وقت التسجيل لـ: DOWNWARD_CAMERA أو 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)