fir — 热成像扩展板驱动 (fir == 远红外线)

fir 模块用于控制热成像扩展板。

用法示例:

import sensor, fir

# Setup camera. 设置摄像机。
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames()
fir.init()

# Show image. 显示图像。
while(True):
    img = sensor.snapshot()
    ta, ir, to_min, to_max = fir.read_ir()
    fir.draw_ir(image, ir)
    print("====================")
    print("ambient temperature: %0.2f" % ta)
    print("min temperature seen: %0.2f" % to_min)
    print("max temperature seen: %0.2f" % to_max)

函数

fir.init([type=fir.FIR_SHIELD[, refresh[, resolution]]])

使用I/O引脚P4和P5将附加的热成像扩展板初始化。

type 表明热成像扩展板的类型(留待将来使用):

refresh is the thermopile sensor power-of-2 refresh rate in Hz:

  • fir.FIR_NONE: N/A
  • fir.FIR_SHIELD: Defaults to 64 Hz. Can be 1 Hz, 2 Hz, 4 Hz, 8 Hz, 16 Hz, 32 Hz, 64 Hz, 128 Hz, 256 Hz, or 512 Hz. Note that a higher refresh rate lowers the accuracy and vice-versa.
  • fir.FIR_MLX90620: Defaults to 64 Hz. Can be 1 Hz, 2 Hz, 4 Hz, 8 Hz, 16 Hz, 32 Hz, 64 Hz, 128 Hz, 256 Hz, or 512 Hz. Note that a higher refresh rate lowers the accuracy and vice-versa.
  • fir.FIR_MLX90621: Defaults to 64 Hz. Can be 1 Hz, 2 Hz, 4 Hz, 8 Hz, 16 Hz, 32 Hz, 64 Hz, 128 Hz, 256 Hz, or 512 Hz. Note that a higher refresh rate lowers the accuracy and vice-versa.
  • fir.FIR_MLX90640: Defaults to 32 Hz. Can be 1 Hz, 2 Hz, 4 Hz, 8 Hz, 16 Hz, 32 Hz, or 64 Hz. Note that a higher refresh rate lowers the accuracy and vice-versa.
  • fir.FIR_AMG8833: 10 Hz

resolution 是热成像传感器的测量分辨率。

  • fir.FIR_NONE: N/A
  • fir.FIR_SHIELD: Defaults to 18-bits. Can be 15-bits, 16-bits, 17-bits, or 18-bits. Note that a higher resolution lowers the maximum temperature range and vice-versa.
  • fir.FIR_MLX90620: Defaults to 18-bits. Can be 15-bits, 16-bits, 17-bits, or 18-bits. Note that a higher resolution lowers the maximum temperature range and vice-versa.
  • fir.FIR_MLX90621: Defaults to 18-bits. Can be 15-bits, 16-bits, 17-bits, or 18-bits. Note that a higher resolution lowers the maximum temperature range and vice-versa.
  • fir.FIR_MLX90640: Defaults to 19-bits. Can be 16-bits, 17-bits, 18-bits, or 19-bits. Note that a higher resolution lowers the maximum temperature range and vice-versa.
  • fir.FIR_AMG8833: 12-bits.

For the fir.FIR_SHIELD, fir.FIR_MLX90620, and fir.FIR_MLX90621:

  • 15-bits -> Max of ~950C.
  • 16-bits -> Max of ~750C.
  • 17-bits -> Max of ~600C.
  • 18-bits -> Max of ~450C.

For the fir.FIR_MLX90640:

  • 16-bits -> Max of ~750C.
  • 17-bits -> Max of ~600C.
  • 18-bits -> Max of ~450C.
  • 19-bits -> Max of ~300C.

For the fir.FIR_AMG8833:

  • Max of ~80C.
fir.deinit()

反初始化热成像扩展板,释放I/O引脚。

fir.width()

返回热成像扩展板的宽度(水平分辨率)。

fir.height()

返回热成像扩展板的高度(垂直分辨率)。

fir.type()

返回热成像扩展板的类型(留待未来可用):

fir.refresh()

返回在 fir.init() 调用期间设置的当前刷新率。

fir.resolution()

返回在 fir.init() 调用期间设置的当前分辨率。

fir.read_ta()

返回环境温度(即传感器温度)。

示例:

ta = fir.read_ta()

返回值是表示温度(单位:摄氏度)的浮点值。

fir.read_ir()

返回一个包含环境温度(即传感器温度)、温度列表(宽度*高度)、所见最低温度和所见最高温度的元组。

示例:

ta, ir, to_min, to_max = fir.read_ir()

返回值是表示温度(单位:摄氏度)的浮点值。

注解

ir 是一个浮点值列表(宽度*高度)。

fir.draw_ta(image, ta[, alpha=128[, scale]])

使用彩虹表颜色转换在 image 上画出环境温度列表( ta )。 此方法根据环境温度以蓝色到红色的覆盖层为整个图像着色。

alpha 控制透明度。不透明为256,透明为0。

scale 控制彩虹表颜色转换。第一个数字为截止的最低温度,第二个数字为最高温度。靠近最小值的值为蓝色,靠近最大值的值为红色。

scale 的默认值[-17.7778C, 37.7778C]与[0F, 100F]相对应。

注解

为得到最佳结果,请查看极冷或极热对象。

fir.draw_ir(image, ir[, alpha=128[, scale]])

使用彩虹表颜色转换在 image 上画出环境温度列表( ir )。 该方法自动处理将IR数据缩放到正确的分辨率,并应用居中偏移以覆盖图像。

alpha 控制透明度。不透明为256,透明为0。

scale 控制彩虹表颜色转换。第一个数字为截止的最低温度,第二个数字为最高温度。靠近最小值的值为蓝色,靠近最大值的值为红色。

温度列表上的最大值和最小值用来对输出 image 进行自动缩放(除非被显式地覆盖)。

注解

为得到最佳结果,请查看极冷或极热对象。

fir.snapshot([alpha=128[, scale[, pixformat=sensor.RGB565[, copy_to_fb=False]]]])

工作方式类似于 sensor.snapshot() ,并返回一个 image 对象,该对象为 sensor.GRAYSCALE`(灰度)或 `sensor.RGB565 (彩色)。 如果 copy_to_fb 为False,则新图像分配在MicroPython堆上。但是,MicroPython堆是有限的,如果耗尽,可能没有空间存储新图像。 相反,将 copy_to_fb 设置为True,将帧缓冲区设置为新图像,使此函数像 sensor.snapshot() 一样工作。

copy_to_fb 也可能是另一个图像对象,如果要用新的图像数据替换该图像对象的内存缓冲区、类型、宽度和高度。

注解

任何对 copy_to_fb 的使用都会使它覆盖的先前图像对象无效。不要再使用它覆盖的先前图像对象的引用。 比如,引用帧缓冲区,帧缓冲区堆栈的图像对象,或者MicroPython堆上的图像。

alpha 控制透明度。256表示不透明覆盖。0表示无。

scale 是一个二值元组,用于控制彩虹表的颜色转换。第一个数字是以摄氏度为单位的最低温度,第二个数字是最高温度。 接近最低温度的值是蓝色,接近最高温度的值是红色。

温度列表中的最小值和最大值用于自动缩放输出 image ,除非使用标量显式重写。

返回一个包含新图像和原始浮点IR温度数组(以摄氏度为单位)的元组。

注解

要获得最佳效果,请看冷或热的物体。

常量

fir.FIR_NONE

无FIR传感器类型。

fir.FIR_SHIELD

OpenMV Cam热成像扩展板型号(MLX90621)。

fir.FIR_MLX90620

MLX90620 FIR传感器。

fir.FIR_MLX90621

FIR_MLX90621 FIR传感器。

fir.FIR_MLX90640

FIR_MLX90640 FIR传感器。

fir.FIR_AMG8833

FIR_AMG8833 FIR传感器。