创客基地oDrive第二课 X2212电机配置

2023-05-16

淘宝套装链接

B站视频链接

2021年3月31日前 入Q群(732557609)可抽奖oDrive主板!
B站视频 创客基地oDrive第二课 X2212电机配置

第1部分 硬件介绍

1.1 硬件清单

oDrive V3.6-56V 主板 1块
12V 2.0A电源适配器 1个
micro USB 线 1条
50W 2欧 耗散电阻 1个
编码器连接线 1条
MKS X2212电机 1个
MKS X2212是改装的X2212电机,增加了径向磁铁和TLE5012B编码器。

1.2 硬件连接

micro USB 线 一端连接oDrive主板,另一端连接PC;
耗散电阻 两端分别接到AUX接口;
电机三相线接入M0电机接口;
编码器连接线一端接主板J4-M0,另一端接电机编码器接口;
12V电源适配器连接主板DC接口,上电后PWR指示灯亮。
硬件连接如下图所示:
在这里插入图片描述

第2部分 参数配置

2.1 连接odrivetool

打开命令终端,输入odrivetool ,如下图所示。
在这里插入图片描述

2.2 恢复默认参数

进行配置前建议先恢复主板默认参数,并重新启动。
输入 odrv0.erase_configuration() ,按下回车键,如下图所示。
在这里插入图片描述
注:以下所有配置参数都在 In [x]: 后面输入。

2.3 主板参数配置

  1. 配置耗散电阻
    我们使用50W 2Ω的耗散电阻,如果没有接耗散电阻,此项配置为0.0 。
    odrv0.config.brake_resistance = 2.0
  2. 配置低压保护阈值
    当电压低于保护阈值时,将停止电机并报错。
    odrv0.config.dc_bus_undervoltage_trip_level = 8.0
  3. 配置过压保护阈值
    当电压高于保护阈值时,将停止电机并报错。
    odrv0.config.dc_bus_overvoltage_trip_level = 56.0
  4. 配置过流保护阈值
    当电流高于保护阈值时,将停止电机并报错。
    odrv0.config.dc_max_positive_current = 20.0
  5. 配置反向过流保护阈值
    当电机制动在母线上产生的反向电流高于此值时,将停止电机并报错。
    odrv0.config.dc_max_negative_current = -3.0
  6. 配置回充电流值
    如果使用的电池供电,可以根据电池组承受的回充电流大小进行配置。使用开关电源供电时,此项配置为0。
    odrv0.config.max_regen_current = 0
    至此,主板参数配置完成。
    保存配置参数
    odrv0.save_configuration()

2.4 电机参数配置

  1. 配置电机极对数
    转子极数除以2,就是电机极对数。
    odrv0.axis0.motor.config.pole_pairs = 7
  2. 配置电机校准时的电流
    此电流值在进行电机参数校准和编码器偏移校准时使用。
    odrv0.axis0.motor.config.calibration_current = 5
  3. 配置电机校准时的电压
    此电压值在进行电机参数校准和编码器偏移校准时使用。
    odrv0.axis0.motor.config.resistance_calib_max_voltage = 2
  4. 配置电机类型
    这里配置为大电流电机
    odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT
  5. 配置电机运行的最大电流限制
    odrv0.axis0.motor.config.current_lim = 15
  6. 配置电机电流采样范围
    odrv0.axis0.motor.config.requested_current_range = 20

至此,电机参数配置完成。
保存配置参数
odrv0.save_configuration()

2.5 编码器参数配置

  1. 配置编码器类型
    配置电机编码器类型为增量式编码器。
    odrv0.axis0.encoder.config.mode = ENCODER_MODE_INCREMENTAL
  2. 配置编码器分辨率
    编码器分辨率 = 每圈步数4 = 40964 = 16384
    odrv0.axis0.encoder.config.cpr = 16384
  3. 配置编码带宽
    odrv0.axis0.encoder.config.bandwidth = 3000
  4. 配置编码器校准时电机运行电流
    odrv0.axis0.config.calibration_lockin.current = 5
  5. 配置编码器校准时电流上升时间
    odrv0.axis0.config.calibration_lockin.ramp_time = 0.4
  6. 配置电流上升时电机转动距离
    odrv0.axis0.config.calibration_lockin.ramp_distance = 3.1415927410125732
  7. 配置编码器校准时电机加速度
    odrv0.axis0.config.calibration_lockin.accel = 20
  8. 配置编码器校准时电机速度
    odrv0.axis0.config.calibration_lockin.vel = 40
    至此,编码器参数配置完成。
    保存配置参数
    odrv0.save_configuration()

2.6 控制器参数配置

  1. 配置控制模式
    设置为位置控制模式
    odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
  2. 配置电机最大转速
    设置为 50 圈/秒
    odrv0.axis0.controller.config.vel_limit = 50
  3. 配置位置环增益
    odrv0.axis0.controller.config.pos_gain = 30
  4. 配置速度环增益
    odrv0.axis0.controller.config.vel_gain = 0.02
    odrv0.axis0.controller.config.vel_integrator_gain = 0.2
  5. 配置输入模式
    配置为梯形轨迹模式
    odrv0.axis0.controller.config.input_mode = INPUT_MODE_TRAP_TRAJ
  6. 配置梯形模式电机转速
    odrv0.axis0.trap_traj.config.vel_limit = 30
  7. 配置梯形模式电机加/减速度
    odrv0.axis0.trap_traj.config.accel_limit = 5
    odrv0.axis0.trap_traj.config.decel_limit = 5
    至此,控制器参数配置完成。
    保存配置参数,并重启主板。
    odrv0.save_configuration()
    odrv0.reboot()

2.7 测试参数配置

  1. 检测电机参数
    odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION
    检测电机参数,执行这条命令后大约2秒,应听到电机发出“哔”声音。
  2. 设置预先校准
    odrv0.axis0.motor.config.pre_calibrated = True
    表示电机已校准下次重新启动后可以直接使用上次校准的结果。
  3. 编码器偏移校准
    odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION
    电机将正向转一圈,再反向转一圈。
    注意:等待电机停止转动后,再执行后续指令。
  4. 设置闭环运行模式
    odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
  5. 设置启动运行模式
    重新启动自动进行编码器校准,并进入闭环控制模式
    odrv0.axis0.config.startup_encoder_offset_calibration = True
    odrv0.axis0.config.startup_closed_loop_control = True
    至此,测试参数配置完成。
    保存配置参数,并重启主板。
    odrv0.save_configuration()
    odrv0.reboot()

至此,所有参数配置完成。

第3部分 电机控制测试

  1. 控制电机正向转50圈
    odrv0.axis0.controller.input_pos = 50
  2. 控制电机反向转50圈
    odrv0.axis0.controller.input_pos = 0
  3. 释放电机
    odrv0.axis0.requested_state = AXIS_STATE_IDLE

第4部分 绘图仪测试

  1. 退出odrivetool,如下图所示
    quit
    在这里插入图片描述
  2. 启动绘图仪,如下图所示
    odrivetool liveplotter
    在这里插入图片描述
  3. 绘图仪窗口显示位置轨迹,如下图所示
    在这里插入图片描述
    创客基地oDrive第二课 X2212电机配置 到此结束。
    对应的视频课程,可在Q群(732557609)下载,欢迎加入。
    请继续关注后续课程。
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创客基地oDrive第二课 X2212电机配置 的相关文章

  • 在云服务器上部署项目(下)

    云服务器上部署项目 xff08 上 xff09 xff1a http blog csdn net gfd54gd5f46 article details 54331207 5 从网上下载jpress开源项目 流程 xff1a 下载jpres
  • 利用String类制作简单的网络爬虫

    网络爬虫 网络爬虫 xff08 又被称为网页蜘蛛 xff0c 网络机器人 xff0c 在FOAF社区中间 xff0c 更经常的称为网页追逐者 xff09 xff0c 是一种按照一定的规则 xff0c 自动地抓取万维网信息的程序或者脚本 另外
  • 令人头大的单片机延时----这里转一篇关于延时函数的文章看看

    标题 xff1a 转 关于nop 函数 2011 02 11 23 49 29 nop函数可以用来延时 xff0c 请问1个NOP延时多少时间 xff0c 怎么计算 xff1f 附一段说明 xff1a void nop void A NOP
  • Java----File类详解

    File类 Java中所有的目录都被当成File 对待 xff0c 它直接处理文件和文件系统 也就是说 xff0c File类没有指定信息怎样从文件读取或向文件存储 xff1b 它描述了文件本身的属性 File对象用来获取或处理与磁盘文件相
  • UEditor在JavaWeb中的应用

    富文本编辑器 xff08 UEditor xff09 在平时开发Java Web项目的时候 xff0c 往往会使用第三方插件来帮助我们更快的实现功能 这里教大家使用百度开源的富文本编辑器 xff08 UEditor xff09 来帮助我们更
  • DataTables入门

    DataTable是什么 xff1f Datatables是一款jquery表格插件 它是一个高度灵活的工具 xff0c 可以将任何HTML表格添加高级的交互功能 分页 xff0c 即时搜索和排序几乎支持任何数据源 xff1a DOM xf
  • Redis-cli客户端的使用

    启动Redis客户端 进入src目录启动Redis客户端 xff08 前提是先启动Redis Server xff09 redis span class hljs keyword cli span 测试存储数据 span class hlj
  • Node.js简介

    Node js概述 Node js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 Node js 使用了一个事件驱动 非阻塞式 I O 的模型 xff0c 使其轻量又高效Node js 的包管理器 npm xff0
  • 安装Node.js

    Node js安装包及源码下载地址为 xff1a https nodejs org en download Node js 历史版本下载地址 xff1a https nodejs org dist Window 上安装Node js 32
  • 使用Node.js快速创建web服务

    步骤一 引入 required 模块 span class hljs keyword var span http 61 span class hljs built in require span span class hljs string
  • okhttpUtil信任所有证书

    使用okhttp调用https信任所有证书工具类 请求示例 xff1a 结果 xff1a Caused by span class token operator span javax span class token punctuation
  • 从实际性能剖析,为什么MEMS激光雷达才是未来主流?

    车规级激光雷达的技术路线之争 xff0c 似乎已经逐渐明朗 高工智能汽车 注意到 xff0c 目前 xff0c 包括Innoviz以及国内一径科技 速腾聚创等越来越多的厂商先后推出了车规级MEMS激光雷达 另外 xff0c 需要特别注意的是
  • C++之STL

    定义 STL xff08 Standard Template Library xff09 xff0c 即标准模板库 xff0c 是一个具有工业强度的 xff0c 高效的C 43 43 程序库 它被容纳于C 43 43 标准程序库 xff08
  • C语言之strpbrk函数

    该函数的头文件为 include lt string h gt xff0c 其作用是比较字符串str1和str2中是否有相同的字符 xff0c 如果有 xff0c 则返回该字符在str1中的最先出现的位置的指针 其函数原型如下 xff1a
  • Vb.NET与VB6.0的区别

    Visual Basic NET是Microsoft Visual Studio NET套件中主要组成部分之一 NET版本的Visual Basic增加了更多特性 xff0c 而且演化为完全面向对象 xff08 就像C 43 43 xff0
  • STM32学习--GPIO(寄存器)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 一 GPIO是什么 xff1f 二 引脚GPIO的输入输入框图输入模式作用 GPIO的输入输入框图输入模式作用 GPIO特性GP
  • c#找到网站中的照片

    c 下载图片 一 过程截图 开始 xff1a 正在下载 下载结束 下载成功了 xff01 xff01 xff01 二 代码实例 代码如下 xff08 示例 xff09 xff1a public delegate span class tok
  • linux同时连接有线无线上网问题

    起因 xff1a linux同时连接有线和无线网时 xff0c 希望用有线连内网组网 xff0c 如OAI EPC组网 xff0c 用无线访问外网 xff0c 但是默认会优先用有线 解决 xff1a 所以设置限制 xff0c 只允许目标地址
  • WK2114(一个异步串口UART 扩展为4个串口UART)

    WK2114是UART接口的4通道UART器件 WK2114将一个标准3线异步串口 xff08 UART xff09 扩展成为4个增强 功能串口 xff08 UART xff09 主接口UART在数据传输时主接口的UART可以通过引脚配置为
  • sql解析:获取Select字段

    https blog csdn net github 26672553 article details 100048506 前面已经了解这个解析sql的第三方库 继续深入学习 比如我们要获取到select查询语句中的字段id name ag

随机推荐

  • go协程池

    编写代码实现了一个计算随机数的每个位置数字之和的程序 要求使用goroutine和channel构建生产者和消费者模式 可以指定启动的goroutine数量 woker pool模式 在工作中我们通常使用workerpool模式 控制gor
  • select多路复用

    在某些场景下我们需要同时从多个通道接收数据 通道在接收数据时 如果没有数据可以接收发生阻塞 你也许会写出代码使用遍历的方式来实现 span class token keyword for span span class token punc
  • 并发安全和锁

    有时候在Go代码中可能会存在多个goroutine同时操作一个资源 xff0c 这种情况会发生数据竞态问题 举例 xff1a var x int64 var wg sync WaitGroup func add for i 61 0 i l
  • 解决import torch 报错:Failed to load image Python extension: warn(f“Failed to load image Python extens

    配置yolov5 下载地址 xff1a torch 和 torchvision的 下载完之后发现import torch没问题 但是import torchvision报错了 查阅资料原来是版本对不上 7条消息 PyTorch碎片 xff1
  • Mac电脑 - “USB 10/100 LAN”的电缆可能未插好,或另一端的设备没有响应。

    Mac突然就无法上网了 有可能装个驱动就好了 xff0c 前提是确保你的网卡芯片是realtek的 解决方法 xff1a 下这个驱动 xff0c 就好了
  • show engine innodb status解读

    注 xff1a 以下内容为根据 高性能mysql第三版 和 mysql技术内幕innodb存储引擎 的innodb status部分的个人理解 xff0c 如果有错误 xff0c 还望指正 xff01 xff01 innodb存储引擎在sh
  • Vuex速学篇:(1)基本套路

    我们前面做了一个这样的页面 xff0c 为了增加我们的学习难度 xff0c 我们特意拆分成了不同的组件 我们知道 xff0c 我们在子组件里并不能直接对兄弟组件里的属性进行操作 xff0c 我们通过this emit 调用父组件的方法 xf
  • ElementUI案例演示:导航、布局、加载动画

    知识点 1 vue router之嵌套路由 http router vuejs org zh cn essentials nested routes html 2 element ui 导航组件 布局组件 加载动画 http element
  • ElementUI之表单验证、数据绑定、路由跳转

    1 新建表单组件el form vue span class hljs tag lt span class hljs title template span gt span span class hljs tag lt span class
  • vue-router: 嵌套路由

    模板抽离 我们已经学习过了Vue模板的另外定义形式 xff0c 使用 lt template gt lt template gt span class hljs comment lt 模板抽离出来 gt span span class hl
  • react.js的两种路由方式:HashRouter

    react js路由 初步 前面我们已经了解了react js其中一种路由方式 这种方式是利用 html5的 span class hljs escape 96 w span indow history span class hljs es
  • 入手python绘图包:matplotlib,画直线、画抛物线

    入手python绘图包 xff1a matplotlib 官方地址 xff1a http matplotlib org github地址 xff1a http github com matplotlib matplotlib 学习一款图形化
  • 使用CMake构建OpenCV项目

    上一篇文章中 xff0c 我们介绍了如何在ubuntu上安装配置OpenCV xff0c 这篇文章我们来对我们的安装进行测试 xff0c 并介绍如何用CMake工具快捷地构建OpenCV项目 项目结构 为了使整个项目更加条理 xff0c 我
  • Ubuntu连接不了网络的解决方法亲测可行经验

    突然发现Ubuntu连不上网络 xff0c 网络打问号或者右上角也没有网络图标 xff1b 楼主一般通过前两步就解决了 xff0c 大家自行查阅网络服务名称 xff0c OK直接进入正题 通过命令行方式重启网络 如果你使用的 Ubuntu
  • 解决 ImportError: C extension: No module named ‘pandas._libs.tslib‘ not built.

    yolo配置 报错 nvidia 64 nx yolov5 master python3 detect py Traceback most recent call last File 34 usr lib python3 dist pack
  • python subprocess获取stdout和stderr

    本文转载自http www firefoxbug com index php archives 2419 xff0c 如有版权问题请联系博主删除 用subprocess的时候 xff0c 怎么获取stdout和stderr xff1f 下面
  • 关于Libcurl双向认证请求https

    之前通过libcurl开发只是做http请求 xff0c 这次公司项目需要请求https xff0c 所以就研究了一下 xff0c 其实用libcurl做http请求是非常简单的 xff0c 所有底层实现都被封装到了libcurl里面 xf
  • Kubernates简介

    Kubernates简介 应用程序的开发部署变化 从单体应用到微服务 单体应用的缺点 由多个彼此耦合的组件组成 开发 部署 管理必须以同一个实体进行 即使对某个组件的小修改也需要重新部署整个应用 组件之间没有严格的边界定义 相互依赖 随着功
  • pipenv 无法获取系统环境变量

    今天遇到了一个有意思的问题 项目是使用pipenv作为虚环境来进行包管理的 xff0c 今天在windows server 2012R2和windows server 2016上发现python脚本在运行的过程中 xff0c 不能读取到系统
  • 创客基地oDrive第二课 X2212电机配置

    淘宝套装链接 B站视频链接 2021年3月31日前 入Q群 xff08 732557609 xff09 可抽奖oDrive主板 xff01 B站视频 创客基地oDrive第二课 X2212电机配置 第1部分 硬件介绍 1 1 硬件清单 oD