开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
我们在硬件调试的过程中,经常需要排查哪个电子元器件发热
用传统方法会弄脏PCB不说,一些小的发热点很难通过这种方法定位
而大家开源的热成像作品,
有的基于MLX90640,颜值高,但分辨率低
有的基于海康4117,分辨率高,但APP用着不够流畅
基于此,我就想结合二者的优势,设计了这个热成像相机
它不仅有着海康4117的分辨率和25Hz热成像刷新率,还足够流畅,
几乎所有动画都能达到90Hz刷新率,并支持打断动画
并且,软硬件(包括源代码和编译器)全部开源!
B站演示视频:https://www.bilibili.com/video/BV1e4xeeCEGL
Github开源链接:https://github.com/diylxy/LiThermal
它的功能有:
拍照录像
获取传感器原始数据
查看相册
查看温度最大值、最小值、中心值
温度统计图
修改调色板
重定向后台管理页面,可通过电脑访问
系统配置
SoC:全志 T113-S3
主频:1 GHz * 2 核
内存:128MB
屏幕:2.4寸 TFT LCD, 320x240 @ 94.3 Hz
热成像刷新率:25Hz
测温范围:0-106.4 ℃ (据说可以测到-20 ℃,但内置光标似乎只能显示到0℃)
传感器分辨率:160*120
操作系统:全志Tina Linux(定制版OpenWRT)
GUI:LVGL 8
复刻教程
注意:本作品焊接难度较大,收到的问题反馈绝大部分也是因为焊接问题,因此复刻前请做好心理准备。
附件因为平台限制50M,因此用的分卷压缩,解压方法请百度“zip分卷解压”,或者到这里下载需要的工具。
UDISK.tar为软件部分要复制到MTP根目录的压缩包,由Github Action生成,开源平台这边修改需要审核,因此建议到这里根据说明下载最新版。
硬件
PCB打样参数:双面板,板厚1.2mm
元器件可对照BOM表购买,匹配不到可用同型号代替,另外:
因PCB设计过程中改了好几版,贴片MOS管、电阻选型比较乱,NMOS可以使用BOM表中的任何一个,PMOS同理;屏幕背光MOS管栅级电阻可以用100K 0402代替。
EA3036 3个FB引脚上的100nF电容改为220pF,也可以不焊(焊了不影响功能)
32.768kHz晶振和旁边的电阻电容可以不焊(焊了不影响功能)
NC表示不焊接元器件,那里用来接电池
焊接前请再三确认元器件方向!
务必先焊接除T113以外的元器件,烧录51单片机固件,按下面的说明,测量3.3V、1.5V、0.9V全部正常再焊T113,否则若EA3036的FB虚焊将会直接烧坏T113。
屏幕购买链接(不要用尖锐物压,会出现坏点,出现了放置一段时间就会恢复):https://item.taobao.com/item.htm?id=577414614398
屏幕连接器立创商城的那种个人感觉不太好焊,可以买这个或者同款:https://item.taobao.com/item.htm?id=717518604324
本作品用到的热成像模组:海康威视TB4117,如果是UVC模式还需要一个88179芯片的网卡来改,或者让卖家帮改NCM模式。
视频发布时海康TB4117参考价格:290元。个人感觉现在性价比不高了,不过手头如果有4117还可以拿来改造一下。
焊接完成后,用USB转串口连接PCB上STC8单片机旁边的测试点(R-TX,T-RX,GND-任意GND网络上的焊点),用USB线连接电脑和PCB的USB口。打开STC-ISP,用默认设置烧录固件51单片机电源管理芯片/Objects/power.hex
。
提示:STC51单片机烧录时需要重新上电,具体请百度:STC单片机烧录教程
烧录完成后,重新上电,测量EA3036三路电源是否均无输出;按住SW1
三秒,测量三路电源电压是否与原理图中网络名相同。
如一切正常,焊接T113-S3,并检查是否有连锡。
软件
相关软件资料在文末附件(如果可能,优先在GitHub下载最新版)
硬件全部完成后,需要使用Phoenix Card向TF卡中烧录固件。打开Phoenix Card软件,插入32G及以下的TF卡并拔出无关USB存储设备,选择img文件,选择“启动卡”,“烧卡”,等待烧录完成。
烧录完成后,将卡插入PCB上的TF卡槽,插入USB到电脑并按开机键(SW1)3秒,如果屏幕亮起并显示开机Logo,表示一切正常。
如果无显示,或白屏,但电脑有USB设备闪过,请等待3分钟,并根据情况操作:
1、如果3分钟内电脑找到了MTP设备,说明屏幕接口或T113与屏幕相关的地方没焊好。
2、如果没有找到MTP设备,但现象和没装驱动一样,说明TF卡部分没焊好或不支持这个TF卡。
3、如果白屏,但屏幕亮度会变一下,同1。
如果一切正常,把UDISK.tar解压后产生的“UDISK”文件夹里的内容(3个文件)复制到热成像产生的MTP设备的根目录。此时重启设备,应该可以看到开机动画,但会卡在问号处,因为我们还没有连接热成像模组。
摄像头设置
需要确保管理员密码为:Ab123456
热成像模组通过USB连接到PCB,USB所需的4条线在PCB丝印层均有说明。连接前需要通过88179网卡把海康4117设置为NCM模式,通过海康威视“设备网络搜索”(可以在海康威视官网找到,不要用密码重置工具,那个要企业认证)将模组的IP地址设置为192.168.64.64,管理员密码设置为Ab123456(提示弱密码可以先设置一个符合要求的,然后在网页后台用户管理修改admin密码为这个)。
如果你的海康4117是UVC模式,可以参考这个中关于88179的描述,改回NCM模式并设置IP地址,并使用Linux虚拟机连接,设置管理员密码。 如需重置密码,需要到海康官网“密码重置”注册一个账号,并使用“设备网络搜索”通过导出特征文件的方式重置密码。
下面是摄像头相关设置,建议按照图片顺序操作,其中IP地址可以在“设备网络搜索”修改,管理员密码改不了可以先设置一个强密码,然后到4117的web里改。
视频编码:
Web认证:
视频旋转(其中视频制式没有显示就不用改):
NCM模式:
IP地址(也可以在web里改):
再次上电,如果一切正常,屏幕应该会显示热成像画面。
外壳组装
4117模组拆开后按照下图组装,注意安装方向
第一步安装热成像镜头部分,从外往里(此时需要先断开排线,固定好后再连接):
第二步连接好主板排线,向右上方翻折,注意排线方向:
从源代码编译
能够修改源代码,根据自己需求增删功能的作品才能被称为是开源项目。
本项目的全部发行版通过Github Action编译发布,因为Github Action的yml文件本身是开源的,也就是说项目可以按照这个yml在Ubuntu 22.04 LTS 64位系统上编译,也可以Fork两个仓库并利用Github Actions在云端编译。具体方法:
https://github.com/diylxy/LiThermal_Compiler?tab=readme-ov-file#手动编译教程
以下已知问题来自网友,供大家参考。
按照本文“摄像头设置-图-Web认证”设置,记得点保存。
按照本文“摄像头设置-图-视频编码”设置。
按照本文“摄像头设置-图-视频旋转”设置。
先改一个强密码,然后进web里面修改。
更新最新LiThermal固件,位于LiThermal_Compiler中的GitHub Actions
MTP只支持Windows(Linux似乎会死机),如需在其它系统下复制,参考以下命令。
adb push LiThermal /mnt/UDISK
adb push thermalcamera.sh /mnt/UDISK
adb push BSOD /mnt/UDISK
adb shell sync
adb shell reboot
可以配置端口转发后进入海康后台修改。
参考配置端口转发,使用ifconfig配置usb0网卡静态IP到海康4117网段,然后利用ping和curl找到4117的IP,并重定向它的80端口到电脑,在浏览器web后台修改IP。这需要一些Linux基础。
建议改用短线或屏蔽线。或尝试用干扰较小的电源,如充电宝、可调电源等为4117供电。
贡献者:风雪里悠悠长白
检查焊接吧。
商业及其它用途
本作品以GPL3.0协议开源,允许商用,但必须保留程序中的开机logo,同时在详情页标注原作者:Bilibili 小李电子实验室。并请自行解决因此带来的一切售后问题。
本作品未开源完整的Tina Linux操作系统,一是太大,整个Tina Linux源码和相关工具链有差不多8GB;二是防止有人移除水印。但操作系统只提供设备驱动并实现开机水印。得益于Linux系统的特性,开源的代码完全独立于硬件,可以在任何使用FrameBuffer(ls /dev/fb0,但现在用的全志的驱动,其它SoC只需要修改初始化代码)、event设备(如键盘)和TTY串口(如CH340)的Linux系统上编译运行。其它非商业用途需移除水印的,请自行编译操作系统并移植驱动。
PCB设计参考: FunnyPi-全志T113-S3卡片电脑
软件开发参考: 全志T113-S3智能家居86屏
和其它优秀的开源硬件项目,
评论