OpenMV:25传感器扩展板控制三个舵机


今天讲解一下如何使用OpenMV本身来控制三个舵机(借助传感器扩展板)

对于OpenMV或OpenMV4而言,我们可以使用P7P8P9三个PWM引脚来通过PWM来实现对舵机的控制,对于OpenMV2而言,只能使用P7或P8来实现两个舵机的控制,

我们可以通过控制PWM的占空比来控制舵机的速度,或是直接控制舵机转动到某个角度,如sevor.angle(90)控制舵机转到90°的位置

关于舵机的供电,我们推荐使用四节1.2V的镍氢电池(每节电池电压为1.2V)

在这里插入图片描述


单个舵机转动

# 从pyb导入Servo
from pyb import Servo

s1 = Servo(1) # 设置s1=Servo(1)来控制第1个舵机(P7)

while(1):
    s1.angle(45) # 让第 1 个舵机转动到45°的位置
    
    # 设置延迟
    time.sleep(100) # 延迟10ms
    s1.angle(-60, 1500) # 在 1500ms 内转动到 -60°
    
    time.sleep(100 # 延迟100ms
    s1.speed(50) # 设置舵机的速度为50
        # 通常速度的设置是运用在"360°的舵机"上,因为其可以连续地转动
     

  • Servo(1) -> P7 (PD12)
  • Servo(2) -> P8 (PD13)

OpenMV3 M7 / OpenMV4 H7上增加:

  • Servo(3) -> P9 (PD14)

OpenMV4 H7 Plus P9不能使用PWM


多个舵机转动

和单个同理,定义多个舵机即可s1 = Servo(1) s2 = Servo(2)

# 从pyb导入Servo
from pyb import Servo

s1 = Servo(1)   # 设置s1=Servo(1)来控制第1个舵机(P7)
s2 = Servo(2)   # 设置s2=Servo(2)来控制第2个舵机(P8)
s3 = Servo(3)   # 设置s3=Servo(3)来控制第3个舵机(P9)

while(1):
    s1.angle(45) # 让第 1 个舵机转动到45°的位置 
    # 设置延迟
    time.sleep(100) # 延迟10ms
    
    s1.angle(-60, 1500) # 在 1500ms 内转动到 -60°  
    time.sleep(100 # 延迟100ms
  
    
    s2.angle(45) # 让第 2 个舵机转动到45°的位置 
    # 设置延迟
    time.sleep(100) # 延迟10ms
    
    s2.angle(-60, 1500) # 在 1500ms 内转动到 -60°  
    time.sleep(100 # 延迟100ms
  
    
    s3.angle(45) # 让第 3 个舵机转动到45°的位置 
    # 设置延迟
    time.sleep(100) # 延迟10ms
    
    s3.angle(-60, 1500) # 在 1500ms 内转动到 -60°  
    time.sleep(100 # 延迟100ms

猜你喜欢

转载自blog.csdn.net/m0_59466249/article/details/125389361