openMV是一款基于STM32的轻量级开源机器视觉项目,因为它已经移植了系统和microPython编译器,使开发者可以直接使用python3编程进行机器视觉相关学习和项目等。但官方的相关配件(屏幕等)价格比普通贵很多,而要更换自己的配件,或者修改底层驱动,增加算法等则需自己修改底层代码,编译出自己的固件进行烧录使用。以下为从github下载源码后进行编译和烧写方法。
参考连接:https://github.com/openmv/openmv/wiki
编译固件:https://book.openmv.cc/firmware/compile.html
升级固件:https://book.openmv.cc/firmware/upgrade.html
openmv代码需要在linux系统中编译,因此如果使用 win10以下 系统,则需要安装虚拟机。我使用的是win10,现在微软为win10做了linux子系统,下面以win10安装子系统为例,其它安装虚拟机自行百度VMware安装ubuntu方法。
其它安装方法参考网址:https://book.openmv.cc/firmware/upgrade.html
(1)在win10的cortana搜索“Microsoft Store”,打开微软的应用商店:Microsoft Store。
在应用商店右上角搜索栏搜索“WSL”,选择获取这些应用。
选择"Ubuntu"进行安装。等安装完成即可在应用列表中打开linux子系统。
(2)打开系统后需要一定时间安装,等待安装完成会提示设置用户名,密码等。
(3)设置完密码后可能不能获取root权限,即输入:su 回车会提示:
su: Authentication failure
此时只需要修改一次root密码即可,输入:sudo passwd ,按照提示重新设置密码,不出意外的话即可使用su获取root权限
(4)完成之后需要使用vim编辑器和gcc编译器,可直接使用以下命令安装:
sudo apt-get install vim
sudo apt-get install gcc
(5)安装完成后即可使用win10子系统功能,但此时vim的vimrc未配置,界面比较丑,可自行百度怎么配置vim,后续我将整理自己的vimrc发一篇博文。
完成以上步骤,理论上ubuntu系统已经可以正常使用,若遇到其它问题一般百度都可以找到解决方法。下面进行openMV编译环境的配置:
参考网址:https://github.com/openmv/openmv/wiki
(1)在ubuntu的命令窗口依次执行以下命令:
sudo apt-get remove gcc-arm-none-eabi
sudo apt-get autoremove
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install gcc-arm-embedded
sudo apt-get install libc6-i386
sudo apt-get install python2.7 python-dev python-pip
sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev
sudo apt-get install python-gtksourceview2
sudo pip install numpy pyserial2.7 pyusb1.0.0b2 Pillow
sudo apt-get install git
简单解释以下上面各命令的意思:
第一条:卸载原有的gcc-ram编译器,这个编译器普通STM32项目时使用,但openmv使用不同的编译器,如果不卸载则可能会产生命令冲突(根据提示进行,如果未安装的话可能提示没有这个软件,一样可以执行后面的命令)
第二条:删除无用的依赖包
第三条:添加镜像源(openmv编译器所在的镜像源)
第四条:更新一下镜像源数据
第五条:安装openMV编译器
第六-九条:安装需要用到的相关依赖库等
第十条:安装python2.7的库
十一条:安装git(下载代码要用git,后续代码管理等也可直接用git)
openMV是开源项目,源代码在git中可以直接下载,所以可以直接用git clone命令直接从github仓库拉取源代码,命令:
git clone --recursive https://github.com/openmv/openmv.git
注意:源码必须要从git拉取,不能在浏览器中打开github下载zip压缩包,浏览器直接下载micropython目录会为空,这样下载的源码不全,是无法编译的。另外下载速度比较慢,要花较多时间去等。下载完成后,会保存在当前目录下的openmv文件夹里。
在linux地shell窗口中,使用cd 命令进去openmv文件夹,执行以下命令:
sudo cp udev/50-openmv.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
完成后cd src进入源码文件夹,即可执行make进行编译。不出意外的话到此就可编译成功。
cd src
make
openMV团队已将Makefile文件写的非常完整了,需要编译不同版本的固件时,我们只需要修改Makefile中的固件版本与自己的固件版本匹配即可,具体方法为
(1)在src目录下打开Makefile文件
(2)找到“TARGET”,将它的值设置成你的openmv版本即可
注意:修改OPENMV版本后,需要先 “make clean” 一下再进行make编译,否则由于链接文件不同会报错。如果嫌make速度慢,可用 make -j 进行多线程编译(例如下图,我的版本是openmv3)
烧写方法可以直接参考官网升级固件中的 “DFU升级”,只是我们需要将dfu文件选择为刚刚编译出来的,上面编译出来的dfu文件会存放在src目录下的bulid/bin文件夹下,我们需要的是openmv.dfu
升级工具在安装OPENMV IDE时已经包含,路径为:OpenMV IDE\share\qtcreator\dfuse\DfuSeDemo.exe
然后用杜邦线将OPENMV的BOOT脚和RST脚短接,插上USB即自动进入dfu升级模式,用升级工具choose选择固件,upgrade 进行固件升级即可。
短接方式如下图(截图自星瞳科技网站:http://openmv.cc):
升级工具:
至此即可完成对openMV源码的编译和固件升级,接下来开始自己修改源码去折腾吧!其它操作参考网站:
https://book.openmv.cc/firmware/upgrade.html
如果编译出来的固件版本不对,或者修改源码后导致固件不能正常工作,可直接用dfu升级方法升级官方固件进行恢复。也可自行修改源码,直到编出的固件烧录进去可以正常工作即可。