当前位置: 首页 > news >正文

使用pwm控制一个舵机摆动的速度

首先是控制速度,不是角度。

使用pwm去控制舵机,是控制角度来的,但是有的时候,我们想控制舵机的摆动速度。这个时候怎么怎么办?

考虑以下条件:

1. 舵机的转动速度的最大值是固定的,

2. 去掉启动的时间,一般来说舵机的角速度是固定的

3. 我们无法令到舵机超过它的最大速度

4. 舵机工作时,目标角度和当前角度相差越大,它的角速度就越大, 反之越小

因此我们可以这样做:

1. 先给出一个pwm, 等待一个比较长的时间,如90度需要的最大时间。这样,pwm和舵机角度就对准了。

2. 根据指定速度,定时去计算出增量, 去更新pwm的值,如每0.02秒计算一去更新pwm, 输出给舵机。

3. 考虑启动的时间,做一定的补偿算法。

效果:

python写的舵机模拟控制来回摆动的速度

下面是控制舵机的来回摆动的速度的代码:

    def do_swing(self, delta_time):deltaAngle = self.auto_speed * delta_time * self.directionnew_angle = self.swing_angle + deltaAngle# 边界检测和方向反转if new_angle >= 25 or new_angle <= -25:self.direction *= -1# 更新当前角度并设置目标PWMself.swing_angle = new_angletarget_pwm = 1500 + (self.swing_angle / 0.09)self.swing_arm.set_target(int(target_pwm))

相关文章:

  • 5.4.3树和森林的遍历
  • Caliper 配置文件解析:fisco-bcos.json
  • 极空间z4pro配置gitea mysql,内网穿透
  • 3.lombok
  • 汉诺塔问题深度解析
  • 【Block总结】EBlock,快速傅里叶变换(FFT)增强输入图像的幅度|即插即用|CVPR2025
  • 【AI】智驾地图在不同自动驾驶等级中的作用演变
  • python时间操作笔记
  • VBA之Excel应用第四章第四节:单元格对象的Clear方法和Count属性
  • Gojs渲染实线、虚线
  • JavaScript 中的单例内置对象:Global 与 Math 的深度解析
  • RFC8489-STUN
  • [蓝桥杯]解谜游戏
  • 凌晨四点的星光
  • Delphi 实现远程连接 Access 数据库的指南
  • MySQL基础(一)介绍、下载及安装
  • Hubstudio浏览器如何使用Loongproxy?
  • libGL error
  • MS8258D 高增益带宽积 FET 输入放大器/激光雷达接收跨阻放大器
  • arcpy与扩展模块
  • wordpress自动评论插件/广州新塘网站seo优化
  • 做转运网站/浙江网络科技有限公司
  • 医学网站建设方案/友链目录网
  • 东莞网站搜索排名/百度网络营销app下载
  • 西安新闻头条今日新闻/宁波优化seo是什么
  • 网站做的自适应体验差/品牌策划是做什么的