openMV修改底层源码/算法——第一步

openMV自己修改源码、编译、升级固件

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

1. 环境配置

openmv代码需要在linux系统中编译,因此如果使用 win10以下 系统,则需要安装虚拟机。我使用的是win10,现在微软为win10做了linux子系统,下面以win10安装子系统为例,其它安装虚拟机自行百度VMware安装ubuntu方法。

其它安装方法参考网址:https://book.openmv.cc/firmware/upgrade.html

a. win10配置linux子系统环境

(1)在win10的cortana搜索“Microsoft Store”,打开微软的应用商店:Microsoft Store。
openMV修改底层源码/算法——第一步_第1张图片
在应用商店右上角搜索栏搜索“WSL”,选择获取这些应用。
openMV修改底层源码/算法——第一步_第2张图片
选择"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发一篇博文。

b. 配置openMV编译环境

完成以上步骤,理论上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)

2. 下载、编译源码

a. 下载、编译源码

openMV是开源项目,源代码在git中可以直接下载,所以可以直接用git clone命令直接从github仓库拉取源代码,命令:

git clone --recursive https://github.com/openmv/openmv.git

注意:源码必须要从git拉取,不能在浏览器中打开github下载zip压缩包,浏览器直接下载micropython目录会为空,这样下载的源码不全,是无法编译的。另外下载速度比较慢,要花较多时间去等。下载完成后,会保存在当前目录下的openmv文件夹里。
openMV修改底层源码/算法——第一步_第3张图片
在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

b. 修改openMV版本

openMV团队已将Makefile文件写的非常完整了,需要编译不同版本的固件时,我们只需要修改Makefile中的固件版本与自己的固件版本匹配即可,具体方法为
(1)在src目录下打开Makefile文件
(2)找到“TARGET”,将它的值设置成你的openmv版本即可
注意:修改OPENMV版本后,需要先 “make clean” 一下再进行make编译,否则由于链接文件不同会报错。如果嫌make速度慢,可用 make -j 进行多线程编译(例如下图,我的版本是openmv3)
openMV修改底层源码/算法——第一步_第4张图片

3. 升级固件

烧写方法可以直接参考官网升级固件中的 “DFU升级”,只是我们需要将dfu文件选择为刚刚编译出来的,上面编译出来的dfu文件会存放在src目录下的bulid/bin文件夹下,我们需要的是openmv.dfu
openMV修改底层源码/算法——第一步_第5张图片升级工具在安装OPENMV IDE时已经包含,路径为:OpenMV IDE\share\qtcreator\dfuse\DfuSeDemo.exe
openMV修改底层源码/算法——第一步_第6张图片然后用杜邦线将OPENMV的BOOT脚和RST脚短接,插上USB即自动进入dfu升级模式,用升级工具choose选择固件,upgrade 进行固件升级即可。
短接方式如下图(截图自星瞳科技网站:http://openmv.cc):
openMV修改底层源码/算法——第一步_第7张图片
升级工具:
openMV修改底层源码/算法——第一步_第8张图片
至此即可完成对openMV源码的编译和固件升级,接下来开始自己修改源码去折腾吧!其它操作参考网站:

https://book.openmv.cc/firmware/upgrade.html

变砖的处理方法

如果编译出来的固件版本不对,或者修改源码后导致固件不能正常工作,可直接用dfu升级方法升级官方固件进行恢复。也可自行修改源码,直到编出的固件烧录进去可以正常工作即可。

你可能感兴趣的:(openMV,python)