TTL转串口需要三根线,TXD(发送端),RXD(接收端),GND(地线)
openmv与串口接线方式
串口的TXD(发送端)与openmv的RXD(接收端)进行匹配,置于openmv的接收端是哪个端口自己设定
串口的RXD(接收端)同理与openmv发送数据的那个端口进行连接
GND接到对应的GND
这个代码是向串口发送二维码信息(四个二维码分别包含前后左右四个信息),这里自己设定了以下波特率9600,所以在打开串口时需要设置波特率为9600
# 二维码例程
#
# 这个例子展示了OpenMV Cam使用镜头校正来检测QR码的功能(请参阅qrcodes_with_lens_corr.py脚本以获得更高的性能)。
import sensor, image, time,pyb
import ustruct
from pyb import UART
led3 = pyb.LED(3) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
led1 = pyb.LED(1) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
sensor.reset() # 重置感光元件,重置摄像机
sensor.set_pixformat(sensor.RGB565) # 设置颜色格式为RGB565,彩色,每个像素16bit
sensor.set_framesize(sensor.QVGA) # 图像大小为QVGA
sensor.skip_frames(time = 2000) # 跳过n张照片,在更改设置后,跳过一些帧,等待感光元件变稳定。
sensor.set_auto_gain(False) # 必须关闭此功能,以防止图像冲洗…
clock = time.clock()
uart = UART(3, 9600)
uart.init(9600,8,None,1)
while(True):
clock.tick()
img = sensor.snapshot() # 截取感光元件中的一张图片
led1.on()
led3.on()#LED指示openmv正在工作
#采用软件畸变矫正,因为OpenMV标配自带的镜头是2.8mm聚焦的鱼眼镜头,会存在桶形畸变,也就是鱼眼效果,会影响识别二维码
#畸变矫正运算量比较大,可能会影响帧率。对帧率有要求,可购买无畸变镜头,就无需软件畸变矫正
img.lens_corr(1.8) # 1.8的强度参数对于2.8mm镜头来说是不错的。
for code in img.find_qrcodes(): # 进行二维码检测
img.draw_rectangle(code.rect(), color = (255, 0, 0))
print(code) # 输出二维码内容
if(code.payload()=='前'):
at=1 #识别内容
if(code.payload()=='后'):
at=2
if(code.payload()=='左'):
at=3
if(code.payload()=='右'):
at=4
data=bytearray([at]) #需要转换成十六进制数
uart.write(data)
串口出现这个界面就说明已经能够成功发送数据了
以上就是openmv串口发数据的全过程