Пример #1
0
def main():
    while True:
        clock.tick()
        cx = 0
        cy = 0
        pix = 0
        flag = 0
        img = sensor.snapshot()

        blobs = img.find_blobs([threshold[threshold_ch]],
                               x_stride=10,
                               y_stride=10,
                               pixels_threshold=100)
        if blobs:
            road = find_max(blobs)
            pix = road.pixels() // 250
            if pix > 255:
                pix = 255
            flag = 1
            cx = road.cx()
            cy = road.cy()
            img.draw_rectangle(road.rect())
        my_uart.send(flag, cx, cy, pix)
        if pix > 30:
            ledR.on()
        else:
            ledR.off()
        print(flag, cx, cy, pix, clock.fps())
Пример #2
0
def main():
    while True:
        clock.tick()
        pix = 0
        break_road = 0
        cnt1 = 0
        cnt2 = 0
        mode = 0
        hh = 0
        cc = 0
        img = sensor.snapshot()
        t = my_uart.read()
        if t!= None:
            mode = t >> 7
            offset = t & 0x7F
        blobs = img.find_blobs([red_threshold[red_ch]], roi = roi_red, x_stride=5, y_stride=10, pixels_threshold=200)
        if blobs:
            road = find_max(blobs)
            pix = road.pixels() * 255 // 3000
            if pix > 255:
                pix = 255
        if mode == 0:
            blobs = img.find_blobs([blue_threshold, black_threshold], roi = roi_blue[0], x_stride=3, y_stride=6, pixels_threshold=100)
            if blobs:
                road = find_max(blobs)
                break_road = road.pixels()*255//2500
        else:
            blobs = img.find_blobs([blue_threshold, black_threshold], roi = roi_blue[1], x_stride=3, y_stride=6, pixels_threshold=100)
            if blobs:
                road = find_max(blobs)
                break_road = (road.pixels()-150)*255//3400
        if break_road < 0:
            break_road = 0
        if break_road > 255:
            break_road = 255
        if mode == 1:
            blobs = img.find_blobs([white_threshold], roi = roi_white[chioce], pixels_threshold=20)
            if blobs:
                road = find_max(blobs)
                hh = road.h()
                cc = road.cy()+1
        else:
            roi_white2[0] = int(-0.3297*offset+106.2)-3
            blobs = img.find_blobs([white_threshold], roi = roi_white2, pixels_threshold=20)
            if blobs:
                road = find_max(blobs)
                hh = road.h()
                cc = road.cy()+1
        my_uart.send(pix,break_road,cc,hh)
        if pix > 30:
            ledR.on()
        else:
            ledR.off()
        if break_road > 170:
            ledB.on()
        else:
            ledB.off()
        print(clock.fps())
Пример #3
0
def main():
    while True:
        clock.tick()
        pix = 0
        break_road = 0
        img = sensor.snapshot()
        t = my_uart.read()
        if t != None:
            mode = t >> 7
            offset = t & 0x7F
        blobs = img.find_blobs([red_threshold],
                               roi=(47, 25, 87, 70),
                               x_stride=10,
                               y_stride=5,
                               pixels_threshold=200)
        if blobs:
            obstacle = find_max(blobs)
            pix = obstacle.pixels() * 255 // 3000
            if pix > 255:
                pix = 255
            img.draw_rectangle(obstacle.rect())
        blobs = img.find_blobs([blue_threshold, black_threshold],
                               roi=(0, 21, 33, 77),
                               x_stride=6,
                               y_stride=3,
                               pixels_threshold=100)
        if blobs:
            road = find_max(blobs)
            break_road = road.pixels() * 255 // 2500
            if break_road > 255:
                break_road = 255
            img.draw_rectangle(road.rect())
        my_uart.send(pix, break_road)
        if pix > 30:
            ledR.on()
        else:
            ledR.off()
        if break_road > 180:
            ledB.on()
        else:
            ledB.off()
        print(clock.fps())