openmv识别二维码向串口发数据

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串口发数据的全过程

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在OpenMV识别二维码并将结果上传到串口屏,你可以使用OpenMV的QRCode模块进行二维码识别,并使用串口通信库将识别结果送到串口屏。下面是一个简单的示例代码,展示了如何在OpenMV上实现这个功能: ```python import sensor import image from pyb import UART # 初始化串口通信 uart = UART(3, 9600) # 选择合适的串口号和波特率 # 初始化相机 sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time = 2000) # 设置二维码识别器 qr_code = image.QRCode() while(True): img = sensor.snapshot() # 拍摄一张图像 # 在图像中查找二维码 codes = img.find_qrcodes() if codes: for code in codes: # 获取二维码数据 data = code.payload() # 识别结果给串口屏 uart.write(data + '\n') # 延迟一段时间再进行下一次识别 time.sleep(100) ``` 在这个示例中,我们使用OpenMV的`find_qrcodes`函数来查找图像中的二维码。然后,我们通过串口识别到的二维码数据送给串口屏。在Arduinomega2560上,你需要根据串口屏的通信协议和接收方式进行相应的处理。 请注意,这只是一个简单的示例代码,实际的应用可能需要更复杂的二维码识别算法和通信协议。你可能需要根据自己的需求进行修改和扩展。同时,确保OpenMV串口屏之间的串口通信设置正确,并在串口屏上实现相应的数据接收和显示功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值