Openmv学习记录之串口的使用

本文主要介绍了如何使用Openmv的串口来传输数据。

先来看如下一段代码:


import sensor, image, time
from pyb import UART
import json

sensor.reset() 
sensor.set_pixformat(sensor.RGB565) # use RGB565.
sensor.set_framesize(sensor.QQVGA) # use QQVGA for speed.
sensor.skip_frames(10) # Let new settings take affect.
sensor.set_auto_whitebal(False) # turn this off.
clock = time.clock() # Tracks FPS.

uart = UART(3, 115200)

while(True):
    img = sensor.snapshot() # Take a picture and return the image.

    blobs = img.find_blobs([yellow_threshold])
    if blobs:
        print('sum :', len(blobs))
        output_str = json.dumps(blobs) # 在这里串口发送的数据中我们用了json格式,因为它使用起来简单方便,但缺点是占用的资源较多
        for b in blobs:
            # Draw a rect around the blob.
            img.draw_rectangle(b.rect()) # rect
            img.draw_cross(b.cx(), b.cy()) # cx, cy

        print('you send:',output_str)
        uart.write(output_str+'n')
    else:
        print('not found!')

在这里,我们用串口来不断发送blob数据,而寻找色块的过程跟opencv的思路相似,在前边也介绍过,只不过在openmv中更简便。

当用openmv的串口发送完数据后,接收端需要进行相应的解析才能得到想要的数据,前提是你需要知道发送数据的格式并撰写相应的函数。