OpenMV摄像头是一款小巧,低功耗,低成本的电路板,它帮助你很轻松的完成机器视觉(machine vision)应用。你可以通过高级语言Python脚本(准确的说是 MicroPython ),而不是C/C++。Python的高级数据结构使你很容易在机器视觉算法中处理复杂的输出。但是,你仍然可以完全控制OpenMV,包括IO引脚。你可以很容易的使用外部终端触发拍摄或者或者执行算法,也可以把算法的结果用来控制IO引脚。 具体的介绍信息可以参看另一篇博文:OPENMV 开源项目简介
最新版OPENMV M7不仅仅可以完成复杂的视觉功能,它还可以通过板载的IO接口扩展许多外设,从另一个角度看你可以把他当成一个单片机使用,OPENMV M7采用STM32F765VI ARM Cortex M7 处理器,主频为216 MHz ,512KB RAM,2 MB flash. 所有的 I/O 引脚输出 3.3V 并且 5V 耐受。包含以下IO接口。
- 全速 USB (12Mbs) 接口,连接到电脑。当插入OpenMV摄像头后,你的电脑会出现一个虚拟COM端口和一个“U盘”。
- μSD卡槽拥有100Mbs读写,这允许你的OpenMV摄像头录制视频,和把机器视觉的素材从SD卡提取出来。
- 一个SPI总线高达54Mbs速度,允许你简单的把图像流数据传给LCD扩展板,WiFi扩展板,或者其他控制器。
- 一个 I2C总线,CAN总线, 和一个异步串口总线 (TX/RX) ,用来链接其他控制器或者传感器。
- 一个12-bit ADC 和一个12-bit DAC。
- 3个 I/O 引脚用于舵机控制.
- 所有的IO口都可以用于,中断和PWM(板子上有10个I/O引脚)。
- 一个RGB LED(三色), 两个高亮的 850nm IR LED(红外).
比如你可以通过两路IO口编写PWM输出驱动二轴云台:
# PWM Control Example
# This example shows how to do PWM with your OpenMV Cam.
import time
from pyb import Pin, Timer
i = 0
tim = Timer(4, freq = 50) # Frequency in Hz
# Generate a 1KHz square wave on TIM4 with 50% and 75% duty cycles on channels 1 and 2, respectively.
#Pitch_Control mid:7 min-up-2.5 max-down-8.5
ch1 = tim.channel(1, Timer.PWM, pin=Pin("P7"), pulse_width_percent = 6.5)
#Yaw_Control mid:7 min-up-2.5 max-down-8.5
ch2 = tim.channel(2, Timer.PWM, pin=Pin("P8"), pulse_width_percent = 7.5)
while (True):
time.sleep(5)
i += 1
#pulse = (i%1000)/1000 + 7.5
#ch2 = tim.channel(2, Timer.PWM, pin=Pin("P8"), pulse_width_percent = pulse)
控制板载RGB三色LED:
# LED Control Example
# This example shows how to control RGB LED.
from pyb import LED
led = LED(1) # 红led
led.toggle()
led.on()#亮
led.off()#灭
对于LED的硬件原理图可以参考下图
空闲GPIO定义如下: