改了代码 还是不行 还是一样的问题
# 配送二维码
#
from pyb import Pin
import time
from pyb import UART
p7 = Pin('P7', Pin.OUT_PP)#设置p_out为输出引脚
p8 = Pin('P8', Pin.OUT_PP)#设置p_out为输出引脚
p9 = Pin('P9', Pin.OUT_PP)#设置p_out为输出引脚
# UART 3, and baudrate.
uart = UART(3, 115200)
import sensor, image, time, pyb
import json
blue_threshold = (22, 67, 9, 127, -128, -54)#蓝色的阈值
red_threshold = (41, 61, 42, 127, -128, 127)#红色的阈值
yellow_threshold = ( 60 ,10,-15,20,30,80)#黄色的阈值
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)#320*240
#sensor.set_framesize(sensor.VGA)
sensor.set_windowing((240, 240))
sensor.set_auto_gain(False) # 必须关闭此功能,以防止图像冲洗…
clock = time.clock()
def find_max(blobs):
max_size=0
for blob in blobs:
if blob.pixels() > max_size:
max_blob=blob
max_size = blob.pixels()
return max_blob #寻找最大色块并返回最大色块的坐标
def color():
blobs0 = img.find_blobs([blue_threshold])#让蓝色色块为blob0
blobs1 = img.find_blobs([red_threshold])#让蓝色色块为blob1
blobs2 = img.find_blobs([yellow_threshold])#让蓝色色块为blob2
#如果找到蓝色色块
if blobs0:
max_blob=find_max(blobs0)
img.draw_rectangle(max_blob.rect())#框选最大色块
img.draw_cross(max_blob.cx(), max_blob.cy())#在最大色块中心画十字
data="b"
data_out = json.dumps(set(data))#将data转化为json
uart.write(data_out +'\n')#写到缓冲区,由arduino进行读取
print('you send:',data_out)#写到串口监视端,让你能够看到数据
print('蓝色')#写到串口监视端,让你能够看到数据
elif blobs1:
max_blob=find_max(blobs1)
img.draw_rectangle(max_blob.rect())#框选最大色块
img.draw_cross(max_blob.cx(), max_blob.cy())#在最大色块中心画十字
data="r"
data_out = json.dumps(set(data))
uart.write(data_out +'\n')
print('you send:',data_out)
print('红色')#写到串口监视端,让你能够看到数据
global x
x=x+1
elif blobs2:
max_blob=find_max(blobs2)
img.draw_rectangle(max_blob.rect())#框选最大色块
img.draw_cross(max_blob.cx(), max_blob.cy())#在最大色块中心画十字
data="g"
data_out = json.dumps(set(data))
uart.write(data_out +'\n')
print('you send:',data_out)
print('黄色')#写到串口监视端,让你能够看到数据
else:
print('not found')
def erwm():
clock.tick()
img = sensor.snapshot()
img.lens_corr(1.8) # 1.8的强度参数对于2.8mm镜头来说是不错的。
for code in img.find_qrcodes():
img.draw_rectangle(code.rect(), color = (255, 0, 0))
bianhao=code.payload()
print(bianhao)
global a
a=a+1
print(a)
b=int(bianhao)
global x
x=x+1
if b==11:
p7.low()#设置p_out引脚为高
p8.low()#设置p_out引脚为高
p9.high()#设置p_out引脚为高
time.sleep_ms(3000)
p7.low()#设置p_out引脚为高
p8.low()#设置p_out引脚为高
p9.low()#设置p_out引脚为高
time.sleep_ms(1000)
print('二维码编号是11')
elif b==12:
p7.low()#设置p_out引脚为高
p8.high()#设置p_out引脚为高
p9.high()#设置p_out引脚为高
time.sleep_ms(3000)
p7.low()#设置p_out引脚为高
p8.low()#设置p_out引脚为高
p9.low()#设置p_out引脚为高
print('二维码编号是12')
elif b==21:
p7.high()#设置p_out引脚为高
p8.low()#设置p_out引脚为高
p9.low()#设置p_out引脚为高
time.sleep_ms(3000)
p7.low()#设置p_out引脚为高
p8.low()#设置p_out引脚为高
p9.low()#设置p_out引脚为高
print('二维码编号是21')
time.sleep_ms(1000)
elif b==22:
p7.high()#设置p_out引脚为高
p8.low()#设置p_out引脚为高
p9.high()#设置p_out引脚为高
time.sleep_ms(3000)
p7.low()#设置p_out引脚为高
p8.low()#设置p_out引脚为高
p9.low()#设置p_out引脚为高
print('二维码编号是22')
time.sleep_ms(1000)
a=0
b=0
n=0
x=0
y=0
z=0
print(a)
p7.low()#设置p_out引脚为高
p8.low()#设置p_out引脚为高
p9.low()#设置p_out引脚为高
clock.tick()
#img = sensor.snapshot()
#img.lens_corr(1.8) # 1.8的强度参数对于2.8mm镜头来说是不错的。
while(1):
if x==0:
erwm()
elif x==1:
img = sensor.snapshot()
color()
elif x==2:
while(1):
erwm()
改了代码 还是不行 还是一样的问题