第六章 K210 实现驱动舵机代码详细解析(Maix bit)

前言:K210 官网实例代码真的很少,不像openmv一样有很多视觉小车循迹,云台跟踪小球是示例,因此我基于openmv的实例代码,使用K210实现与openmv云台追踪物体一样的功能。

下面是是第一部分内容:实现驱动舵机的教程

                        ---K210驱动舵机代码详细教程---

      二维云台:就是用俩个舵机拼装起来的东西(之后更新K210关于云台跟踪物体需要的东西)

      想学习K210视觉云台跟踪物体的兄弟可以关注我,后续更新其内容教程

         

  示例代码

from machine import Timer, PWM

# 创建 Timer 对象
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)

# 创建 PWM 对象,设置频率为 50Hz,初始占空比为 0,连接到引脚 6
servo = PWM(tim, freq=50, duty=0, pin=6)

# 控制舵机转动到特定角度
# angle 参数为角度值,范围通常是 0-180
def set_servo_angle(angle):
    # 转换角度到占空比
    duty = (angle + 90) / 180 * 10 + 2.5
    servo.duty(duty)

# 设置舵机角度为 90 度
set_servo_angle(-45)

  解析:

from machine import Timer, PWM

    导入 machine 模块中的 Timer 和 PWM 类,用于生成 PWM 信号

tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
  • 创建一个 Timer 对象,用于产生 PWM 信号。
  • Timer.TIMER0 表示使用定时器 0。
  • Timer.CHANNEL0 表示使用通道 0。
  • mode=Timer.MODE_PWM 设置模式为 PWM
servo = PWM(tim, freq=50, duty=0, pin=17)

  • 使用 Timer 对象创建一个 PWM 对象。
  • freq=50 设置 PWM 频率为 50Hz,这是舵机控制的常用频率。
  • duty=0 设置初始占空比为 0。
  • pin=17 将 PWM 信号连接到引脚 17。
def set_servo_angle(angle):
    # 转换角度到占空比
    duty = (angle + 90) / 180 * 10 + 2.5
    servo.duty(int(duty))  # 确保占空比为有效值
  • set_servo_angle 函数接受一个角度参数 angle,范围通常是 0-180。
  • 占空比的计算公式是:(角度+90)/180×10+2.5(角度+90)/180×10+2.5。
    • 这个公式是基于 1ms 的脉冲宽度,其中 0.5ms 对应 -90 度,2.5ms 对应 +90 度。
    • 将角度转换为占空比,其中 0 度对应 0.5ms,180 度对应 2.5ms。
  • servo.duty(int(duty)) 设置 PWM 占空比,确保占空比为有效值。
set_servo_angle(90)

  • 调用 set_servo_angle 函数,将舵机角度设置为 90 度。

 注意:

  1. 引脚连接:确保舵机连接到 Maix Bit 的正确引脚(在这个例子中是引脚 6)。
  2. 供电:舵机通常需要外部电源供电(5V供电),不要通过 Maix Bit 的 USB 供电,以免损坏开发板。
  3. 占空比范围:确保占空比在 0 到 100 之间

最后烧录到板子上,发现舵机是可以动的(-90°~90°) 

 总结:以上是K210 驱动舵机代码解析教程,后续更新如何使用K210实现云台跟踪物体。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值