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


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


    5.1 实践目的

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

    5.2 实践设备

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

    5.3 实践原理

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

    示意图

    原理图

    • 高级(ROS选修):

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

    #if (Arduino[ESP32] >= 100)

     #include

    #else

     #include

    #endif

    #include

    #include

    #include

    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 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 实践总结

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

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

    评分:                                                         

                                                                   

     

  • 相关阅读:
    接口自动化中cookies的处理技术
    AI-“国外一开源,国内就创新”!
    【MindSpore易点通】混合精度训练使用总结
    商城系统优化
    使用esxcli命令升级VMware ESXi补丁
    TechEmpower 21轮Web框架 性能评测 -- C# 的性能 和 Rust、C++并驾齐驱
    oracle库中数据利用datax工具同步至mysql库
    领域驱动设计
    【Java 进阶篇】Java HTTP 概述
    算法刷题打卡第36天:找出字符串中第一个匹配项的下标---BM时间复杂度优化(未完成)
  • 原文地址:https://blog.csdn.net/ZhangRelay/article/details/126260806