מתאם FLIR Lepton

מודול המתאם של FLIR Lepton מחבר ליבות תרמיות FLIR Lepton (נמכרות בנפרד) אל ה-OpenMV Cam, עם מצבי AGC וגם מצב תרמי ישיר למדידת טמפרטורת אדם / עצמים.

FLIR Lepton Adapter

לדף נתונים מלא, תמונות והזמנה ראו את דף המוצר של מתאם 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)