极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3964|回复: 0

BPI-PicoW-S3 PWM控制舵机[CircuitPython]

[复制链接]
发表于 2022-11-14 09:33:57 | 显示全部楼层 |阅读模式

BPI-Pico-S3 与 Raspberry Pi Pico 板尺寸相同,搭载ESP32S3芯片,8M flash,4层PCB,电镀半孔工艺,陶瓷天线,支持 2.4 GHz Wi-Fi 和 Bluetooth® LE 双模无线通信,是一款专为物联网开发和Maker DIY设计的开发板。
出厂内置 tinyUF2 + CircuitPython,推荐使用Mu编辑器上手CircuitPython开发。
BiliBili视频
https://www.bilibili.com/video/BV1CD4y1t79b/?share_source=copy_web&vd_source=fe857309245dbfd6ed5125b959d43261
硬件接口示意图
PWM控制舵机
以MG90S舵机为例,其他各种舵机参考其对应的使用手册,在以下代码中修改相应的参数。
  • MG90S舵机关键参数:
    • 控制角度,0° ~ 180°
    • PWM 占空时长控制,500us ~ 2500us 对应 0° ~ 180°
    • 工作电压:4.8V 至 6V(典型值为 5V)
    • 失速扭矩:1.8 kg/cm (4.8V)
    • 最大失速扭矩:2.2 kg/cm (6V)
    • 工作速度为 0.1s/60° (4.8V)


  • 求取任意一个旋转角度所需的占空时长的表达式为:

设y为占空时长,x为旋转角度
y=(2500-500)/180*x+500
y=(100*x+4500)/9
  • 根据参数,可以确定舵机角度由PWM波的高电平持续时长所控制,且由于舵机的控制必须由周期性的PWM波形控制,所以一个周期时长必须超过控制此舵机达到180°所需的占空时长,即超过2500us,则PWM频率要低于400hz。

  • 设定PWM频率为200hz,则周期时长为5000us,对应控制此舵机旋转 0° ~ 180°的占空比为10% ~ 50% 。

  • CircuitPython的PWM占空比控制精度为16bit,100%占空比在 2进制中表达为 1111 1111 1111 1111,16进制表达为 FFFF,10进制表达为 65535。

  • 求取任意一个旋转角度所需的占空比的表达式为:

设y为占空比,x为旋转角度
y=((50-10)/180*x+10)/100*65535
y=(4369*x+196605)/30
  • MG90S舵机与BPI-PicoW-S3的接线方式:

BPI-PicoW-S3的VBUS引脚可输出+5V;除GP0以外,所有GP引脚都可以用于输出PWM,仅需在程序中修改到对应引脚即可。
MG90S
BPI-PicoW-S3

GND 棕色GND
+5V 红色VBUS
PWM 橙色GP0
  • 根据以上表达式与参数设计一个可以任意控制此舵机旋转角度的程序:

import board
import pwmio
import time
servo_1 = pwmio.PWMOut(board.GP0, frequency=200, duty_cycle=0)#200hz, one cycle 5000us

def get_duty_cycle(x):
    return int((4369*x+196605)/30)

servo_1.duty_cycle = get_duty_cycle(90)# 90 degrees
  • 通过一个逻辑分析仪可以读出此程序所控制输出的PWM占空时长,与计算的数值应当相符。

  • 使用列表设计一套连续的舵机动作:

import board
import pwmio
import time
servo_1 = pwmio.PWMOut(board.GP0, frequency=200, duty_cycle=0)#200hz, one cycle 5000us

def get_duty_cycle(x):
    return int((4369*x+196605)/30)

action_list1 = [0,45,90,135,180,0,180,45,135,90]

while True:
    for i in action_list1:
        servo_1.duty_cycle = get_duty_cycle(i)
        time.sleep(0.5)
BPI-PicoW-S3 + CircuitPython 教程聚合链接https://forum.banana-pi.org.cn/t/topic/3986?u=wind_
BPI-PicoW-S3 wiki 页面https://wiki.banana-pi.org/BPI-PicoW-S3

购买BPI-PicoW-S3:
  • 比派科技官方速卖通店铺https://www.aliexpress.com/item/1005004775634442.html

  • SinoVoip 官方速卖通店铺https://www.aliexpress.com/item/1005004775859077.html

  • 官方淘宝店铺https://item.taobao.com/item.htm?spm=a2126o.success.0.0.25b04831CHV1Nc&id=684134360199


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 18:25 , Processed in 0.040745 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表