وحدة كاميرا المغلاق الشامل

وحدة كاميرا المغلاق الشامل هي مستشعر أحادي اللون يلتقط الحركة السريعة دون عيوب المغلاق المتدحرج. مناسبة للتتبع عالي السرعة والطائرات المسيّرة ولقطات الرؤية الآلية. تأتي الوحدة بمستشعر MT9V024 أو MT9V034.

Global Shutter Camera Module

للاطلاع على ورقة البيانات الكاملة والصور ومعلومات الطلب، راجع صفحة منتج وحدة كاميرا المغلاق الشامل.

أبرز الميزات

  • مستشعر أحادي اللون بمغلاق شامل بدقة 752x480

  • 80 FPS عند QVGA، و 200 FPS عند QQVGA، و 400 FPS عند QQQVGA

  • نطاق ديناميكي 55 dB

  • متوافقة مع جميع اللوحات الأساسية المعيارية لـ OpenMV Cam

الاستخدام

بث فيديو بتدرج الرمادي بدقة 320x240 (QVGA):

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QVGA)
clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())

يفعّل المستشعر تلقائياً تجميع البكسلات عند الدقات المنخفضة — مضاعفة 2x عند QVGA (320x240) أو أصغر، و 4x عند QQVGA (160x120) أو أصغر — مما يقلّص زمن القراءة بالتناسب ويرفع معدل الإطارات. لكن الكاميرا لا يزال عليها تجميع الضوء طوال نافذة التعريض المطلوبة، لذا اقرن خفض حجم الإطار بسقف تعريض أقصر عبر csi.CSI.auto_exposure لتبلغ المعدلات الأعلى فعلياً (ستكون الصورة أكثر قتامة — خطّط لإضاءة إضافية):

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)  # let auto-exposure settle
csi0.auto_exposure(True, exposure_us=5000)  # cap exposure
clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())

يحاذي الوضع المُشغَّل تجميع البكسل تماماً مع كل استدعاء csi.CSI.snapshot، بحيث تتزامن الالتقاطات مع اللقطة بدلاً من ساعة الإطار حرة الجريان للكاميرا — مفيد للمزامنة مع حدث خارجي أو مستشعر آخر. فعّله عبر csi.CSI.ioctl مع csi.IOCTL_SET_TRIGGERED_MODE — وينخفض معدل الإطارات إلى نحو نصف الوضع حر الجريان لأن القراءة لم تعد تتداخل مع تجميع الإطار التالي:

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)
csi0.snapshot(time=2000)

csi0.ioctl(csi.IOCTL_SET_TRIGGERED_MODE, True)

clock = time.clock()
while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())