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
表明热成像扩展板的类型(留待将来使用):fir.FIR_NONE
: 0 pixels.fir.FIR_SHIELD
: 16x4 pixels.fir.FIR_MLX90620
: 16x4 pixels.fir.FIR_MLX90621
: 16x4 pixels.fir.FIR_MLX90640
: 32x24 pixels.fir.FIR_AMG8833
: 8x8 pixels.
refresh
is the thermopile sensor power-of-2 refresh rate in Hz:fir.FIR_NONE
: N/Afir.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/Afir.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
, andfir.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.FIR_NONE
: 0 pixels.fir.FIR_SHIELD
: 16 pixels.fir.FIR_MLX90620
: 16 pixels.fir.FIR_MLX90621
: 16 pixels.fir.FIR_MLX90640
: 32 pixels.fir.FIR_AMG8833
: 8 pixels.
- fir.height()¶
返回热成像扩展板的高度(垂直分辨率)。
None: 0 像素。
thermopile shield: 4 像素。
fir.FIR_MLX90620
: 4 pixels.fir.FIR_MLX90621
: 4 pixels.fir.FIR_MLX90640
: 24 pixels.fir.FIR_AMG8833
: 8 pixels.
- 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温度数组(以摄氏度为单位)的元组。
注解
要获得最佳效果,请看冷或热的物体。