运动目标控制与自动追踪系统设计详解
1、赛题回顾
2、方案说明
提供两套设计方案,以下两套方案均以实现:
- 方案一:openmv+stm32单片机实现系统控制
- 方案二:openmv实现系统控制
本文以方案二进行说明。
3、硬件说明
本设计使用openmv实现整个系统的控制。
3.1、主控
- 主控使用openmv
- openmv识别图像后进行舵机的位置控制
3.2、云台
- 本系统使用二位云台对激光头进行控制。
3.3、舵机引脚说明
- 二位云台上有两个舵机,接线颜色与功能如下图所示:
3.4、激光灯
- 使用任意一款可以IO控制的激光的即可。
4、硬件连接说明
4.1、舵机接线说明
- X轴的舵机信号线接openmv的P8
- Y轴舵机信号线接openmv的P7
4.2、按键接线说明
- 按键1—一头接地一头接P0
- 按键2—一头接地一头接P1
- 按键3—一头接地一头接P2
- 按键4—一头接地一头接P3
5、openmv代码
def draw_rect_min():
global break0
while(True):
s1.angle(13.8+4,3000)#-16.5+4----13+4 原点 逆时针左上角
s2.angle(16.5*0.66666,3000)#270°舵机要乘以0.66666 +15.5----- -15.5
for i in range(40):
value0 = p_in0.value()
if value0==0 :
break0=1
break
time.sleep_ms(100)
print(i)
if break0==1 :
break0=0
break
s2.angle(-2.79*0.66666,3000)# 控制逆时针第二个点的x坐标
for i in range(40):
value0 = p_in0.value()
if value0==0 :
break0=1
break
time.sleep_ms(100)
print(i)
if break0==1 :
break0=0
break
s1.angle(2.5+4,3000)# 控制逆时针第三个点的y坐标
for i in range(40):
value0 = p_in0.value()
if value0==0 :
break0=1
break
time.sleep_ms(100)
print(i)
if break0==1 :
break0=0
break
s2.angle(16.5*0.66666,3000)# 控制逆时针第四个点的x坐标
for i in range(40):
value0 = p_in0.value()
if value0==0 :
break0=1
break
time.sleep_ms(100)
print(i)
if break0==1 :
break0=0
break