一直出现Exception: IDE interrupt不知道怎么回事,下面是我的代码
-
import sensor, image, mjpeg, pyb, network, usocket, sys
import timeSSID ='OPENMV_AP' # Network SSID
KEY ='1234567890' # wifi密码(必须为10字符)
HOST = '' # 使用第一个可用的端口
PORT = 8080 # 任意非特权端口from pid import PID
from pyb import Servo
from pyb import Pin
pan_servo=Servo(1)
tilt_servo=Servo(2)
red_threshold = (13, 49, 18, 61, 6, 47)
pan_pid = PID(p=0.07, i=0, imax=90)
tilt_pid = PID(p=0.05, i=0, imax=90)
sensor.reset()设置传感器设置
sensor.set_contrast(1)
sensor.set_brightness(1)
sensor.set_saturation(1)
sensor.set_gainceiling(16)sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQVGA)
sensor.set_vflip(True)#将镜头倒转过来
sensor.skip_frames(10)
sensor.set_auto_whitebal(False)
clock = time.clock()
p_out = Pin('P0', Pin.OUT_PP)
p_1 = Pin('P1', Pin.IN, Pin.PULL_UP)#设置p_1为输入引脚,并开启上拉电阻
p_2 = Pin('P2', Pin.IN, Pin.PULL_UP)#设置p_2为输入引脚,并开启上拉电阻
p_3 = Pin('P3', Pin.IN, Pin.PULL_UP)#设置p_3为输入引脚,并开启上拉电阻
def find_max(blobs):
max_size=0
for blob in blobs:
if blob[2]*blob[2] > max_size:
max_blob=blob
max_size = blob[2]*blob[2]
return max_blob在AP模式下启动wlan模块。
#您可以阻止等待客户端连接
#print(wlan.wait_for_sta(10000))def start_streaming(s):
print ('Waiting for connections..')
client, addr = s.accept()
# 将客户端套接字超时设置为2秒
client.settimeout(2.0)
print ('Connected to ' + addr[0] + ':' + str(addr[1]))# 从客户端读取请求 data = client.recv(1024) # 应该在这里解析客户端请求 # 发送多部分head client.send("HTTP/1.1 200 OK\r\n" \ "Server: OpenMV\r\n" \ "Content-Type: multipart/x-mixed-replace;boundary=openmv\r\n" \ "Cache-Control: no-cache\r\n" \ "Pragma: no-cache\r\n\r\n") # FPS clock clock = time.clock() # 开始流媒体图像 #注:禁用IDE预览以增加流式FPS。 while (True): clock.tick() # 跟踪snapshots()之间经过的毫秒数。 img = sensor.snapshot().lens_corr(1.8) blobs = img.find_circles(threshold = 1500, x_margin = 10, y_margin = 10, r_margin = 10, r_min = 2, r_max = 100, r_step = 2) if blobs: p_out.high() print("输出信号1") max_blob = find_max(blobs) img.draw_circle(max_blob.x(), max_blob.y(), max_blob.r(), color = (255, 0, 0)) img.draw_cross(int(max_blob[0]), int(max_blob[1])) else: p_out.low() print("输出信号0") frame = sensor.snapshot() cframe = frame.compressed(quality=35) header = "\r\n--openmv\r\n" \ "Content-Type: image/jpeg\r\n"\ "Content-Length:"+str(cframe.size())+"\r\n\r\n" client.send(header) client.send(cframe) print(clock.fps())
while(1):
if p_1.value() == 0: #追踪
img_writer = image.ImageWriter("/stream.bin")
while(True):
clock.tick()
img = sensor.snapshot().lens_corr(1.8)
img_writer.add_frame(img)#写入图片
blobs = img.find_circles(threshold = 1500, x_margin = 10, y_margin = 10, r_margin = 10,
r_min = 2, r_max = 100, r_step = 2)
if blobs:
p_out.high()
max_blob = find_max(blobs)
pan_error = max_blob[0]-img.width()/2
tilt_error = max_blob[1]-img.height()/2
print("pan_error: ", pan_error)
img.draw_circle(max_blob.x(), max_blob.y(), max_blob.r(), color = (255, 0, 0))
img.draw_cross(int(max_blob[0]), int(max_blob[1]))
pan_output=pan_pid.get_pid(pan_error,1)/2
tilt_output=tilt_pid.get_pid(tilt_error,1)
print("pan_output",pan_output)
pan_servo.angle(pan_servo.angle()-pan_output)
tilt_servo.angle(tilt_servo.angle()+tilt_output)
else:
p_out.low()
if p_3.value() == 0:
img_writer.close()elif p_2.value() == 0: #图传 wlan = network.WINC(mode=network.WINC.MODE_AP) wlan.start_ap(SSID, key=KEY, security=wlan.WEP, channel=2) while (True): # Create server socket s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM) try: # Bind and listen s.bind([HOST, PORT]) s.listen(5) # Set server socket timeout # NOTE: Due to a WINC FW bug, the server socket must be closed and reopened if # the client disconnects. Use a timeout here to close and re-create the socket. s.settimeout(3) start_streaming(s) except OSError as e: s.close() print("socket error: ", e) #sys.print_exception(e)
-
Exception: IDE interrupt 不是错误,是IDE中断OpenMV的程序。不用理会。
每次IDE点击连接按钮,和停止按钮,都会有。
-
IDE为啥会一直中断,怎么解决
-
Exception: IDE interrupt 不是错误,不需要解决。