محول FLIR Lepton¶
تربط وحدة محول FLIR Lepton نوى FLIR Lepton الحرارية (تُباع منفصلة) بكاميرا OpenMV Cam، مع وضعَي AGC والوضع الحراري المباشر لقياس درجة حرارة الإنسان / الأجسام.
للاطلاع على ورقة البيانات الكاملة والصور ومعلومات الطلب، راجع صفحة منتج محول FLIR Lepton.
أبرز الميزات¶
متوافق مع نوى FLIR Lepton 1.x / 2.x / 3.x (تُباع منفصلة)
وضعا AGC والوضع الحراري المباشر مع تعيين درجة الحرارة
يرى في الظلام التام
متوافق مع جميع اللوحات الأساسية المعيارية لكاميرا OpenMV Cam
الاستخدام¶
شغّل Lepton عبر csi.CSI مع cid= csi.LEPTON. يقوم برنامج التشغيل داخلياً بترقية دقة الإطار الأصلي لـ Lepton البالغ 80x60 (1.x/2.x) أو 160x120 (3.x) إلى أي حجم إطار تضبطه:
import csi
import time
csi0 = csi.CSI(cid=csi.LEPTON)
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QVGA)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
للحصول على إطارات ملوّنة مباشرة من المستشعر، بدّل تنسيق البكسل إلى csi.RGB565 واضبط csi.CSI.color_palette على image.PALETTE_IRONBOW — يُصدِر برنامج التشغيل إطارات RGB565 مع تطبيق اللوحة اللونية، بحيث تُرجِع snapshot() إطارات ملوّنة بألوان ironbow مباشرة:
csi0.pixformat(csi.RGB565)
csi0.color_palette(image.PALETTE_IRONBOW)
قياس درجة الحرارة¶
تُبلِّغ وحدات Lepton الإشعاعية (Lepton 2.5 / 3.5) عن بيانات درجة حرارة معايَرة لكل بكسل. فعّل وضع القياس عبر csi.CSI.ioctl مع csi.IOCTL_LEPTON_SET_MODE، ثم قيّد نافذة درجة الحرارة باستخدام csi.IOCTL_LEPTON_SET_RANGE (min_celsius, max_celsius). يقوم برنامج تشغيل Lepton بتعيين قيمة بكسل تدرج الرمادي 0 إلى min_celsius و255 إلى max_celsius خطياً، بحيث يصبح كل بكسل بحثاً عن درجة حرارة ضمن النافذة المُهيّأة. تتشبّع البكسلات الأبرد من min_celsius عند 0، وتتشبّع البكسلات الأسخن من max_celsius عند 255.
تأخذ csi.IOCTL_LEPTON_SET_MODE رايتين. الأولى تشغّل القياس؛ والثانية تختار نطاق درجة حرارة المستشعر:
النطاق المنخفض —
(True, False)— مدى المستشعر من-10 °Cإلى+140 °C(مشاهد على مستوى الغرفة). قيّد النافذة على منطقة الاهتمام، مثل(20.0, 40.0)لتتبع حرارة الجسم:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, False) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 20.0, 40.0)
النطاق العالي —
(True, True)— مدى المستشعر من-10 °Cإلى~+450 °Cنموذجياً (~+400 °Cفي درجة حرارة الغرفة) للأجسام الساخنة. قيّد على سبيل المثال(0.0, 400.0)لتتبع الأفران أو العناصر الساخنة:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, True) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 0.0, 400.0)
لتحويل بكسل تدرج الرمادي مرة أخرى إلى مئوية:
def p_to_temp(p, min_t, max_t):
return (p * (max_t - min_t)) / 255.0 + min_t
يعمل هذا على البكسلات الفردية أو على الإحصاءات المجمّعة (مثل stats.mean() من Image.get_statistics) داخل منطقة اهتمام عند تحديد المناطق الساخنة/الباردة باستخدام Image.find_blobs.
ملاحظة
يتطلب قياس درجة الحرارة أن يكون Lepton في وضع تدرج الرمادي دون ضبط لوحة لونية — فالتعيين الخطي من البكسل إلى درجة الحرارة لا يصحّ إلا على خرج تدرج الرمادي الخام. للتلوين لأغراض العرض، افعل ذلك بشكل منفصل برسم إطار تدرج الرمادي على مخزن خرج RGB باستخدام Image.draw_image وcolor_palette= image.PALETTE_IRONBOW
out = image.Image(csi0.width(), csi0.height(), image.RGB565)
out.draw_image(img, 0, 0, color_palette=image.PALETTE_IRONBOW)