讲在开头的话:
最初接触到OpenMV这款视觉模块是参加了一个学科竞赛设计到二维码的识别,了解到OpenMV可以进行二维码的识别,而且还可以自行定制二维码与条形码,于是开启了OpenMV的学习之路。这款视觉模块对新手是很友好的,上手速度快,能够快速应用到项目中去。但入手这个模块的前提是要知道Python的基本语法是使用。
1 学习的资源:
(1)学习OpenMV这款视觉模块最主要的场所是它的官网,网址如下,或者百度直接搜索即可
https://singtown.com/openmv/ 它的官网里面有基础的教程和学习视频,新手看视频就能学到它的一些基本操作了,如找圆呀、找矩形、巡线、识别二维码等视觉大模型与opencv_官网
(2)还有一个网站是“凡哥带你玩转OpenMV”,这个网站的使用例程在官网的基础上延伸了一些内容,适合有些基础的同学哟,网址就在下面☺
http://makermare.com:60010/example/feature/right-angle-detection.html
2 Python基础学习
学习OpenMV的基础那当然是要能看懂的它的程序写的是什么咯,OpenMV是基于Python语言来玩的,在玩它之前必不可少是要学习Python语言的一些基本语法。
在OpenMV的官网里面是有关于Python语言的内容的,也是为大家尽快入手这款视觉模块所准备的,有C基础的同学,学习python来也很快的,但需注意的是C面向的是过程、python面向的是对象。
想要入手OpenMV这款视觉模块,官网里的python语法的知识就足够了,只要掌握基本的语法及语法格式就ok。如果你不满足与官网里的python语言的知识的话,可以到慕课或者B站、我要自学网等网站进行更进一步的学习哟。
3 点亮LED灯
我们在学习51单片机、STM32、MSP430等单片机时,一般起初学的就是GPIO口,实际中就是点亮一个LED灯。现在OpenMV最新一代应该是OpenMV4,这个视觉模块的主控芯片是STM32F409(没记错的话是的,嘻嘻),学习的它的I/O就不要像学STM32F4那么麻烦了,具体的I/O介绍官网里都有,就不详细介绍啦。
别看就是点亮一个LED灯,这个LED灯也有大好处呢,对于新手来说,学会用点亮LED等来检测一段代码的逻辑是否正确也不失为一个好方法呀,我在使用OpenMV时,点亮一个LED给我判断逻辑与出现的问题提供了极大的方便呢。
OpenMV中点亮一个LED的方法有几种:
(1)pyb.LED(3)是OpenMV内部封装好的函数,可以到

import time, pyb
#将蓝灯赋值给变量led
led = pyb.LED(3) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
while(not usb.isconnected()):
    led.on()            #亮灯    
    time.sleep(150)     #延时150ms    
    led.off()           #暗灯

(2)LED(3).toggle()#蓝灯亮,A.toggle()该函数在官网的函数库中也可以找到

import pyb
from pyb import LED	
		LED(3).toggle()#蓝灯亮
		time.sleep(150)     #延时150ms  
        LED(3).off()#蓝灯灭

以上是两种不同的方法点亮LED灯但结果都一样。
注意:在点亮多个灯同时使用时,要注意在下个灯开启时关闭前面所点的灯哟;当然我们要是想要不同的颜色的灯就可以灯光混合咯(RGB中3原色的混合,同时点亮2个不同颜色的灯,可显示出其他的颜色,可以玩玩试试,颜色还挺好看的,哈哈!)
在点亮LED这里,我学到的一个重要理念是:OpenMV是一个集成的视觉模块,很多库函数都直接封装好了直接调用就可以使用了,不需要我们写很多的代码。
它相较于单片机的学习而言,像51单片机、STM32它们在编写代码时可以用keil在线仿真,可以用于检测代码的错误(简单的像设置flag即可),但是openmv不可以哦,它也有在线仿真平台,它的仿真平台能够检测你的代码是否正确,但是它无法进行逻辑判断(仿真平台大家接触到就知道了),而点亮LED灯就可以作为一个直观的形式来检测我们所写的代码逻辑或者其他的一些问题,例如:
以openmv与无人机的飞控板之间的相互工作为例(不适合新手)
OpenMV是一个视觉传感模块,相当于传感器,那么它免不了就要和其他芯片进行数据传送(当然这里的串口很重要,此处暂时不提),那么在与其他模块共同工作时如果出现了问题,那么是哪一方的错误呢?此时LED灯就起到作用啦,它可使大功臣。
拿openmv与飞控来讲,飞控控制OpenMV执行找圆、巡线的工作,可通过串口进行两者数据传输,控制OpenMV的工作状态,然而在飞控仿真的时候发现OpenMV那边没有数据传过来,那么这块的问题就有很多了:
1、飞控数据接收有问题
2、openmv数据传输有问题
3、openmv没有执行找圆或巡线操作等等
这时就可以用LED来判断是哪方的问题了,在openmv中执行找圆动作是点亮一个蓝灯、巡线时点亮个红灯,在测试的时候灯点亮了说明飞控发送数据没问题、openmv接收没问题、openmv执行了找圆或巡线操作,这样就大大缩小了检查范围,此处就不展开了。(这段话不适合新手)

又到了结尾啦,考研党要去复习啦,希望大家可以思考下LED的“大”用途,在这就不做详细介绍啦,讲起来就停不下来啦。越努力,越幸运!谢谢大家!