机器人控制器编程实践指导书旧版-实践五 数字舵机(执行器)

举报
zhangrelay 发表于 2022/08/10 23:02:49 2022/08/10
【摘要】 适用于UNO/2560/DUE/ESP8266/ESP32,2021年之前使用版本。 5.1 实践目的 掌握Arduino[ESP32]对数字舵机控制的软硬件测试。 5.2 实践设备 PC机一台Arduino[ESP32]开发板及配件等万用表和示波器等 5.3 实践原理 初级:无中级:旋钮控制舵机转角 示意图 原...

适用于UNO/2560/DUE/ESP8266/ESP32,2021年之前使用版本。


5.1 实践目的

  • 掌握Arduino[ESP32]对数字舵机控制的软硬件测试

5.2 实践设备

  • PC机一台
  • Arduino[ESP32]开发板及配件等
  • 万用表和示波器等

5.3 实践原理

  • 初级:无
  • 中级:旋钮控制舵机转角

示意图

原理图

  • 高级(ROS选修):

使用主题servo消息控制舵机角度。

#if (Arduino[ESP32] >= 100)

 #include <Arduino[ESP32].h>

#else

 #include <WProgram.h>

#endif

#include <Servo.h>

#include <ros.h>

#include <std_msgs/UInt16.h>

ros::NodeHandle  nh;

Servo servo;

void servo_cb( const std_msgs::UInt16& cmd_msg){

  servo.write(cmd_msg.data); //set servo angle, should be from 0-180 

  digitalWrite(13, HIGH-digitalRead(13));  //toggle led 

}

ros::Subscriber<std_msgs::UInt16> sub("servo", servo_cb);

void setup(){

  pinMode(13, OUTPUT);

  nh.initNode();

  nh.subscribe(sub);

  servo.attach(9); //attach it to pin 9

}

void loop(){

  nh.spinOnce();

  delay(1);

}

5.4 实践内容

阅读5.3中示意图、原理图和代码,在Arduino[ESP32]平台上完成实践。

5.5 实践问题

5.5.1 舵机角度如何调节?

控制信号是一种脉宽调制(PWM)信号。脉冲的高电平持续1到2毫秒(ms),也就是1000到2000微秒(µs)。在1000µs时,舵机左满舵。在2000µs时,右满舵。不过你可以通过调整脉宽来实现更大或者更小范围内的运动。控制脉冲的低电平持续20毫秒。每经过20毫秒(50次每秒),就要再次跳变为高电平,否则舵机就可能罢工,难以保持稳定。

5.5.2 舵机相应速度和转角精度能否调节?

舵机用PWM信号控制速度和转角,从而实现易控制、精度高和速度快的目的.

5.6 实践总结

回顾本次实践,遇到哪些问题,如何解决,经验和启发有哪些?

舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

评分:                                                         

                                                               

 

文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/126260806

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。