K210巡线循迹识别最大色块,发送坐标巡线

 前言:

计划使用k210给巡线,所以在学k210,学的很浅,有不对的地方欢迎指出,这里我其实是作为一个笔记

这份代码烧录MaixHub对应k210的固件即可

实物及效果:

巡线

摄像头初始化:

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.HQVGA)#摄像头将会输出分辨率为 240x160 像素的图像
sensor.skip_frames(time=2000)
sensor.set_vflip(1)#设置摄像头后置模式,即所见即所得

串口通信:

后续总的代码中串口通信k210发送的变量x的是ASCII码,串口助手直接接收会得到乱码

fm.register(6, fm.fpioa.UART1_RX, force=True)
fm.register(7, fm.fpioa.UART1_TX, force=True)
uart = UART(UART.UART1, 115200, read_buf_len=4096)


找出最大色块:

   blobs_1 = img.find_blobs(thresholds_1, pixels_threshold=100, area_threshold=100)

    # 如果找到黑色色块,则计算中心位置并向串口发送数据
    if blobs_1:
        # 找到面积最大的一个黑色色块
        max_blob = max(blobs_1, key=lambda b: b.pixels())

K210的代码:

基本每一句都有注释。

import sensor, image, time, lcd
from machine import UART
from fpioa_manager import fm

# 初始化摄像头和串口
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.HQVGA)
sensor.skip_frames(time=2000)
sensor.set_vflip(1)#设置摄像头后置模式,即所见即所得
lcd.init(freq=15000000)

fm.register(6, fm.fpioa.UART1_RX, force=True)
fm.register(7, fm.fpioa.UART1_TX, force=True)
uart = UART(UART.UART1, 115200, read_buf_len=4096)

# 定义阈值和颜色范围
thresholds_1 = [(0, 38, -60, 111, -76, 97)]

while True:
    img = sensor.snapshot()#使用摄像机拍摄一张图片并返回给img后续进行操作
    lcd.display(img)  # 将图像用LCD显示

    # 查找所有黑色色块   area_threshold是过滤小的,自己可以改    pixels_threshold像素的最小数量
    blobs_1 = img.find_blobs(thresholds_1, pixels_threshold=100, area_threshold=100)

    # 如果找到黑色色块,则计算中心位置并向串口发送数据
    if blobs_1:
        # 找到面积最大的一个黑色色块
        max_blob = max(blobs_1, key=lambda b: b.pixels())

        # 绘制矩形框
        img.draw_rectangle(max_blob.rect())
        #中心点XY
        img.draw_cross(max_blob.cx(), max_blob.cy())

        # 计算中心位置并向串口发送数据
        x = max_blob.cx()
        y = max_blob.cy()
        data = bytearray([0xb3,0xb3,x,y,0x0c,0x0d,0x0a]) # 要发送的数据,对应串口接收中断需要设置头尾判断
        uart.write(data)  # 发送数据
        print(x, y)

   # lcd.rotation(2)
    lcd.display(img)  # 将img,也就是那帧图像用lcd显示

                                                                                            下一次会附上stm32通信的代码

  • 12
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式学不会不改名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值