目录
OpenMV 内部资料..................................................... 1
201705/08........................................................... 1
1、OpenMV 快速参考 .................................................. 6
1.1、OpenMV 摄像头 .............................................. 6
通用控制........................................................ 6
LED............................................................. 6
引脚和 GPIO ..................................................... 6
舵机控制........................................................ 7
外部中断........................................................ 8
计时器.......................................................... 8
PWM (脉宽调制).................................................. 9
ADC (模数转换).................................................. 9
DAC (数模转换)................................................. 10
UART (串口).................................................... 10
SPI 总线 ....................................................... 11
I2C 总线 ....................................................... 11
2、OpenMV 教程 ..................................................... 12
2.1、I/O 教程.................................................. 12
PYB 模块 ....................................................... 12
2.2、LED 控制.................................................. 12
2.3、OpenMV IDE 概述........................................... 13
文件菜单和示例................................................. 13
文字编辑....................................................... 13
连接到您的 OpenMV 摄像头........................................ 14
运行脚本....................................................... 14
帧缓冲区查看器................................................. 15
直方图显示..................................................... 15
串口........................................................... 15
状态栏......................................................... 16
工具........................................................... 16
打开终端....................................................... 16
机器视觉....................................................... 16
2.4、硬件设置.................................................. 17
USB 闪存驱动器说明 ............................................. 17
3、固件升级与更新.................................................. 17
3.1、更新固件.................................................. 17
4、基本使用........................................................ 21
4.1、软件与驱动安装............................................ 21
5、示例讲解........................................................ 24
5.1、01-基本功能............................................... 24
5.1.1、helloworld.......................................... 24
5.1.2、基本示例............................................ 25
5.2、02-基本驱动............................................... 25
5.2.1、ADC 读取示例 ........................................ 26
5.2.2、DAC 控制示例 ........................................ 26
5.2.3、IIC 从机............................................ 26
5.2.4、IIC 控制............................................ 29
5.2.5、LED 控制示例 ........................................ 29
5.2.6、PWM 控制示例 ........................................ 30
5.2.7、SPI 从机............................................ 31
5.2.8、SPI 控制 ............................................ 33
5.2.9、串口................................................ 35
5.2.10、定时器控制示例..................................... 35
5.2.11、引脚控制实例....................................... 36
5.2.12、舵机控制........................................... 36
5.2.13、超频示例........................................... 37
5.3、03-绘图................................................... 37
5.3.1、图像复制帧缓冲区.................................... 37
5.3.2、彩色绘制示例........................................ 38
5.3.3、绘制各种标识........................................ 39
测试绘制点..................................................... 40
测试绘制线..................................................... 40
测试绘制矩形................................................... 41
测试绘制圆..................................................... 42
测试绘制字符串................................................. 42
测试绘制十字架................................................. 43
测试绘制关键点................................................. 43
5.4、04-图像过滤器............................................. 44
5.4.1、中值滤波器.......................................... 44
5.4.2、中点过滤器.......................................... 44
5.4.3、侵蚀和扩张的........................................ 45
5.4.4、基本图像帧区别...................................... 46
5.4.5、平均过滤器.......................................... 47
5.4.6、彩色二进制过滤器.................................... 48
5.4.7、模式过滤器.......................................... 49
5.4.8、灰度二进制过滤器.................................... 50
5.4.9、灰度过滤器.......................................... 51
5.4.10、线性滤波........................................... 52
5.4.11、边缘检测........................................... 53
5.4.12、锐化滤镜........................................... 54
5.4.13、高级图像帧区别..................................... 55
5.5、05-拍照................................................... 56
5.5.1、人脸检测快照........................................ 56
5.5.2、快照................................................ 58
5.5.3、浮雕快照............................................ 59
5.5.4、移动监测快照........................................ 59
5.6、06-视频录制............................................... 61
5.6.1、GIF 录制人脸检测 .................................... 61
5.6.2、GIF 视频录制示例 .................................... 63
5.6.3、MJPEG 录像面部检测 .................................. 64
5.6.4、MJPEG 视频录制示例 .................................. 65
5.6.5、MJPEG 视频录制移动示例 .............................. 66
5.6.6、视频录制移动示例.................................... 68
5.7、07-人脸识别............................................... 70
5.7.1、LBP 面部识别 ........................................ 70
5.7.2、面部检测示例........................................ 70
5.7.3、面部跟踪示例........................................ 72
5.8、08-眼球跟踪............................................... 74
5.8.1、虹膜检测............................................ 74
5.8.2、面部眼睛检测示例.................................... 76
5.9、09-特征检测............................................... 77
5.9.1、Canny 和 Hough 变换 .................................. 77
5.9.2、HoG................................................. 78
5.9.3、光流示例............................................ 78
5.9.4、关键点对象跟踪...................................... 79
5.9.5、关键点描述符示例.................................... 81
5.9.6、局部二进制模式(LBP)示例........................... 82
5.9.7、模板匹配............................................ 83
5.9.8、边缘检测............................................ 85
5.10、10-颜色跟踪.............................................. 86
5.10.1、单色 RGB565 Blob 跟踪示例........................... 86
5.10.2、单色代码跟踪示例................................... 87
5.10.3、单色灰度 Blob 跟踪示例.............................. 88
5.10.4、图像直方图信息示例................................. 89
5.10.5、图像统计信息示例................................... 90
5.10.6、彩色 Blob 跟踪示例.................................. 90
5.10.7、彩色代码跟踪示例................................... 91
5.10.8、红外信标 RGB565 跟踪示例............................ 93
5.10.9、红外信标灰度跟踪示例............................... 94
5.10.10、自动 RGB565 颜色跟踪示例........................... 95
5.10.11、自动灰度色彩跟踪示例.............................. 96
5.10.12、黑色灰度线以下示例................................ 98
5.11、11-显示屏............................................... 100
5.11.1、显示屏............................................ 100
5.12、15-测试................................................. 101
5.12.1、FPS 测试脚本 ...................................... 101
5.12.2、自检.............................................. 101
5.12.3、色条测试示例...................................... 104
5.13、16-二维码............................................... 105
5.13.1、AprilTags 示例 .................................... 105
5.13.2、AprilTags 示例 .................................... 107
5.13.3、AprilTags 示例 .................................... 109
5.13.4、QRCode 示例 ....................................... 110
5.13.5、QRCode 示例 ....................................... 110
1、OpenMV 快速参考
1.1、OpenMV 摄像头
通用控制
pyb
import pyb
pyb.delay(50) # wait 50 milliseconds
pyb.millis() # number of milliseconds since bootup
pyb.repl_uart(pyb.UART(3, 9600)) # duplicate REPL on UA
RT(3)
pyb.wfi() # pause CPU, waiting for interrupt
pyb.stop() # stop CPU, waiting for external interrupt
LED
pyb.LED
from pyb import LED
led = LED(1) # red led
led.toggle()
led.on()
led.off()
这是 LED 引脚排列:
LED(1) -> 红色 LED
LED(2) -> 绿色 LED
LED(3) -> 蓝色 LED
LED(4) -> 红外 LEDs
引脚和 GPIO
pyb.Pin
from pyb import Pin
p_out = Pin('P7', Pin.OUT_PP)
p_out.high()
p_out.low()
p_in = Pin('P7', Pin.IN, Pin.PULL_UP)
p_in.value() # get value, 0 or 1
这是 GPIO 引脚分配:
Pin('P0') -> P0 (PB15) - 5V 耐压,3.3V 输出,高达 25 mA 驱
动。
Pin('P1') -> P1 (PB14) - 5V 耐压,3.3V 输出,高达 25 mA 驱
动。
Pin('P2') -> P2 (PB13) - 5V 耐压,3.3V 输出,高达 25 mA 驱
动。
Pin('P3') -> P3 (PB12) - 5V 耐压,3.3V 输出,高达 25 mA 驱
动。
Pin('P4') -> P4 (PB10) - 5V 耐压,3.3V 输出,高达 25 mA 驱
动。
Pin('P5') -> P5 (PB11) - 5V 耐压,3.3V 输出,高达 25 mA 驱
动。
Pin('P6') -> P6 (PA5) - 5V 耐压,3.3V 输出,高达 25 mA 驱
动。
Pin('P7') -> P7 (PD12) - 5V 耐压,3.3V 输出,高达 25 mA 驱
动。
Pin('P8') -> P8 (PD13) - 5V 耐压,3.3V 输出,高达 25 mA 驱
动。
在 OpenMV M7 上:
Pin('P9') -> P9 (PD14) - 5V 耐压,3.3V 输出,最高可达 25 mA
驱动。
不要在所有 I / O 引脚上总共超过 120 mA。
舵机控制
pyb.Servo
from pyb import Servo
s1 = Servo(1) # servo on position 1 (P7)
s1.angle(45) # move to 45 degrees
s1.angle(-60, 1500) # move to -60 degrees in 1500ms
s1.speed(50) # for continuous rotation servos
这是舵机引脚分配:
Servo(1) -> P7 (PD12)
Servo(2) -> P8 (PD13)
在 OpenMV M7 上:
Servo(3) -> P9 (PD14)
外部中断
pyb.ExtInt
from pyb import Pin, ExtInt
callback = lambda e: print("intr")
ext = ExtInt(Pin('P7'), ExtInt.IRQ_RISING, Pin.PULL_NON
E, callback)
这是 GPIO 引脚分配:
Pin('P0') -> P0 (PB15)
Pin('P1') -> P1 (PB14)
Pin('P2') -> P2 (PB13)
Pin('P3') -> P3 (PB12)
Pin('P4') -> P4 (PB10)
Pin('P5') -> P5 (PB11)
Pin('P6') -> P6 (PA5)
Pin('P7') -> P7 (PD12)
Pin('P8') -> P8 (PD13)
在 OpenMV M7 上:
Pin('P9') -> P9 (PD14)
计时器
pyb.Timer
from pyb import Timer
tim = Timer(4, freq=1000)
tim.counter() # get counter value
tim.freq(0.5) # 0.5 Hz