10分钟快速上手

视频教程1 - OpenMV简介:https://singtown.com/learn/688
视频教程2 - 开箱介绍:https://singtown.com/learn/856
视频教程3 - 驱动、ide的安装与使用:https://singtown.com/video

下载软件

中国官网地址:http://openmv.cc/downloads (点击 软件下载)

美国官网下载地址:https://openmv.io/pages/download

Windows

下载后一直点击下一步,就正常安装完成了。

如果没有图像窗口,从右侧可以拖拽出来。

安装驱动

将OpenMV插到电脑。
正常情况下,会自动安装驱动,一切不需要手动安装。在设备管理器中会看到:

但是可能在一些电脑,驱动不会自动安装。
这时在设备管理器中会出现一个叹号,表示没有正常安装驱动。

这时就需要自己手动安装。
首先下载驱动: http://pan.baidu.com/s/1pKQd59L
解压到桌面,然后右键设备管理器中的这个设备,然后点升级驱动:

Windows驱动安装故障

如果出现下面的情况(此处极少发生,属于电脑故障):

OpenMV 驱动安装失败,90%的情况都是电脑的问题,精简版操作系统和使用了一些优化软件通常是引起此类问题的原因。OpenMV 驱动解决办法跟 arduino 类似。

这是因为精简版的 window 系统删掉了一些不常用的驱动信息引起的。

故障参考资料:
https://forum.singtown.com/topic/230

最后,建议:

  • 买电脑的时候,买带正版系统的电脑。
  • 打开Windows更新(默认就是打开的,不要手贱关掉它)。
  • 即使使用盗版的系统,请在MSDN上下载纯净完整版。
  • 千万不要用Ghost安装系统!90%的驱动问题,原因就是Ghost。

MacOS

下载完IDE软件,双击安装程序。一直点击下一步就可以。

如果提示说只能安装App Store和被认可的程序,那么在安全性与隐私里面设置成任何来源

Ubuntu

Ubuntu需要给下载的文件权限。然后双击安装。

运行hello world!

首先确保,IDE和驱动正常安装完成。

将OpenMV通过USB线插入电脑,此时会有一个U盘出现

打开OpenMV IDE。

重点看这张图。

  • 点击连接
  • 再点击运行

在右上角的图像窗里就正确显示图像了。
点击最下方的Serial Terminal,会弹出终端窗口。
同时,在Serial Terminal里会一直打印数据,这个是帧率。是在代码中第17行print(clock.fps())执行的结果。

追踪小球

将编辑框内的内容全部删掉,换成以下代码:

# 色块监测 例子
#
# 这个例子展示了如何通过find_blobs()函数来查找图像中的色块
# 这个例子查找的颜色是深绿色

import sensor, image, time

# 颜色追踪的例子,一定要控制环境的光,保持光线是稳定的。
green_threshold   = (   0,   80,  -70,   -10,   -0,   30)
#设置绿色的阈值,括号里面的数值分别是L A B 的最大值和最小值(minL, maxL, minA,
# maxA, minB, maxB),LAB的值在图像左侧三个坐标图中选取。如果是灰度图,则只需
#设置(min, max)两个数字即可。

sensor.reset() # 初始化摄像头
sensor.set_pixformat(sensor.RGB565) # 格式为 RGB565.
sensor.set_framesize(sensor.QQVGA) # 使用 QQVGA 速度快一些
sensor.skip_frames(time = 2000) # 跳过2000s,使新设置生效,并自动调节白平衡
sensor.set_auto_gain(False) # 关闭自动自动增益。默认开启的,在颜色识别中,一定要关闭白平衡。
sensor.set_auto_whitebal(False)
#关闭白平衡。白平衡是默认开启的,在颜色识别中,一定要关闭白平衡。
clock = time.clock() # 追踪帧率

while(True):
    clock.tick() # Track elapsed milliseconds between snapshots().
    img = sensor.snapshot() # 从感光芯片获得一张图像

    blobs = img.find_blobs([green_threshold])
    #find_blobs(thresholds, invert=False, roi=Auto),thresholds为颜色阈值,
    #是一个元组,需要用括号[ ]括起来。invert=1,反转颜色阈值,invert=False默认
    #不反转。roi设置颜色识别的视野区域,roi是一个元组, roi = (x, y, w, h),代表
    #从左上顶点(x,y)开始的宽为w高为h的矩形区域,roi不设置的话默认为整个图像视野。
    #这个函数返回一个列表,[0]代表识别到的目标颜色区域左上顶点的x坐标,[1]代表
    #左上顶点y坐标,[2]代表目标区域的宽,[3]代表目标区域的高,[4]代表目标
    #区域像素点的个数,[5]代表目标区域的中心点x坐标,[6]代表目标区域中心点y坐标,
    #[7]代表目标颜色区域的旋转角度(是弧度值,浮点型,列表其他元素是整型),
    #[8]代表与此目标区域交叉的目标个数,[9]代表颜色的编号(它可以用来分辨这个
    #区域是用哪个颜色阈值threshold识别出来的)。
    if blobs:
    #如果找到了目标颜色
        for b in blobs:
        #迭代找到的目标颜色区域
            # Draw a rect around the blob.
            img.draw_rectangle(b[0:4]) # rect
            #用矩形标记出目标颜色区域
            img.draw_cross(b[5], b[6]) # cx, cy
            #在目标颜色区域的中心画十字形标记

    print(clock.fps()) # 注意: 你的OpenMV连到电脑后帧率大概为原来的一半
    #如果断开电脑,帧率会增加

运行程序后

这个程序会根据green_threshold的阈值,进行色块查找。

更改阈值

那么如何自己更改这个阈值呢?我们怎么知道我们的物体的颜色阈值呢?

  • 数字列表项目首先在摄像头中找到目标颜色,在framebuffer中的目标颜色上左击圈出一个矩形
  • 在framebuffer下面的坐标图中,选择LAB Color Space。

  • 三个坐标图分别表示圈出的矩形区域内的颜色的LAB值,选取三个坐标图的最大最小值,即( 0, 60, -70, -10, -0, 30)

文件系统

文件系统是OpenMV(或者说MicroPython)特别优秀的特点。什么是文件系统呢?简单来说,就是各种文件夹和文件以树形结构排列,简单来说,就是你的U盘啦。而且在代码中可以使用路径来进行读入文件,创建文件等操作。

脱机运行

视频教程附二 - 脱机运行:https://singtown.com/video

那么问题来了?OpenMV支持文件系统有什么用呢?

答案是,相当方便!
OpenMV把内置Flash虚拟成一个文件系统,当你插入OpenMV到电脑上的时候,电脑会弹出一个U盘!里面就是OpenMV的文件系统。当你想烧录固件的时候,直接把脚本文件复制到这个“U盘”的main.py中。每次上电的时候,OpenMV会自动运行里面的main.py,这样就实现了脱机运行。

一键下载

在工具栏里,点击Save open script to OpenMV Cam, IDE就会自动将当前文件保存到main.py,很方便。

供电

OpenMV有两个电源输入端

  • VIN(有时也会标识为VCC)
  • USB输入

VIN输入为3.7V~7V,推荐5V。
USB和VIN可以同时供电。

OpenMV有一个电源输出端

  • 3.3V,这个电压是OpenMV的稳压器输出的,用于给其他传感器供电。 注意:不要给3.3V直接供电,没有内部芯片的保护,很容易烧毁。

SD卡

那如果我的代码有10万行,内置的flash不够用怎么办?我想保存图片怎么办?

答案是,可以使用SD卡!

那么SD卡怎么用呢?SD卡也是一个文件系统,当上电的时候,如果插入SD卡,那么SD卡的文件系统就会自动取代内置的Flash文件系统,每次上电,就会运行SD卡中的main.py啦,是不是很直观,很方便。SD卡最大支持32G的容量。

results matching ""

    No results matching ""