当前位置: 首页 > news >正文

OpenMV的介绍和使用

OpenMV快速上手 | OpenMV硬件版本概述及HelloWorld

介绍

OpenMV是一个可编程的摄像头,提供很多现成的函数,简单调用就可以实现图像识别的功能。比如寻找色块、人脸检测、眼球跟踪、边缘检测、标志跟踪等。
检测算法可以脱机运行,并把检测结果通过各种协议发送出来。

开源地址:https://github.com/openmv/openmv

开发环境

在专门的OpenMV IDE上开发,从官网下载安装即可。使用MicroPython语言进行开发。
https://openmv.io/pages/download

版本对比和硬件购买


算法上OpenMV2不能使用apriltag,OpenMV3可以。版本越高,功能越多。
最大可支持分辨率:OpenMV2 320x240;OpenMV3 640x480;OpenMV4 752x480(MT9V034全局快门模组);OpenMV4 Plus 或 OpenMV RT1062 2592x1944.

可以直接从淘宝购买现成硬件。
也可以自己打板、焊接,硬件都是开源的,可以从github下载到开发板的原理图、pcb。
github仓库地址:https://github.com/openmv/openmv-boards。

自己打板的由于没有官方注册,每次连接IDE会弹窗,叉掉就行,不影响使用。

或者去跟官方购买License
每个License $15,折合人民币100元。
购买过License后,会发送一个邮件,将一串字符密钥发送给你。

可以填入密钥,然后软件会将这个密钥和你的板子绑定到一起。一个密钥只能对应一个OpenMV。

入门 helloworld

使用Micro-USB线连接OpenMV到电脑,驱动在安装IDE的时候已经自动装了。
查看是否有OpenMV的串口:

通过IDE连接OpenMV:点击此按钮连接,IDE会自动寻找OpenMV的串口进行连接。

如果遇到连接不上的问题:先检查驱动、再检查USB线、最后重刷OpenMV固件。
IDE中带了非常多的示例供参考,选择helloworld示例

运行helloworld示例

查看实时画面

功能

可实现功能

追踪颜色
机器人巡线
模版匹配
特征点检测
人眼追踪
HAAR,LBP,HOG算法
保存图像
录制视频
边缘检测
瞳孔识别
直线检测
光流
人脸分辨、人脸识别、二维码识别
AprilTag
识别数字、字母、汉字、形状

外设

作为一个单片机,控制IO口,IIC,SPI,CAN,PWM。定时器当然都是可以的。
而且,使用python语言,可以非常简单的调用它们,而不用考虑寄存器。

文件系统

文件系统是FatFS。

路径都是以根目录为起点。
当插入sd卡后,根目录就是SD卡;不插入sd卡,根目录就是内置的Flash。
如果需要,你可以在SD卡上,新建一个空文件:/flash/SKIPSD,这会避免挂载SD卡,当然,你可以使用os.mount来手动挂载SD卡。

可以保证图片到文件系统中,模板匹配等功能需要的图片和数据也是从文件系统中读取。

例程实操

寻找色块

AprilTag标记跟踪

模板匹配

特征点检测

脱机运行

OpenMV开机后默认执行文件系统中的main.py。

方法1

OpenMV连接到PC之后,会虚拟出一个U盘,替换其中的文件即可。

方法2

在IDE中直接保存当前打开的脚本到OpenMV中。

OpenMV重刷固件、固件升级

OpenMV重刷固件

重刷固件是通过STM32的DFU模式烧录固件。
烧录工具在IDE安装目录中提供:

固件也在IDE安装目录中:

用杜邦线连接BOOT引脚和RST引脚

按下复位键,让STM32进入DFU下载模式,PC会检测到STM32 DFU设备:

在Dfuse软件中选择dfu固件:

然后点击Upgrade进行升级:

升级成功:

拔掉杜邦线,重新插拔USB线,固件升级完毕。

OpenMV固件升级

IDE连接OpenMV之后,点击下放版本处,IDE会检测固件版本,并提示是否升级:

点击这里,会弹出一个对话框:是否升级到最新固件?


如果想擦除文件系统,选择Yes,如果想保留文件,选择No。

最后会提示:升级成功。

http://www.cnnetsun.cn/news/18943.html

相关文章:

  • 5步攻克VR字幕障碍:本地化提取终极指南
  • KEA DHCP服务器快速部署与实战指南:从零到生产环境
  • 千万不能错过!2023最火便携式随身WiFi品牌排行榜新鲜出
  • 基于SSM+Vue的高校竞赛和考级查询系统的设计与实现
  • ERROR: transport library not found: dt_socket ERROR: JDWP Transport dt_socket failed to initialize,
  • Eyingbao SaaS CMS platform与竞品对比:哪个更适合外贸企业建站?
  • 消费涅槃:家家有如何重塑“物超所值”的商业未来
  • 思源宋体实战宝典:从零开始掌握专业中文字体应用
  • 如何一键获取Steam游戏清单:新手玩家的完整下载指南
  • springboot基于vue的宠物用品商城的设计与实现_7d5lkhhb
  • Open WebUI:AI如何重塑现代Web开发流程
  • Vue3 组件入门:像搭乐高一样玩转前端!
  • 终极AEUX完整指南:3步实现设计到动画的完美转换
  • 企业级应用:Dify离线部署在金融行业的实践案例
  • Anystyle智能引用解析工具:科研文献管理的革命性突破
  • 传统vs现代:0603封装手工焊接与自动化贴片效率对比
  • Phigros网页模拟器完整使用教程:零基础打造专属音乐游戏
  • 企业级开源协作平台部署指南:规模化团队的高效解决方案
  • Font Awesome图标定制化:从全量加载到精准裁剪的工程实践
  • np.arange vs 循环:性能对比实测与优化建议
  • Font Awesome图标字体子集化:从性能瓶颈到极致优化的实战指南
  • [N_123]基于springboot房屋租赁管理系统
  • Vue Konva实战手册:构建高效画布应用的完全攻略
  • GPTBots.ai:从零开始构建企业级AI智能体,无需代码经验
  • 洗车行业小程序源码系统一体化智能后台,让管理清晰高效
  • OPENCV(python)--初学之路(十七)二进制鲁棒独立(BRIEF)和定向快速和轮换(ORB)
  • 为什么说PHP程序员一定要学会自我慈悲?
  • Blender终极指南:如何快速导入虚幻引擎PSK和PSA文件
  • 31、深入探索EXT2文件系统:操作、遍历与实现
  • C盘爆满急救指南:安全删除虚拟内存全流程