JCFOC使用说明



说明

驱动器采用的是Modbus协议,
上位机软件把输入的字符串解析为Modbus协议发送给驱动器,
如果你对Modbus协议比较熟悉,也可以直接用串口调试助手发送指令。
驱动器购买链接:某宝购买

在这里插入图片描述

一、指令说明

指令 描述 参数说明
motor0.requested_state 运行模式 STATE_IDLE、STATE_ENCODER_INDEX_SEARCH、STATE_CALIBRATION、STATE_CLOSED_LOOP_CONTROL、STATE_FAULT
motor0.controller.input_torque 目标力矩 单位0.1A,取值范围 -200—200
motor0.controller.input_vel 目标速度 单位RPM,取值范围 -6000—6000
motor0.controller.input_pos 目标绝对位置 最多正负32000圈,每圈角度65536,取值范围 -2097152000—2097152000
motor0.read.vbus_voltage 母线电压 单位0.1V
motor0.read.vbus_current 母线电流 单位0.1A
motor0.read.rpm 当前速度 单位RPM
motor0.read.position 当前位置 最多正负32000圈,每圈角度65536,取值范围 -2097152000—2097152000
motor0.read.error 故障信息 FAULT_NO_ERROR、FAULT_ALIGN_FAIL、
FAULT_UNDER_VOLTAGE、FAULT_OVER_VOLTAGE、
FAULT_OVER_CURRENT、FAULT_NEGA_CURRENT、
FAULT_TEMPERATURE_OVER、FAULT_INPUT_SIGNAL
motor0.read.code_version 驱动器版本 单片机代码版本,第一版 866
erase_configuration() 擦除配置
save_configuration() 保存参数
reboot() 重启
motor0.config.cur_p_gain 电流环P 取值范围1-127,默认20
motor0.config.cur_i_gain 电流环I 取值范围1-127,默认10
motor0.config.vel_p_gain 速度环P 取值范围1-255,默认20
motor0.config.vel_i_gain 速度环I 取值范围1-255,默认40,速度环的P和I参数保持1:2
motor0.config.pos_p_gain 位置环P 取值范围1-255,默认20
motor0.config.driver_id 驱动器ID 用于RS485多设备通信,0是广播地址,取值范围0—254
motor0.config.motor_type 电机类型 MOTOR_TYPE_HIGH_CURRENT、MOTOR_TYPE_GIMBAL
motor0.config.pole_pairs 电机极对数 取值范围2—64
motor0.config.angle_compensation 角度补偿 不同编码器不同电机在高速时需要设置补偿值,电机速度低于2000转不用操作
motor0.config.encoder_mode 编码器接口类型 ENCODER_MODE_INCREMENTAL、ENCODER_MODE_SPI、ENCODER_MODE_I2C
motor0.config.encoder_type 编码器型号 AS5600、AS5047P、TLE5012B、MT6701
motor0.config.encoder_cpr 编码器CPR PPR的四倍频是CPR,取值范围12-20000
motor0.config.calibration_duty 零点校准占空比 航模电机5—10,云台电机20—30。如有负载可适当增大
motor0.config.gpio_mode 输入模式 GPIO_MODE_USART、GPIO_MODE_PWM、GPIO_MODE_ADC
motor0.config.control_mode 控制模式 CONTROL_MODE_TORQUE_CONTROL、CONTROL_MODE_VELOCITY_CONTROL、ONTROL_MODE_POSITION_CONTROL
motor0.config.current_lim 电流限制 单位0.1A,电机最大电流限制,默认200
motor0.config.vel_limit 速度限制 单位RPM,速度模式和位置模式的转速限制
motor0.config.current_ramp_rate 电流爬升率 力矩模式,防止电机设置不同目标值,电机切换顿挫
motor0.config.vel_ramp_rate 速度爬升率 速度模式和位置模式,速度切换更加平滑
motor0.config.dc_bus_undervoltage_trip_level 欠压保护值 单位:0.1V,取值范围50—100
motor0.config.dc_bus_overvoltage_trip_level 过压保护值 单位:0.1V,取值范围120—560
motor0.config.dc_max_positive_current 过流保护值 单位:0.1A,取值范围50—500
motor0.config.dc_max_negative_current 回充电流值 单位:0.1A,取值范围-100— -10
motor0.config.startup_encoder_index_search 上电是否找零 FALSE、TRUE
motor0.config.startup_encoder_offset_calibration 上电是否校准 FALSE、TRUE
motor0.config.startup_closed_loop_control 上电是否运行 FALSE、TRUE
motor0.config.mapping_torque 最大输入对应力矩 用于电位器和PWM输入控制
motor0.config.mapping_velocity 最大输入对应速度 用于电位器和PWM输入控制
motor0.config.mapping_position 最大输入对应位置 用于电位器和PWM输入控制,最多50圈,每圈65536,取值范围0-3276800

二、软件安装

2.1、安装python

  • 1、软件是用python编写的,需要先安装python环境,
    以下只为演示安装流程,请安装最新版本,
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 2、安装完以后,测试是否安装成功
    在这里插入图片描述
    输入python,有以下回复,说明安装成功。
    在这里插入图片描述
    输入 exit() 退出
    在这里插入图片描述

2.2、安装 pyserial

继续输入 pip install pyserial,安装串口插件
在这里插入图片描述

2.3、双击运行

在这里插入图片描述

三、硬件准备

序号 名称 数量 说明
1 USB转串口 1 TTL电平
2 JCFOC驱动器 1 工作电压12—36V
3 带编码器电机 1
4 12V电源 1 根据电机型号选择电源
5 杜邦线 若干 母对母

在这里插入图片描述

带编码器电机 购买链接:某宝购买
JCFOC驱动器购买链接:某宝购买

四、2804云台电机+AS5600编码器

在这里插入图片描述

4.1、位置模式

1.擦除保存的参数

 motor0.erase_configuration()

2.选择电机类型,
航模电机:MOTOR_TYPE_HIGH_CURRENT;
云台电机:MOTOR_TYPE_GIMBAL

motor0.config.motor_type = MOTOR_TYPE_GIMBAL

3.设置极对数,根据电机的实际极对数设置

motor0.config.pole_pairs = 7

4、设置编码器接口类型。
目前支持三种接口:
ENCODER_MODE_INCREMENTAL
ENCODER_MODE_SPI
ENCODER_MODE_I2C

motor0.config.encoder_mode = ENCODER_MODE_I2C

5、设置编码器型号。
目前I2C接口只支持这一种型号,

motor0.config.encoder_type = AS5600

6、设置零点校准的占空比。
电机初次使用需要先校准下参数,校准时电机处于开环运行状态,此处为电机PWM输出的占空比,占空比设置太大电机发热;设置太小,电机无力,校准失败。航模电机设置6—10之间,云台电机设置20—35之间。

motor0.config.calibration_duty = 25

7、选择控制模式。
三种控制模式: 力矩模式、速度模式、位置模式
CONTROL_MODE_TORQUE_CONTROL
CONTROL_MODE_VELOCITY_CONTROL
CONTROL_MODE_POSITION_CONTROL

motor0.config.control_mode = CONTROL_MODE_POSITION_CONTROL

8、设置限速。
限制电机转动过程中的最大转速,单位:RPM

motor0.config.vel_limit = 200

9、设置位置闭环P参数,

motor0.config.pos_p_gain = 20

10、设置速度闭环P参数,

motor0.config.vel_p_gain = 40

11、设置速度闭环I参数,

motor0.config.vel_i_gain = 80

12、保存参数

motor0.save_configuration()

13、重启,大约需1秒钟

motor0.reboot()

14、零点检测
电机正反转一下,获取参数,大概5秒钟,不同电机的参数不同,同一个电机不同的三相线接端子方式参数不同。

motor0.requested_state = STATE_CALIBRATION

15、保存零点检测结果。
电机和接线不改变的情况下,以后再上电可以不用零点检测。

motor0.save_configuration()

16、重启,大约需1秒钟

motor0.reboot()

17、等待驱动器重启,发送指令进入闭环状态

motor0.requested_state = STATE_CLOSED_LOOP_CONTROL

18、设置目标位置。
电机采用定点数运算,一圈360°=65536,最高可以设置正负32000圈,即-2097152000——2097152000。

motor0.controller.input_pos = 0
motor0.controller.input_pos = 65536
motor0.controller.input_pos = 655360
motor0.controller.input_pos =
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值