45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
# -*- coding:utf-8 -*-
|
||
# @Author len
|
||
# @Create 2023/12/4 19:25
|
||
import sensor
|
||
import image
|
||
import lcd
|
||
import time
|
||
from machine import Timer, PWM, UART, Timer
|
||
def Servo(angle):
|
||
'''
|
||
说明:舵机控制函数
|
||
功能:180度舵机:angle:-90至90 表示相应的角度
|
||
360连续旋转度舵机:angle:-90至90 旋转方向和速度值。
|
||
【duty】占空比值:0-100
|
||
'''
|
||
#PWM通过定时器配置,接到IO17引脚
|
||
tim_pwm = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
|
||
S1 = PWM(tim_pwm, freq=50, duty=0, pin=17)
|
||
S1.duty((angle+90)/180*10+2.5)
|
||
|
||
Servo(-75)
|
||
|
||
|
||
|
||
THRESHOLD = (5, 70, -23, 15, -57, 0)
|
||
clock = time.clock()
|
||
lcd.init()
|
||
sensor.reset()
|
||
sensor.set_pixformat(sensor.RGB565)
|
||
sensor.set_framesize(sensor.QVGA)
|
||
#sensor.set_vflip(1) #开启图像反转
|
||
sensor.set_vflip(0) #关闭图像反转
|
||
sensor.run(1)
|
||
sensor.skip_frames(30)
|
||
min_degree = 0
|
||
max_degree = 179
|
||
|
||
while True:
|
||
clock.tick()
|
||
img = sensor.snapshot()
|
||
for l in img.find_lines(threshold = 2000, theta_margin = 25, rho_margin = 25):
|
||
if (min_degree <= l.theta()) and (l.theta() <= max_degree):
|
||
img.draw_line(l.line(), color = (255, 0, 0))
|
||
lcd.display(img)
|