Odrive无刷驱动器 开发过程学习记录(1)
——window10系统下的基础配置
开发说明:
*ODrive 硬件版本: v3.6-56V
ODrive 硬件内部固件版本: fw-v0.5.1
odrivetool版本: 0.5.1.post0 (pip install odrive==0.5.1.post0)*
配置环境: windows10
一、基础硬件配置
1. ODrive 驱动开发板
2. 一至二个无刷电机,ODrive可以驱动两个无刷电机。
3. 一个功率耗散电阻。推荐使用50w以上的功率耗散电阻连接到 ODrive AUX 接口。
4. 一个或两个编码器。
这里引用–codenocold 开发教程:解释为何使用功率耗散电阻。
怎么判断我是否需要功率耗散电阻? 应该选择多大功率的功率耗散电阻?
如果没有功率耗散电阻,则 ODrive 会在减速期间将多余的功率回充到供电电源,以达到所需的减速扭矩。如果供电电源不能够吸收掉这些能量(一般使用电池供电才可以吸收这些能量),母线电压将不可避免地升高。这有可能造成开关电源被损坏。当总线电压过高时,ODrive
的过压保护也将会触发,过压保护触发后电机将停止输出力矩,电机将在惯性下自由旋转直到停止。功率电阻的功率选择取决于您对电机的配置和电机减速时产生的峰值功率或者平均减速功率。
为了安全起见,需要考虑电机的转速和电机所能承受的电流。
当以最大速度和最大电机电流制动时,功率耗散电阻中消耗的功率可以计算为: P_brake = V_emf * I_motor 其中 V_emf
= motor_rpm / motor_kv。
5 .一个供电电源(24v 版本的 ODrive 需要 12v~24v 的供电电源,56v版本的 ODrive 需要 12v~56v 的供电电源)使用电池供电也是可以的。可参考电源选择指南来选择合适的电源。
怎么区分我的 ODrive 是 24v 版本还是 56v 版本?
凡是2020年8月之后生产的 ODrive
都有明确的丝印标识表明板子的硬件和电压版本,如:v3.6-56v。
二、接线方式
接线方式引导图:
本次基础配置的接线方式:
图示配置如下:
24V电源,带编码器无刷电机一个,功率耗散电阻,can线,usb数据线。
三、开发环境配置
环境配置步骤:
1. 安装python环境
下载python安装包(下载链接)
或者安装 Anaconda (下载官网)
如果您的电脑之前已经安装了 Python 2 现在又安装了 Python 3,请使用 C:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python36-32\Scripts\pip
替换掉 Python 2 中的 pip。
一、什么是Anaconda?
简介 Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。
特点 Anaconda具有如下特点:
开源 安装过程简单 高性能使用Python和R语言 免费的社区支持 其特点的 实现主要基于Anaconda拥有的:·conda包 ·环境管理器 ·1,000+开源库
什么是pip
pip pip是用于安装和管理软件包的包管理器。pip编写语言:Python。
Python中默认安装的版本:
Python 2.7.9及后续版本:默认安装,命令为pip Python 3.4及后续版本:默认安装,命令为pip3
pip名称的由来:pip采用的是递归缩写进行命名的。其名字被普遍认为来源于2处:“Pip installs Packages”(“pip安装包”) “Pip installs Python”(“pip安装Python”)
2. cmd-pip 安装 ODriveTool
1.Win+R打开运行框, 输入cmd打开命令终端
2.输入 pip install odrive 回车
如果出现安装问题如下:
按提示要求更新即可!
3.安装完成打开Odrive
3. Zadig 替换驱动程序
1.打开 Zadig
2.安上述连接方式连接硬件 ,将USB连接ODrive与电脑
24V电源给Odrive供电安全的接通电源
牢记把安全放在首位。在给 ODrive 通电之前考虑一下一旦上电电机立即开始旋转会不会造成什么影响。 与某些驱动板不同,ODrive 不通过 USB 端口供电,因此即使仅使用 USB 和 ODrive通信也需要接入24/56伏电源进行供电。
USB 线可以在通电之前或之后连接都可以。
请将电源正负极连接到 ODrive 的 DC 端子。
注意正负极不要接错。 连接时产生的小火花是正常的,这是由于电容充电引起的。连接好并上电之后,在Zadig上会显示Odrive的连接,
在Zadig上选择 Options,勾选“List ALL devices”
选择 Odrive的连接, 在“Driver 中 选择 libusb-win32(v1.2.6.0)” 然后点击
“Replace Driver”
等待安装成功!
驱动安装成功提示!
4. 测试usb连接 ODrive
保持电源供电和USB的连接
1.Win+R打开运行框 输入Cmd 输入cmd打开命令终端
2.输入 “odrivetool”
高亮色代码“connected to ODrive 207736695753 as odrv0
”
表示已经和电脑连接成功!
输入测试代码:odrv0.vbus_voltage
测试ODrive 当前电压值
至此window10系统下的ODrive基础配置已经全部完成。
下一步将进行 电机,编码器参数配置和电机校准
> 常见问题:
在命令终端中输入 odrivetool Enter 后出现如下错误:
** On entry to DGEBAL parameter number 3 had an illegal value
** On entry to DGEHRD parameter number 2 had an illegal value
** On entry to DORGHR DORGQR parameter number 2 had an illegal value
** On entry to DHSEQR parameter number 4 had an illegal value
--------------------------------------------------------------------------- RuntimeError Traceback (most recent call
last) ~\AppData\Local\Programs\Python\Python39\Scripts\odrivetool in
17 from fibre import Logger, Event
18 import odrive
—> 19 from odrive.utils import OperationAbortedException
20 from odrive.configuration import *
21c:\users\su\appdata\local\programs\python\python39\lib\site-packages\odrive\utils.py
in
7 import subprocess
8 import os
----> 9 import numpy as np
10 import matplotlib.pyplot as plt
11 from fibre.utils import Eventc:\users\su\appdata\local\programs\python\python39\lib\site-packages\numpy_init_.py
in
303
304 if sys.platform == “win32” and sys.maxsize > 2**32:
–> 305 _win_os_check()
306
307 del _win_os_checkc:\users\su\appdata\local\programs\python\python39\lib\site-packages\numpy_init_.py
in _win_os_check()
300 "See this issue for more information: "
301 “https://tinyurl.com/y3dm3h86”)
–> 302 raise RuntimeError(msg.format(file)) from None
303
304 if sys.platform == “win32” and sys.maxsize > 2**32:RuntimeError: The current Numpy installation
(‘c:\users\su\appdata\local\programs\python\python39\lib\site-packages\numpy\init.py’)
fails to pass a sanity check due to a bug in the windows runtime. See
this issue for more information: https://tinyurl.com/y3dm3h86
由于默认安装的 Numpy 模块为最新版本,兼容性问题导致,请在命令终端中输入 pip install numpy==1.19.3 Enter 手动指定安装版本即可。