מתאם 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) לכל framesize שתגדירו:
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())
כדי לקבל פריימים צבעוניים ישירות מהחיישן, החליפו את ה-pixformat ל-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) בתוך ROI בעת איתור אזורים חמים/קרים עם 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)