请问想要控制单个舵机进行颜色追踪,使颜色的中心点固定在open mv IDE屏幕的Y轴中心上,使用的是追小球的云台的程序,程序pid.py和main.py应该怎么改?谢谢!
渔阳
@渔阳
渔阳 发布的帖子
-
颜色追踪
-
open mv与两个舵机连接的接线问题
用open mv控制两个舵机,接线是不是在控制一个舵机的基础上,将第二个舵机的信号线接open mv上 ,正负极线与第一个舵机一样同接电源正负极,最后是open mv 第一个舵机 第二个舵机,三者共地线
-
RE: 定时器的回调函数代码运行出错
@kidswong999 这是从一个大程序里简化出来的,也是出问题的地方。我想先让摄像头保持待机,当接收到串口发送的字符时转动舵机,同时进入下一个程序段完成第二个任务,第二个任务是一直进行的,直到串口发送来相应的字符时终止第二个任务的程序段,跳到进行第三个任务的程序段。
-
定时器的回调函数代码运行出错
import sensor, image, time from pyb import UART,Timer,Servo has_data = False # 初始化为没有数据读入 def is_data_coming(timer): global uart global has_data if uart.any(): has_data = True else: has_data = False sensor.reset() # Initialize the camera sensor. sensor.set_pixformat(sensor.RGB565) # use RGB565. sensor.set_framesize(sensor.QQVGA) # use QQVGA for speed. sensor.skip_frames(10) # Let new settings take affect. sensor.set_auto_whitebal(False) # turn this off. clock = time.clock() # Tracks FPS. s1=Servo(1) uart = UART(3, 115200) uart.init(115200, bits=8, parity=None, stop=1) timer = Timer(4) timer.init(freq=10) timer.callback(is_data_coming) while(True): if uart.readline()==b'a': print('yes') #s1.angle(-90) else: continue while(True): img = sensor.snapshot() #print(has_data) if has_data: data = uart.readline() if data==b'b': break else: print('not b') while(True): pass
利用定时器的回调函数检测串口是否有数据,在运行uart.readline()==b'a',当底下加上控制舵机代码s1.angle(-90)时即使发送字符b,第二个while中 if has_data也检测不到串口有数据;如果删除s1.angle(-90),发送字符b,if has_data成功检测到数据并跳出循环,这是为什么?
-
RE: open mv控制单个舵机
@kidswong999
import sensor, image, time
from pyb import UART,Timer,Servohas_data = False # 初始化为没有数据读入
def is_data_coming(timer):
global uart
global has_dataif uart.any(): has_data = True else: has_data = False
sensor.reset() # Initialize the camera sensor.
sensor.set_pixformat(sensor.RGB565) # use RGB565.
sensor.set_framesize(sensor.QQVGA) # use QQVGA for speed.
sensor.skip_frames(10) # Let new settings take affect.
sensor.set_auto_whitebal(False) # turn this off.
clock = time.clock() # Tracks FPS.s1=Servo(1)
uart = UART(3, 115200)
uart.init(115200, bits=8, parity=None, stop=1)timer = Timer(4)
timer.init(freq=10)
timer.callback(is_data_coming)
while(True):if uart.readline()==b'a': print('yes') #s1.angle(-90) else: continue while(True): img = sensor.snapshot() print(has_data) if has_data: data = uart.readline() if data==b'b': break else: print('not b') while(True): pass
利用定时器的回调函数检测串口是否有数据,在运行uart.readline()==b'a',当底下加上控制舵机代码s1.angle(-90)时即使发送字符b,第二个while中 if has_data也检测不到串口有数据;如果删除s1.angle(-90),发送字符b,if has_data成功检测到数据并跳出循环,这是为什么?