当前位置 博文首页 > gjy_skyblue的博客:Makerbase oDrive第八课 PWM测试

    gjy_skyblue的博客:Makerbase oDrive第八课 PWM测试

    作者:[db:作者] 时间:2021-09-01 13:07

    第1部分 硬件介绍

    1.1 硬件清单

    序号品名数量
    1ODRIVE主板1
    2Arduino UNO主板1
    3MKS X2212电机1
    4USB数据线1
    512V 2.0A电源适配器1
    6杜邦线2
    7编码器连接线1
    850W 2欧 耗散电阻1
    9micro USB 线1

    硬件清单如下图所示。
    在这里插入图片描述

    标题1.2 硬件连接

    电机与ODrive主板接线参考之前课程,这次需要介绍的是Arduino UNO主板与ODrive主板的PWM连接。

    1. ODrive主板的GPIO4为PWM功能,Arduino UNO主板引脚3作为PWM输出。

      功能ODrive主板Arduino UNO主板
      PWMGPIO43
    2. 两主板连线,一共连接2根线:
      GPIO4----3,
      GND----GND。如下图所示。
      在这里插入图片描述

    3. 用USB数据线将Arduino UNO主板与PC连接。

    4. micro USB 线一端连接oDrive主板,另一端连接PC。

    5. 硬件连接如下图所示:
      在这里插入图片描述

    第2部分 下载文件

    1. 本次测试源代码可通过Q群(732557609)下载,如下图所示。
      在这里插入图片描述

    2. 解压后源代码文件如下图所示。
      在这里插入图片描述

    第3部分 PWM配置

    3.1 ODrive PWM引脚配置

    如果GPIO引脚未分配给其他功能,则它们可用于PWM输入。
    比如,如果你要用GPIO1,2,就必须禁用UART。
    本次我们使用GPIO4。

    1. 打开odrivetool命令窗口。

    2. 配置PWM输入映射最小值,如下图1所示。

      odrv0.config.gpio4_pwm_mapping.min = -200
      
    3. 配置PWM输入映射最大值,如下图2所示。

      odrv0.config.gpio4_pwm_mapping.max = 200
      
    4. 配置PWM映射值的属性,将PWM映射到电机位置,如下图3所示。

      odrv0.config.gpio4_pwm_mapping.endpoint = odrv0.axis0.controller._remote_attributes['input_pos']
      
    5. 保存配置。

      odrv0.save_configuration()
      
    6. 重新启动。

      odrv0.reboot()
      

    3.2 Arduino PWM引脚配置

    将引脚3定义为PWM脉冲输出端口,如下图1所示。。
    将引脚3配置为输出模式,如下图2所示。
    在这里插入图片描述

    第4部分 PWM占空比逐渐增大

    PWM占空比逐渐增大,测试PWM映射电机位置的关系。
    源代码在下载文件中,如下图所示。

    4.1 设置占空比

    1. PWM初始占空比为60,如下图1所示。
    2. PWM占空比设置为从125→255每2秒增加1,如图2所示。
    3. 上传程序,上传成功后观察电机。
      在这里插入图片描述

    4.2 观察电机

    1. 打开电源ODrive主板电源电机会正转一圈,反转一圈进行校准,查询校准位置如下图所示。
      查询位置指令如下。

      odrv0.axis0.encoder.pos_estimate
      

    在这里插入图片描述
    2. 当占空比<25%时,初始PWM=60(<25%)电机位置不改变。查询位置如下图所示。
    在这里插入图片描述

    1. 当25%≤占空比<50%时,设定PWM从125(<50%)开始变化电机会快速转至设定的最小值(min=-200),查询位置如下图所示。
      在这里插入图片描述

    2. 当50%≤占空比<100%时。
      电机位置会从min→max每2秒正转一次,直到转至设定的最大值(max=200)。
      查询位置如下图所示:
      在这里插入图片描述

      电机转至最大值(max=200)后停止,查询位置如下图所示:
      在这里插入图片描述

    第5部分 PWM占空比逐渐减小

    PWM占空比逐渐减小,测试PWM映射电机位置的关系。
    源代码在下载文件中,如下图所示。
    在这里插入图片描述

    5.1 设置占空比
    1.将PWM占空比设置为从254→0每2秒减1,如图4所示。
    在这里插入图片描述

    1. 上传程序,上传成功后观察电机。

    5.2 观察电机

    1. 若重启ODrive主板,则电机初始位置为0。

    2. 电机会快速转至设定的最大值(max=200),查询位置如下图所示。
      在这里插入图片描述

    3. 当50%≤占空比<100%时,电机位置会从max→min每2秒反转一次,直到转至设定的最小值(min=-200)。
      位置逐渐减小,查询位置如下图所示:
      在这里插入图片描述

      电机转至最小值(min=-200)后停止,查询位置如下图所示。
      在这里插入图片描述

    4. 当25%≤占空比<50%时,电机位置处于设定的最小值(min=-200),查询位置如下图所示。
      在这里插入图片描述

    5. 当0%≤占空比<25%时,电机位置不改变。
      在这里插入图片描述

    至此, ODrive PWM测试完成。
    创客基地oDrive第八课 ODrive PWM测试 到此结束。

    欢迎加入 创客基地 电机控制Q群 讨论电机控制相关问题:732557609

    欢迎光临 创客基地 B站 了解技术资料:https://space.bilibili.com/393688975

    欢迎光临 创客基地 淘宝店 采购产品:https://makerbase.taobao.com/

    cs