import sensor, image, time, os, tf, math, uos, gc
import json,pyb
from pyb import UART,LED
green_threshold = (0, 58, -49, -19, 39, -17)
red_thresholds = (0, 100, 7, 127, -128, 127)
led3=pyb.LED(3)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((240, 240))
sensor.skip_frames(time = 2000)
uart = UART(3,115200)
uart.init(115200,bits = 8,parity = None,stop = 1)
net = None
labels = None
min_confidence = 0.5
try:
net = tf.load("trained.tflite", load_to_fb=uos.stat('trained.tflite')[6] > (gc.mem_free() - (64*1024)))
except Exception as e:
raise Exception('Failed to load "trained.tflite", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')')
try:
labels = [line.rstrip('\n') for line in open("labels.txt")]
except Exception as e:
raise Exception('Failed to load "labels.txt", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')')
colors = [
(255, 0, 0),
( 0, 255, 0),
(255, 255, 0),
( 0, 0, 255),
(255, 0, 255),
( 0, 255, 255),
(255, 255, 255),
]
clock = time.clock()
U1=1
while(True):
clock.tick()
img = sensor.snapshot()
while(U1):
clock.tick()
img = sensor.snapshot()
for i, detection_list in enumerate(net.detect(img, thresholds=[(math.ceil(min_confidence * 255), 255)])):
if (i == 0): continue
if (len(detection_list) == 0): continue
print("********** %s **********" % labels[i])
for d in detection_list:
[x, y, w, h] = d.rect()
center_x = math.floor(x + (w / 2))
center_y = math.floor(y + (h / 2))
print('x %d\ty %d' % (center_x, center_y))
#zuo[0]=math.floor(x + (w / 2))
#zuo[1]=math.floor(y + (h / 2))
print(labels[i])
uart.write(labels[i])
led3.on()
u1=0
print(clock.fps(), "fps", end="\n\n")
上面是openmv的函数,下面是32
void Openmv_Receive_Data(int16_t data)
{
// static u8 state = 0;
openmv2=data; //定义一个变量接收openmv发送的数据
}
OLED_ShowNum(70,20,openmv2,3,12);
openmv的串行终端上可以正确打印,但是32上不行