
Excam基于openmv的多功能机器视觉小相机
简介
Excam是一款基于openmv的多功能机器视觉小相机,搭载1.8寸180°翻转屏,电池,补光灯,RGB灯,按键,SD卡,支持多种摄像头,支持引脚拓展,兼容openmv固件
简介:Excam是一款基于openmv的多功能机器视觉小相机,搭载1.8寸180°翻转屏,电池,补光灯,RGB灯,按键,SD卡,支持多种摄像头,支持引脚拓展,兼容openmv固件开源协议
:CC BY-NC-SA 3.0
(未经作者授权,禁止转载)描述
Excam是一款基于openmv的多功能小相机
Excam主控采用stm32h7343(stm32h750),搭载1.8寸180°翻转屏,电池,补光灯,RGB灯,按键,SD卡,支持OV5640、OV2640摄像头,支持引脚拓展,兼容openmv固件(引出SWD接口),可以实现色块识别、人脸识别、边缘检测、模板匹配、特征点检测等功能,可以跑一些简单的神经网络模型。
演示视频:https://www.bilibili.com/video/BV1pt2TBgEvj/?spm_id_from=333.1387.homepage.video_card.click&vd_source=4e3f44990520382b49c509f140bd3ce4
开源资料链接:https://pan.quark.cn/s/85d9784fbe48?pwd=z7S5
解压方法:双击自解压文件“Excam开源资料.exe”解压即可,解压密码excam
GITHUB链接:https://github.com/physicsexpert/Excam
产品渲染图


外观
部分功能展示(色块识别、人脸识别、边缘检测、目标检测)
所有部件一览
内部结构
硬件说明
排针引脚功能(通过侧面SH1.0的接口引出,可以外接杜邦线或者排线):
系统框图:
主控采用主频为480Mhz的stm32h743作为主控芯片,也可以使用stm32h750,外接sd卡和摄像头,openmv固件支持的拓展引脚全部引出,在引脚附近还安排了esd防护器件,保证使用安全
系统电源树:
电源的输入端首先经过TI的TPS259261电子保险丝进行防护,电子保险相较于传统的保险丝方案,支持防过压防反接缓启动等综合防护功能。
锂电池充放电管理采用国产开关型充电ICTP5100,支持最大2A的充电电流,配合TI的TPS63070升降压芯片可以实现稳定的电源输出。
采用一键开关机芯片EC190708,长按三秒开机,之后长按三秒关机,以此类推配合电源路径选择电路,可以实现电源输入的自动切换,即使电源突然掉电也可以保证系统的稳定工作。
对于补光灯的驱动电路,我采用了TI的TPS61165恒流源方案,相比于mos直接驱动的方案,恒流源可以有效维持电流恒定,保证led稳定发光,此外TPS61165还支持pwm亮度调整,我们可以很方便的调整补光灯的亮度。
PCB结构:
项目由三块PCB构成,主控板为四层板,屏幕板、摄像头板为两层板,采用模块化设计,通过fpc软排线连接。
结构说明
调试器外壳采用3D打印制作,总共需要打印七个部分:主控顶壳,主控底壳,屏幕顶壳,屏幕底壳,镜头保护盖,按键(四个),拓展模块,需要用电烙铁压入M2热熔螺母配合M2螺丝进行固定。
固件下载
硬件焊接组装好之后,需要烧录openmv的固件:
1.下载STM32CubeProgrammer,下载地址:https://www.st.com/en/development-tools/stm32cubeprog.html
2.使用数据线连接Excam和电脑,按住boot键上电,打开设备调试器可以看到一个DFU设备
3.打开STM32CubeProgrammer,依次点击usb连接,选择openmv固件下载,推荐下载4.6.0版本的固件,也就是我发的压缩包里的固件
4.点击download,看到success之后说明烧录完成
5.重新上电连接openmvIDE就可以正常使用了
软件使用说明
1.Excam支持的摄像头有OV5640和OV2640,OV5640的帧数较高,OV2640的帧数较低,所以推荐使用OV5640,其他型号的摄像头未测试。
2.摄像头采集的画面反了的话可以使用下面这段代码将摄像头的画面转换成正确的方向
sensor.set_hmirror(True)
sensor.set_vflip(True)
屏幕的方向反了的话可以使用下面这段代码改变屏幕的显示方向
img_processed = img.scale(x_scale=1, y_scale=1, hint=image.ROTATE_90)
lcd.write(img)
3.使用Excam运行神经网络模型时,模型训练网站直接生产的代码是不能直接运行的,需要将第21行的
net = ml.Model("trained.tflite", load_to_fb=uos.stat('trained.tflite')[6] > (gc.mem_free() - (64*1024)))
改成
net = ml.Model("/sdcard/trained.tflite", load_to_fb=True)
同时需要将下载的ei_object_detection.py、labels.txt和trained.tflite这三个文件放到Excam的SD卡中,IDE中运行i_object_detection.py
4.在你的项目中如果需要屏幕显示的话,可以加入下面这段代码
import display
lcd = display.SPIDisplay()
lcd.write(img)
5.如果需要使用补光灯的话可以使用下面这段代码
import time
from pyb import Pin, Timer
light = Timer(2, freq=50000).channel(1, Timer.PWM, pin=Pin("P6"))
light.pulse_width_percent(50) # adjust light 0~100
6.固件版本需要和OpenMVIDE的软件版本匹配,不匹配的话可能会报错,不确定的话就装4.6.0这个固件版本
参考资料
OpenMV:https://github.com/openmv
CloseMV:https://oshwhub.com/bigbirdzzz/closemv4
补光灯方案:https://oshwhub.com/xu_duoduo/heng-liu-yuan-3-3led-bu-guang-deng
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论