imuncle.github.io icon indicating copy to clipboard operation
imuncle.github.io copied to clipboard

嵌入式视觉OpenOV研发(一) 初版PCB设计

Open imuncle opened this issue 6 years ago • 4 comments

好几周没写文章了,主要是因为保研了嘛,又被学弟叫回战队去了,前段时间在忙着搞培训,制定规章制度之类的,当然最主要的还是因为我想搞一个大的。

今年的RoboMaster多了很多元素,据说今天出规则,不过现在我写文章的这个时刻还没出,估计再过几个小时就出了吧。今年主要多了导弹和雷达站元素,其中导弹需要嵌入式视觉的参与,于是我就参与了嵌入式视觉的研发。而我最熟悉的还是MCU的开发,所以希望能直接在MCU上运行视觉代码。

openmv

目前市面上最火爆的,运行在MCU上的视觉识别产品是openmv,它是完全开源的,github地址在这里,目前国内的官方代理商是星瞳科技

星瞳科技做的比较好的一点是把官方的openmv英文文档翻译成了中文,不过有些地方翻译的还不是太好。英文文档点这里,翻译的中文文档点这里

openmv内嵌了micropython,实现了在单片机上运行python,支持最新的python 3.X,还是非常不错的。回想起来前几年在MakerFair上看到的可以用python编程的单片机,估计就是内嵌了micropython,亏我当时还以为是那些公司自己写的中间层,没想到是直接用的开源的东西。

正是因为有了micropython,openmv留给用户的接口是python的接口,且基于Qt开发了一个挺舒服的IDE,用户直接在里面用python调用API就行了,上手非常快,效果看得见。目前主要是各种电子设计大赛中会见到它的身影。

那么既然已经有了openmv为什么还要自己另外做嵌入式视觉呢?原因主要有以下几点:

  • openmv留出来的接口都是固定的,虽说已经很多了,但是可能在一些很特殊的环境下无法很好完成工作
  • openmv内部是封装好的,优化是没法优化的
  • 用户代码用python写,写好之后是以字符串的形式传给单片机的,单片机还得挨个解析,然后调用相应的函数,资源再怎么也耗费了一些,感觉不爽
  • 要不是openmv用的 F7和H7系列,性能绝对不行
  • 最重要的一点,直接用openmv多无趣啊,RM比赛本就是挑战自我的,正好趁这次机会学点新东西

综上,我选择了自己研发。

OpenOV

先给自己的东西取个名字。其他两搞视觉的一个是opencv,一个是openmv,而我的打算用OmniVision公司的OV系列摄像头(其实openmv用的也是这个),所以我的就叫做OpenOV吧。

先列一下我所计划有的资源:

  • 摄像头×1
  • LCD×1
  • TF卡槽×1
  • LED指示灯×2
  • Jlink下载器集成
  • USB口×2

预计将要实现以下功能:

  • 图像采集和显示
  • 基本的图像处理,包括图像二值化、各种滤波、快速傅里叶变换、直方图转换、霍夫变换提取特征、canny边缘识别等,要是还有精力可以考虑实现一下级联分类器实现人脸识别之类的
  • TF卡读写,可存储图像或识别用的匹配模板等
  • 读卡器功能,通过USB口模拟读卡器,快速方便操作SD内的文件

就先规划这么多吧。

PCB设计

首先进行PCB设计。我使用的是AD,原理图很简单: image

开发板的尺寸也很迷你,大约是3cm×5cm。最后焊接组装后的成品如下: image

单片机外设选型

目前只是方案探索阶段,所以没有直接上高性能的MCU,而是直接延用了机器人上的STM32F405RGT6,不得不说资源太少了,不仅没有摄像头专用的DCMI,连驱动LCD的FSMC也没有,真的太惨了。

鉴于以上几点,最后我选择了一款SPI通信的0.96寸的LCD,摄像头选择了正点原子的带有FIFO的OV7725,实际效果还行,但帧率肯定比不过用DCMI驱动的摄像头。

考虑到F4的性能问题,同时也是为了适应小LCD,我最后把图像的输出尺寸降到了160×60,真的是非常小的图片了,希望F4能胜任。

未完待续

这只是OpenOV的第一步,基本的电路板测试无误后,接下来就是写代码了。

imuncle avatar Oct 15 '19 03:10 imuncle

马上来打call!

LUCKandII avatar Oct 15 '19 03:10 LUCKandII

tql

FENYUN323 avatar Oct 15 '19 15:10 FENYUN323

tql

FENYUN323 avatar Oct 15 '19 15:10 FENYUN323

T

q

l

Submartix avatar Nov 01 '19 13:11 Submartix