- 2024-11-03
-
回复了主题帖:
【2024 DigiKey 创意大赛】”双光融合“智能热像仪 作品总结与提交
wangerxian 发表于 2024-11-2 10:48
那还可以的,这个帧率完全够用了。
不写模式切换什么的,还可以快不少
- 2024-11-01
-
回复了主题帖:
【2024 DigiKey 创意大赛】”双光融合“智能热像仪 作品总结与提交
wangerxian 发表于 2024-10-30 17:45
双光融合模式帧率就很低了吧。毕竟要采集两个传感器的图像。
每秒十帧,手持测量看看板子发热情况感觉还可以。代码还有优化空间
- 2024-10-30
-
发表了主题帖:
【2024 DigiKey 创意大赛】”双光融合“智能热像仪 作品总结与提交
本帖最后由 JOEYCH 于 2024-10-30 15:33 编辑
“双光融合”智能热像仪
作者:JOEYCH
作品简介
本项目为一款“双光融合”智能热像仪, “双光融合”指的是可见图像与热图像相融合。该设备硬件上基于高性能STM32H7微控制器,软件上基于使用micropython语言的OPENMV开源项目和“TensorFlow Lite“AI模型框架,实现了图像采集的高效率和手写数字分析的高精度。听取”秦天“大佬的建议,添加LCD触摸屏提供直观的用户交互体验,支持模式的快速切换和实时监测分析。
“双光融合”智能热像仪在医疗健康领域能够进行体温检测,快速判断发烧症状,在工业应用中则可以监测电路板焊接作业中的热量分布,帮助技术人员定位问题。此外,设备的便携性设计和自主充电方案,使其在移动便携使用时也能保持长时间的续航能力。
主要技术特点:
基于高性能STM32H7微控制器控制,集成了两种类型的图像传感器:可见光摄像头OV5640和红外传感器MLX90640,用于高效准确的数据采集。
热成像仪基于开源框架OPENMV进行开发,利用插值算法、二值化滤波和图形融合等高级图像处理技术,以优化图像质量和分析精度。
利用TensorFlow Lite框架,自主训练模型,在嵌入式设备进行优化,通过神经网络算法对图像进行准确的识别。
设备配备了LCD触摸屏,支持在屏幕上手写数字,切换3种工作模式:图像显示、二值化处理、高温测量和热成像融合。
系统框图
“双光融合”智能热像仪的硬件设计思路,主要包括以下几个部分:
可见光传感器 OV5640:用于捕捉可见光图像。
OV5640是一款500万像素的CMOS图像传感器,支持最高2592x1944分辨率和15fps的QSXGA图像输出。它具备自动曝光和白平衡功能,支持DVP和MIPI接口,以及JPEG图像格式输出。传感器内部集成了图像处理功能,并可通过SCCB接口进行寄存器配置。
热成像传感器 MLX90640:用于获取红外热成像数据。
MLX90640是一款32x24像素的红外阵列传感器,具有0.1K RMS@1Hz的高NETD,支持1Hz至60Hz的可编程刷新率。采用3.3V供电,最大电流23mA。提供两种视场角,工作温度范围-45℃至85℃,测温范围-40℃至300℃。支持I2C接口,适用于多种温度测量和监控应用。
主控(openmv开源项目):
基于openmv的开源项目,总体结构上在openmv4的基础上升级为openmv4plus。硬件部分在原有开源项目基础上进行了优化,包括供电布局设计和双电源处理电路的改进,同时添加了充电功能{可以边冲边用}和电量检测功能(需要软件支持)
触摸屏(2.8寸开源方案):
显示部分基于B站up主“程双双的智能控制集”的开源方案,电路设计部分进行了简化。
软件设计主要思路为状态机切换设计,具体内容如下:
切换方式:通过在触摸屏上手绘数字进行识别,切换状态。
(该功能仅作为在单片机上运行AI的尝试 ,并不实用)
状态一:可见光模式:此模式下仅启用可见光传感器(OV5640),用于捕捉可见光图像。
状态二:二值化边缘检测模式:
在此状态下,系统会对图像进行二值化处理,进行边缘检测,从而更好地识别目标物体的轮廓。
状态三:“双光融合“热像模式:
启用双传感器(可见光和热成像)进行融合检测,用于复杂环境下的危险物体识别或监控。
三种模式下的工作参数:
图像处理功能
普通摄像模式
二值化模式
平滑色轮热成像图
功耗(mW)
1218.74
1243.45
913.53
分辨率(fps)
50
30
10.4
温度检测准确度
无
无
近距离73.6%
红外图像处理
无
无
存在约20%误差
三、各部分功能说明
实物整体如图所示:
四、作品源码
software:项目软件
hardware: 硬件原理图
word:论坛帖子的草稿、图片和整个比赛项目的最终文档
micropython:语言教程
openmv_v4.2.1:固件源码
软件使用方式:
openmv插上电脑后,将software文件夹中所有文件放入openmv弹出的U盘中即可。
下载链接:
download.eeworld.com.cn/detail/JOEYCH/634847
五、作品功能演示视频
详见论坛帖子。
六、链接汇总
【2024 DigiKey 创意大赛】”双光融合“智能热像仪 物料开箱 - DigiKey得捷技术专区 - 电子工程世界-论坛
【2024 DigiKey 创意大赛】“双光融合”智能热像仪第一部分:可见光部分实现 - DigiKey得捷技术专区 - 电子工程世界-论坛
【2024 DigiKey 创意大赛】“双光融合”智能热像仪第二部分:热像显示 - DigiKey得捷技术专区 - 电子工程世界-论坛
【2024 DigiKey 创意大赛】”双光融合“智能热像仪第三部分:触摸屏制作/双光融合 - DigiKey得捷技术专区 - 电子工程世界-论坛
【2024 DigiKey 创意大赛】“双光融合”智能热像仪 番外与说明 - DigiKey得捷技术专区 - 电子工程世界-论坛
【2024 DigiKey 创意大赛】”双光融合“智能热像仪第四部分:手写数字识别 - DigiKey得捷技术专区 - 电子工程世界-论坛
七、项目总结
在本项目中,我开发了一款“双光融合”智能热像仪,其核心功能是将可见光图像与热图像相融合,实现对场景的多维度检测和分析。硬件设计基于高性能的STM32H7微控制器,结合OPENMV开源平台和TensorFlow Lite AI框架,使得设备在图像采集方面具备了高效率,并在手写数字识别等应用中达到了较高的精度。此外,在“秦天”大佬的建议下,加入了LCD触摸屏,实现了直观的用户交互,使模式切换与实时监测更为便捷。这款设备在医疗健康和工业领域具有广泛应用,如体温检测和电路板热量监测等,展示了显著的实用价值。
然而,项目中也存在一些不足之处,比如在双光图像融合的精度和响应速度上还有进一步优化空间,此外,便携性设计虽然达标,但在极端环境下的稳定性仍有待提升。未来,我计划在算法优化和硬件适应性方面进行更深入的改进。
在此项目中,我们深深感谢得捷电子(Digi-Key)和EEworld电子工程世界论坛为我们提供的支持和平台。正是他们的支持,让我能够接触到前沿的技术资源、交流学习的机会,并将创意付诸实践。此外,感谢广大网友对项目的关注与建议,他们的反馈为项目的优化和改进提供了宝贵的参考。在整个过程中,得捷电子、EEworld论坛的支持与广大网友的鼓励都给予了我巨大的动力,让我在研发过程中不断挑战自我、追求卓越。
-
加入了学习《 【2024 DigiKey 创意大赛】”双光融合“智能热像仪》,观看 “双光融合”智能热像仪
-
加入了学习《2024digikey多功能旋钮》,观看 2024digikey多功能旋钮
-
上传了资料:
【2024 DigiKey 创意大赛】”双光融合“智能热像仪
-
回复了主题帖:
【2024 DigiKey 创意大赛】”双光融合“智能热像仪第四部分:手写数字识别
wangerxian 发表于 2024-10-29 19:23
这个和之前咱们做的AI活动数字识别是不是相似?
不好意思,没有了解过这个活动。
- 2024-10-28
-
发表了主题帖:
【2024 DigiKey 创意大赛】”双光融合“智能热像仪第四部分:手写数字识别
# 【2024 DigiKey 创意大赛】”双光融合“智能热像仪第四部分:手写数字识别
## 一、实现tensorflow的硬件说明
在前面的部分当中,我们已经实现了触摸屏的驱动,并将提供的openmv4升级为openmv4plus(官方数据:运行tensorflow-lite在OpenMV4 H7 Plus上面运行大概每秒45帧,在OpenMV4 H7上面运行大概每秒25帧左右,两者都是可以运行的),这都让我们在openmv上对较高性能的单片机运行神经网络做出更好的尝试。
## 二、tensorflow-lite介绍
TensorFlow Lite(TFLite)是 TensorFlow 团队推出的轻量级深度学习框架,专门为移动设备和嵌入式设备的机器学习推理进行优化。它支持在设备端(Edge)进行高效的推理操作,具有低延迟、低功耗、无需网络连接等特点。
### 1. **模型转换与优化**
TensorFlow Lite 提供了强大的工具来将标准 TensorFlow 模型转换为 TFLite 格式。转换后的模型体积更小,运行更高效,适合在资源受限的设备上运行。TFLite 支持以下几种优化技术:
- **量化(Quantization)**:通过降低模型权重的精度(例如,将浮点数转为 8 位整数),来减少模型大小和内存占用,同时加速推理速度。
- **修剪和剪枝(Pruning & Trimming)**:减少模型中不必要的参数,以降低模型复杂度和计算负担。
- **模型分片(Model Splitting)**:将模型分成多块,以适应更小内存的设备:contentReference[oaicite:0]{index=0}。
### 2. **多平台支持**
TensorFlow Lite 设计为多平台兼容,能够运行在多种设备上,包括:
- **Android 和 iOS 设备**:TFLite 提供了适用于 Java、Swift 和 Objective-C 的 SDK,使开发者能够在主流移动平台上集成机器学习功能。
- **嵌入式 Linux 设备**:例如树莓派等,可以运行基于 Linux 的 TFLite 推理引擎。
- **微控制器(Microcontrollers)**:如 Arduino、ESP32 等低功耗设备,这些设备在资源上非常有限,因此 TFLite 的微控制器版本经过极致优化,适合用于 IoT 设备:contentReference[oaicite:1]{index=1}:contentReference[oaicite:2]{index=2}。
### 3. **硬件加速**
TensorFlow Lite 支持硬件加速,以充分利用设备上的计算资源,实现更快的推理速度。这包括:
- **GPU 加速**:在支持的 Android 和 iOS 设备上,TFLite 能够调用 GPU 来处理计算密集型任务,适合计算机视觉等应用。
- **专用 AI 加速器**:例如,许多手机和嵌入式设备上配备的神经网络处理单元(NPU)或谷歌 Edge TPU,可以极大地加速机器学习推理。
- **多线程支持**:可以在多个 CPU 线程上运行模型,进一步提高计算效率:contentReference[oaicite:3]{index=3}。
### 4. **应用场景与性能分析**
TensorFlow Lite 特别适合需要实时推理、低延迟的应用场景,如:
- **计算机视觉**:如物体检测、人脸识别、图像分类等。
- **自然语言处理**:包括文本分类、情感分析、问答系统等。
- **语音处理**:如语音识别、关键词检测等。
参考文献:
- [TensorFlow Lite 概述](https://www.tensorflow.org/lite)
- [TensorFlow Blog 上的 TFLite 应用](https://blog.tensorflow.org)
## 三、tensorflow-lite的数据集训练
### 1. **数据集采集**
我所使用的触摸屏大小为2.4寸,分辨率为320*240。使用画图软件,将画布设置到相同的大小,白底黑字,使用鼠标写数字1~4各50张,如果可以的话,建议叫上你的朋友一起写~
### 2. **模型训练**
方法一:使用星瞳科技提供的云端训练平台来训练,无需配置环境,较为简单。
网站:https://ai.singtown.com/zh-hans/
方法二:使用openmv官方提供的ipynb脚本文件来训练,详情见附件
### 3. **训练结果导入并验证**
将训练好的trained.tflite,并复制到OpenMV的存储
直接使用摄像头识别的测试代码:
'''python
# This code run in OpenMV4 H7 or OpenMV4 H7 Plus
import sensor, image, time, os, tf
sensor.reset() # Reset and initialize the sensor.
sensor.set_pixformat(sensor.GRAYSCALE) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240)
sensor.set_windowing((240, 240)) # Set 240x240 window.
sensor.skip_frames(time=2000) # Let the camera adjust.
clock = time.clock()
while(True):
clock.tick()
img = sensor.snapshot().binary([(0,64)])
for obj in tf.classify("trained.tflite", img, min_scale=1.0, scale_mul=0.5, x_overlap=0.0, y_overlap=0.0):
output = obj.output()
number = output.index(max(output))
print(number)
print(clock.fps(), "fps")
'''
使用触摸屏输入的测试代码:
'''python
import sensor, image, time
import os, tf
from screen import screen
screen.init()
#创建用于绘图的画布,并填充黑色
img_drawing_board=sensor.alloc_extra_fb(320,240,sensor.GRAYSCALE)
img_drawing_board.draw_rectangle(0,0,320,240,fill=True,color=(255, 255, 255))
fps=0 #帧速变量
last_x=0 #上一次x坐标
last_y=0 #上一次y坐标
first_time_press=True #第一次按下(抬笔后线条不连续)
is_drawing = False
clock = time.clock() #声明时钟,用于获取帧速
while(1):
if screen.press: # 如果触屏被按下
if first_time_press: # 如果首次按下,绘制一个点
img_drawing_board.draw_line(screen.x, screen.y, screen.x, screen.y, color=(0, 0, 0), thickness=3)
last_x = screen.x # 记录本次坐标到‘上一次’变量
last_y = screen.y
first_time_press = False # 解除首次标识
is_drawing = True # 开始绘制
else: # 非首次按下,绘制连续线条
img_drawing_board.draw_line(screen.x, screen.y, last_x, last_y, color=(0, 0, 0), thickness=3)
last_x = screen.x # 记录本次坐标到‘上一次’变量
last_y = screen.y
elif is_drawing: # 如果之前正在绘制且现在不再按下
for obj in tf.classify("03.tflite", img_drawing_board, min_scale=1.0, scale_mul=0.5, x_overlap=0.0, y_overlap=0.0):
output = obj.output()
number = output.index(max(output))
print(number)
img_drawing_board.draw_rectangle(0,0,320,240,fill=True,color=(255, 255, 255))
first_time_press = True # 置首次标识为True,等待下一次绘制
is_drawing = False # 结束绘制状态
screen.display(img_drawing_board) #显示图像到屏幕,并获取触摸信息。不运行此函数,不会更新触屏信息。
'''
可以看到,终端中准确的识别出了我们写的数字,实验成功!
- 2024-10-22
-
回复了主题帖:
【2024 DigiKey 创意大赛】“双光融合”智能热像仪 番外与说明
wangerxian 发表于 2024-10-22 09:06
引脚在下面的可以考虑下面吹,前提背面没有什么元器件,要不吹掉了。
还能这样,学习了
-
回复了主题帖:
【2024 DigiKey 创意大赛】红外温度检测及火灾报警器
鲜de芒果 发表于 2024-10-20 23:35
NAS服务器上
了解
- 2024-10-20
-
加入了学习《得捷电子专区》,观看 【2024 DigiKey 创意大赛】红外温度检测及火灾报警器
-
回复了主题帖:
【2024 DigiKey 创意大赛】红外温度检测及火灾报警器
想问问Homeassisant是部署在哪里的呀?
-
回复了主题帖:
【2024 DigiKey 创意大赛】“双光融合”智能热像仪 番外与说明
这部分非作品的主要部分,目的为补充与说明。主要部分还在审核中
-
回复了主题帖:
【DigiKey创意大赛】家庭共享智能药盒04+人脸分辨程序设计
实时性好吗?
-
回复了主题帖:
【DigiKey创意大赛】家庭共享智能药盒03+设计PCB和调试BME280
oet 发表于 2024-9-21 14:58
这个PCB是根据不同场景焊接不同器件的,焊接热成像传感器的时候不焊接屏幕,焊屏幕的板反插在背面,整个 ...
被q到了,双光融合是我的题目
-
发表了主题帖:
【2024 DigiKey 创意大赛】“双光融合”智能热像仪 番外与说明
# 【2024 DigiKey 创意大赛】“双光融合”智能热像仪 番外与说明
## 一、充分利用开源项目
openmv作为一个较为出名且历时较久的成熟开源项目,其软硬件都充分开源,特别制作的IDE功能齐全,不仅带有许多demo,还能够烧录固件。因此,我们能够制作自己的openmv板子。
一劳永逸的想法,在openmv4的基础上升级为openmv4plus。硬件部分在原有开源项目基础上进行了优化,包括供电布局设计和双电源处理电路的改进,同时添加了充电功能和电量检测功能(需要重新编译固件,还未完成)。
原理图和PCB如下:
焊接调试后,实物如下,功能正常:
## 二、说明
从比赛规则和节约成本的角度考虑,选用的物料是openmv和BME680(元件),MLX90640元件虽在比赛清单中,但是是自备的。
然而BME680(元件)体积小,侧面无引脚,焊接难度大,制作失败。我仅提供开源的micropython驱动代码库,未经过测试。
作品总体上与报名时的选题相一致,主要功能“双光融合”已实现,还添加了电阻触摸屏。BME680温湿度传感器也为拓展功能,个人认为不影响完赛。
- 2024-10-19
-
发表了主题帖:
【2024 DigiKey 创意大赛】”双光融合“智能热像仪第三部分:触摸屏制作/双光融合
# 【2024 DigiKey 创意大赛】”双光融合“智能热像仪第三部分:触摸屏制作/双光融合
## 一、触摸屏制作
### 1.1 绘制原理图和PCB:
### 1.2 触摸屏驱动
将下列代码单独放在openmv弹出的U盘中,命名为`screen.py`。
```python
# 作者:程欢欢的智能控制集
import lcd
from pyb import Pin, SPI, millis, hard_reset
import struct
from sensor import alloc_extra_fb, snapshot, RGB565
from time import sleep
x = 0
y = 0
z = 0
press = False
x_original = 0
y_original = 0
z_original = 0
press_threshold = 2800
# Calibration data
calibration_data = [
29532, 796, -89.8, # x_min, x_max, x_step
1976, 30872, 120.4, # y_min, y_max, y_step
27492.0, 17716, -35.0, 10.8667 # z_min, z_max, z_x_step, z_y_step
]
calibration_coordinate = ((80, 60), (240, 60), (80, 180), (240, 180))
baudrate = 80
spi2 = SPI(2, SPI.MASTER, baudrate=40*1000000, phase=1)
CS = Pin('P3', Pin.OUT_PP)
RS = Pin('P8', Pin.OUT_PP)
# Functions for writing to the display
def write_c(c):
CS.low()
RS.low()
spi2.send(c)
CS.high()
def write_d(c):
CS.low()
RS.high()
spi2.send(c)
CS.high()
def write_command(c, *data):
write_c(c)
if data:
for d in data:
write_d(d)
def set_resolution(x, y, w, h):
write_c(0x2a)
write_d(int(x / 256))
write_d(x % 256)
write_d(int((x + w - 1) / 256))
write_d((x + w - 1) % 256)
write_c(0x2b)
write_d(int(y / 256))
write_d(y % 256)
write_d(int((y + h - 1) / 256))
write_d((y + h - 1) % 256)
write_c(0x2C)
def init(screen_baudrate=80, pressure=1800):
global calibration_data, baudrate, press_threshold
press_threshold = 5000 - pressure
lcd.init(width=320, height=240, triple_buffer=False, rgb=True)
write_c(0x36) # Set screen direction
write_d(0xa0)
set_resolution(0, 0, 320, 240) # Set screen resolution
baudrate = screen_baudrate
try:
from screen import calibration
calibration_data = calibration.data
except:
touch_calibration()
def touch_calibration():
# Calibration logic
...
def display(img):
# Touch display logic
...
```
## 二、双光融合的实现
### 主要思路:
对于可见光图像和热图像分别创建两张图片(帧缓冲区),按比例缩放至合适的大小,然后将两个图片按比例相叠加产生融合图像。对于触摸屏,根据照片的尺寸大小和MLX90640传回的原始数组数据计算出映射关系,实现触摸屏返回的像素和温度数据相对应
代码如下:
```python
import sensor
import image
import time
import fir
import gc
from screen import screen
from ulab import numpy as np
# Parameters
kernel_size = 1 # kernel width = kernel height = (size*2)+1
kernel = [+1, +1, +1, +1, -9, +1, +1, +1, +1]
thresholds_binary = [(50, 200)] # grayscale thresholds
thresholds_track = (0, 100, -7, 69, 25, 127)
white = (255, 255, 255)
frame_count = 0
gc.collect()
# Initialize camera
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQVGA)
sensor.set_auto_gain(False)
sensor.set_auto_whitebal(False)
sensor.skip_frames(time=2000)
# Initialize thermal sensor
fir.init(type=fir.FIR_MLX90640, refresh=32)
screen.init()
# Allocate buffer for IR image
ir_buffer = image.Image(fir.width(), fir.height(), sensor.RGB565)
# Scale factors
x_scale = sensor.width() / ir_buffer.width()
y_scale = sensor.height() / ir_buffer.height()
clock = time.clock()
while True:
clock.tick()
img = sensor.snapshot()
if frame_count % 10 == 0:
gc.collect()
ta, ir, to_min, to_max = fir.read_ir()
ir_raw = np.array(ir).reshape((fir.width(), fir.height()))
fir.draw_ir(ir_buffer, ir, alpha=256)
img.draw_image(ir_buffer, 0, 0, x_scale=x_scale, y_scale=y_scale, alpha=128, hint=image.BILINEAR)
if screen.press: # If touch screen is pressed
img.draw_circle(screen.x, screen.y, 5, color=(255, 0, 0))
img.draw_string(screen.x + 5, screen.y - 5, "%0.2f C" % ir[(screen.y // 5 - 1) * 32 + screen.y // 5], color=white, scale=1, mono_space=False)
img.draw_string(2, sensor.height() - 10, "Min: %0.2f C" % to_min, color=white, scale=1, mono_space=False)
img.draw_string(2, sensor.height() - 20, "Max: %0.2f C" % to_max, color=white, scale=1, mono_space=False)
img.draw_string(2, sensor.height() - 30, "FPS: %0.2f " % clock.fps(), color=white, scale=1, mono_space=False)
img.compress(quality=90)
screen.display(img)
if frame_count % 30 == 0:
print(clock.fps())
frame_count += 1
```
-
发表了主题帖:
【2024 DigiKey 创意大赛】“双光融合”智能热像仪第二部分:热像显示
本帖最后由 JOEYCH 于 2024-10-19 21:12 编辑
# 【2024 DigiKey 创意大赛】“双光融合”智能热像仪第二部分:热像显示
## 一、MLX90640拓展板制作
### 1. MLX90640的datasheet
**MLX90640 32x24 红外阵列**
**1.1 特点和优势**
- 小尺寸,低成本 32x24 像素红外阵列
- 易于集成
- 符合行业标准的四引脚 TO39 封装
- 工厂校准
- 噪声等效温差(NETD)0.1K RMS @ 1Hz 刷新率
- I²C 兼容的数字接口
- 可编程刷新率 0.5Hz...64Hz
- 3.3V 电源电压
- 电流消耗小于 23mA
- 提供两种视场选项——55°x35° 和 110°x75°
- 工作温度范围 -40°C 到 +85°C
- 目标温度范围 -40°C 到 +300°C
- 符合 RoHS 规范
**1.2 应用示例**
- 高精度非接触式温度测量
- 入侵/运动检测
- 存在检测/人员定位
- 智能建筑空调温控传感器
- 汽车空调系统中的热舒适度传感器
- 微波炉
- 工业移动部件的温控
- 可视红外温度计
驱动软件可通过以下链接获取:[MLX90640 Library](https://github.com/melexis/mlx90640-library.git)
**1.3 描述**
MLX90640 是一个完全校准的 32x24 像素的热红外阵列,采用行业标准的四引脚 TO39 封装,带有数字接口。
MLX90640 包含 768 个 FIR 像素。集成了一个环境传感器来测量芯片的环境温度,并使用它来测量供电电压(VDD)。所有红外传感器、环境温度(Ta)和 VDD 的输出都存储在内部 RAM 中,并通过 I²C 接口进行访问。
### 2. 原理图绘制
使用 I²C 通信,加入上拉电阻和滤波电容。
### 3. 根据 openmv 的两排针之间的间距绘制 PCB
### 4. 打板并焊接
## 二、MLX90640热成像代码设计
根据第一部分中给出的材料,编写代码.
```python
import image, time, fir, lcd
# 初始化热传感器
fir.init(type=fir.FIR_MLX90640, refresh=32) # 16Hz, 32Hz or 64Hz.
# 初始化lcd
lcd.init()
# FPS clock
clock = time.clock()
while (True):
clock.tick()
img = fir.snapshot(copy_to_fb=True)
lcd.display(img)
# Print FPS.
print(clock.fps())
```
-
回复了主题帖:
【2024 DigiKey 创意大赛】“双光融合”智能热像仪第一部分:可见光部分实现
openmv相关连接:
网址:https://openmv.io/pages/download
中文教程:https://book.openmv.cc/
中文函数文档(版本较老,有能力的建议直接阅读英文):https://docs.singtown.com/micropython/zh/latest/pyboard/index.html
openmv使用micropython语言,给出相关连接:
micropython官网:https://micropython.org/
micropython GitHub仓库:https://github.com/micropython/micropython
-
发表了主题帖:
【2024 DigiKey 创意大赛】“双光融合”智能热像仪第一部分:可见光部分实现
# 【2024 DigiKey 创意大赛】“双光融合”智能热像仪第一部分:可见光部分实现
## 一、openmv入门使用
### 1. openmvIDE
#### 1.1 软件安装
在官网上安装与自己使用的版本相同的软件
网址:[OpenMV下载](https://openmv.io/pages/download)
#### 1.2 了解IDE的功能与使用方式
(1)将openmv通过数据线连接到电脑,在IDE的右下角显示出一个可被连接的图标
(2)点击连接,最下方的信息中显示出板子与摄像头的型号、固件信息等
#### 1.3 demo运行测试
(1)点击左下角绿色播放按键运行代码,可以看到运行正常无报错,帧缓冲区中显示出拍摄到的图像,输出拍摄的帧率。
代码如下:
```python
# This work is licensed under the MIT license.
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Hello World Example
#
# Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!
import sensor
import time
sensor.reset() # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240)
sensor.skip_frames(time=2000) # Wait for settings take effect.
clock = time.clock() # Create a clock object to track the FPS.
while True:
clock.tick() # Update the FPS clock.
img = sensor.snapshot() # Take a picture and return the image.
print(clock.fps()) # Note: OpenMV Cam runs about half as fast when connected
# to the IDE. The FPS should increase once disconnected.
```
(2)运行结果如下: