ODrive的CAN通信



SimpleFOC、ODrive和VESC 教程链接汇总:请点击

一、硬件准备

在这里插入图片描述

ODrive 购买链接:https://item.taobao.com/item.htm?ft=t&id=644329838237,图锐科技
电机购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技


在这里插入图片描述

二、代码说明


ODrive的CAN通信采用标准帧格式,也就是11bit。Address = node_ID | cmd_ID。
节点ID(node_ID)为高6bit,设置范围1 — 0x3F,一个ODrive的M0/M1需设置为不同的node_ID。
命令ID(cmd_ID)为低5bit,目前共有26个指令,如下图。


在这里插入图片描述

ODrive默认CAN通信ID为0,默认波特率为250K。上电后CAN接口以0.1秒为周期发送心跳包。

在这里插入图片描述

三、通信操作

3.1、设置ID和波特率

odrv0.axis0.config.can_node_id = 2   //ID=2
odrv0.can.set_baud_rate(250000)      //设置波特率250K
odrv0.save_configuration()
odrv0.reboot()

节点地址为2,合成指令时需左移5位,
上电后上传的心跳 cmd_ID=0x01(MSG_ODRIVE_HEARTBEAT),msgID = (node_ID<<5) | cmd_ID = 0x041,

在这里插入图片描述

3.2、读取电压


读取当前电压值(MSG_GET_VBUS_VOLTAGE)cmd_ID=0x17,msgID = (node_ID<<5) | cmd_ID = 0x057,发送后没有反应,看代码需要rtr为1,打勾。

在这里插入图片描述
在这里插入图片描述

3.3、完整操作指令

假如已经通过USB口配置电机参数并保存。

下面通过CAN指令校准、进入闭环模式并设置目标位置。

设置Axis请求状态(MSG_SET_AXIS_REQUESTED_STATE)cmd_ID = 0x07,Adress=(node_ID<<5)|(cmd_ID)=0x047。

047 01 00 00 00 00 00 00 00 //AXIS_STATE_IDLE
047 02 00 00 00 00 00 00 00 //AXIS_STATE_STARTUP_SEQUENCE
047 03 00 00 00 00 00 00 00 //AXIS_STATE_FULL_CALIBRATION_SEQUENCE
047 04 00 00 00 00 00 00 00 //AXIS_STATE_MOTOR_CALIBRATION
047 05 00 00 00 00 00 00 00 //AXIS_STATE_SENSORLESS_CONTROL
047 06 00 00 00 00 00 00 00 //AXIS_STATE_ENCODER_INDEX_SEARCH
047 07 00 00 00 00 00 00 00 //AXIS_STATE_ENCODER_OFFSET_CALIBRATION
047 08 00 00 00 00 00 00 00 //AXIS_STATE_CLOSED_LOOP_CONTROL
047 09 00 00 00 00 00 00 00 //AXIS_STATE_LOCKIN_SPIN
047 0A 00 00 00 00 00 00 00 //AXIS_STATE_ENCODER_DIR_FIND
047 0B 00 00 00 00 00 00 00 //AXIS_STATE_HOMING

在这里插入图片描述

在这里插入图片描述

设置目标位置(MSG_SET_INPUT_POS)cmd_ID = 0x0C,Adress=(node_ID<<5)|(cmd_ID)=0x04C。

在这里插入图片描述

前4个字节为目标位置,
后2个字节限制最大速度,最后2个字节为限制最大力矩,如果之前已经通过USB配置过,此处可以设置为0。

设置目标位置为5,浮点数转为16进制0x40A00000,如下:

在这里插入图片描述
在这里插入图片描述

设置目标位置为0,如下:
在这里插入图片描述

3.4、其它指令

在这里插入图片描述

在这里插入图片描述


(完)


计算机技术与测试测量仪器技术的结合,出现了新的测试仪器--虚拟仪器。基于LabVIEW的数据采集系统是第三代自动测试系统的为发展方向数据采集系统可看作是由数据处理部分和数据采集部分组成。在PC机上运用虚拟仪器能共享硬件和软件资源,快速、方便地组建各种数字信号处理系统,并可以方便地利用计算机的强大功能,进行信号分析、数据处理、存储以及图形化显示等,从而实现数据信号的处理。该系统是在NJational InstrumentsCompany推出的一种基于G语言的虚拟仪器软件开发工具 LabVIEW 环境下开发的,针对课题内容编写了数据采集及存储模块,通过对硬件控制程序的编写实现了对非NI驱动硬件的操作,结合具体使用条件编写数据采样程序。系统提供了丰富的数据分析功能,并对系统数据分析功能进行了详细的说明。介绍了数据储存和回放、数据处理、数据采集模块。 数据采集卡部分使用使用DSP来作采集卡CPU具有指令执行厅速度快、总线带宽高、可以完成数据的高速实时处理等优点。最重要的是DSP对于算法的处理有独到的优势,可以在DSP软件中加入一些典型的算法编程,就能够极大的增强系统的信号处理能力。基于以上原因,本设计以TMS320C5402DSP作为采集卡CPU,实现了数据的高速实时传输与处理。 采集卡由DSP完成数字信号处理,FLASH完成系统上电后的的程序加载,通过可编程逻辑器件CPLD完成对DSP外围设备的逻辑控制,利用DSP特有的HPI口与PC进行数据交换。 本文设计了一套基于DSP的数字信号采集卡和基于LabVIEW的PC数据信号处理系统,通过并口实现两者之间的通信,并详细叙述了系统完整的设计过程,从硬件设计和软件设计两方面加以阐述,重点叙述了数字信号采集卡、LabVIEW数据处理和并口通信的设计。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值