imuncle / imuncle.github.io

大叔的个人小站
https://imuncle.github.io/
78 stars 17 forks source link

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

Open imuncle opened 4 years ago

imuncle commented 4 years ago

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

今年的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为什么还要自己另外做嵌入式视觉呢?原因主要有以下几点:

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

OpenOV

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

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

预计将要实现以下功能:

就先规划这么多吧。

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的第一步,基本的电路板测试无误后,接下来就是写代码了。

LUCKandII commented 4 years ago

马上来打call!

FENYUN323 commented 4 years ago

tql

FENYUN323 commented 4 years ago

tql

Submartix commented 4 years ago

T

q

l