请在这里粘贴代码import sensor, image, time
from pyb import Pin, Timer, LED
import utime
a = Pin('P4', Pin.OUT_PP)
b = Pin('P5', Pin.OUT_PP)
sensor.reset()
sensor.set_pixformat(sensor.RGB565) # 灰度更快
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(time = 2000)
clock = time.clock()
def tick(timer):
clock.tick()
#lens_corr(1.8)畸变矫正
print('2')
img = sensor.snapshot().lens_corr(1.8)
for c in img.find_circles(threshold = 3500, x_margin = 10, y_margin = 10, r_margin = 10,r_min = 2, r_max = 100, r_step = 2):
img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))
print(c)
a.high()
time.sleep_ms(200)
a.low()
for r in img.find_rects(threshold = 10000):
img.draw_rectangle(r.rect(), color = (255, 0, 0))
for p in r.corners(): img.draw_circle(p[0], p[1], 5, color = (0, 255, 0))
print(r)
b.high()
time.sleep_ms(200)
b.low()
print("FPS %f" % clock.fps())
tim = Timer(2, freq=1) # 使用定时器2创建定时器对象-以1Hz触发
tim.callback(tick) # 将回调设置为tick函数
while (True):
time.sleep_ms(1000)
print('1')
H
hgpz
@hgpz
0
声望
2
楼层
372
资料浏览
0
粉丝
0
关注
hgpz 发布的帖子
-
出现这个错误提示,而且无法执行 def tick(timer):中的程序,也没有图像
-
为什么我用官方的寻迹代码,然后没有回归直线?
import sensor, image, time from pyb import LED import car from pid import PID rho_pid = PID(p=0.4, i=0) theta_pid = PID(p=0.001, i=0) LED(1).on() LED(2).on() LED(3).on() sensor.reset() sensor.set_vflip(True) sensor.set_hmirror(True) sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QQQVGA) # 80x60 (4,800 pixels) - O(N^2) max = 2,3040,000. #sensor.set_windowing([0,20,80,40]) sensor.skip_frames(time = 2000) # WARNING: If you use QQVGA it may take seconds clock = time.clock() # to process a frame sometimes. while(True): clock.tick() img = sensor.snapshot().binary([THRESHOLD]) line = img.get_regression([(100,100,0,0,0,0)], robust = True) if (line): rho_err = abs(line.rho())-img.width()/2 if line.theta()>90: theta_err = line.theta()-180 else: theta_err = line.theta() img.draw_line(line.line(), color = 127) print(rho_err,line.magnitude(),rho_err) if line.magnitude()>8: #if -40<b_err<40 and -30<t_err<30: rho_output = rho_pid.get_pid(rho_err,1) theta_output = theta_pid.get_pid(theta_err,1) output = rho_output+theta_output car.run(50+output, 50-output) else: car.run(0,0) else: car.run(50,-50) pass #print(clock.fps()) 请在这里粘贴代码