当前位置: 首页 > news >正文

MKS SERVO4257D 闭环步进电机_系列8 CAN通讯示例

第1部分 产品介绍

MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈,有效防止电机丢步。适合小型机械臂,3D打印机,雕刻机,写字机,自动化产品以及电子竞赛等应用。
硬件开源,性价比高!
在这里插入图片描述

第2部分 相关资料下载

2.1 Cangaroo

百度网盘:
https://pan.baidu.com/s/1tBCuDIfBAIRMms82FlLdag?pwd=mks1
MKS闭环步进驱动资料 -> 通用工具软件

第3部分 参数配置

3.1 电机参数配置

  1. 选择控制模式: 菜单 → Mode → SR_vFOC
  2. 设置波特率: 菜单 → CanRate → 500K
  3. 设置从机地址: 菜单 → CanID → 01

3.2 Cangaroo设置

  1. 双击“cangaroo.exe”,运行上位机软件;

  2. 在cangaroo窗口,选择菜单“Measurement”->“Start Measurement”,如下图所示。
    在这里插入图片描述

  3. 在弹出的Measurement Setup窗口,点击“candle0”,如下图所示
    在这里插入图片描述

  4. 使用默认参数,不做任何修改,点击“ok”,如下图所示
    在这里插入图片描述

  5. Timestamps 选择“absolute”
    不选择“aggregate by ID”
    ,如下图所示
    在这里插入图片描述

  6. 选择菜单“File”->“Save Workspace”,选择保存路径和名称,保存配置。
    在这里插入图片描述

  7. 保存完成后,如下图所示
    在这里插入图片描述

第4部分 读取/设置电机参数

4.1 读取参数指令

以“读取累加制多圈编码器值”为例
发送 31 32
返回 31 00 00 00 00 3E 39 A9
即编码器值为 0x000000003E39
如下图所示
在这里插入图片描述

4.2 设置参数指令

以设置电流参数为例(对应屏幕上的“Ma”选项)
发送 83 06 FD 87 设置电流为1789mA (0x6FD = 1789)
返回 83 01 85 表示设置完成
如下图所示
在这里插入图片描述

电机屏幕菜单选项“Ma”,可以查看刚设置的电流值,如下图
在这里插入图片描述

4.3 读取IO端口状态

端口状态定义如下:
在这里插入图片描述

(注:28D/35D/42D只能读取到IN_1端口)

发送 34 35读取IN_1,IN_2,OUT_1,OUT_2端口状态
返回 34 0F 44 (0x0F 的低4位对应4个端口的状态,即4个端口均为高电平)

如下图所示
在这里插入图片描述

第5部分 电机限位归零运行

57D电机的拨码开关PIN3,PIN2拨到ON状态。
57D电机,建议把电流设置为3200mA
限位触发电平,限位方向,限位速度可通过屏幕菜单“HmTrig、HmDir、HmSpeed”设置,也可通过串行指令设置(功能码0x90)。
本文使用默认参数。
发送 91 92
返回 91 01 93
电机开始归零运行,屏幕显示“Home…”
此时将IN_1端口置低电平(可以用地线触碰IN_1端口)
电机完成归零,屏幕显示“Home Ok”

在这里插入图片描述

电机屏幕显示过程如下图:
在这里插入图片描述

第6部分 电机速度模式运行

注意:57D电机,建议把电流设置为3200mA

6.1 速度模式运行和停止

1. 控制电机以速度300RPM, 加速度2运行

发送指令:F6 01 2C 02 26
返回指令:F6 01 F8
如下图1,2所示

2. 控制电机以加速度200停止

发送指令:F6 00 00 C8 BF
开始停止:F6 01 F8
完成停止:F6 02 F9
如下图3,4,5所示
在这里插入图片描述

6.2 速度模式参数保存

速度模式保存,即让电机每次上电时,以保存的速度和加速度自动运行。

1. 控制电机以速度300RPM, 加速度2运行

发送指令:F6 01 2C 02 26
返回指令:F6 01 F8
如下图1,2所示

2. 保存速度模式参数

发送指令: FF C8 C8
返回指令1:FF 01 01 保存成功
返回指令2:F6 02 F9 电机停止
保存成功后,电机会停止运行。
如下图3,4,5所示
在这里插入图片描述

6.3 速度模式参数擦除

速度模式参数擦除后,电机不再上电时自动运行。
发送指令: FF CA CA
返回指令: FF 01 01
如下图所示
在这里插入图片描述

第7部分 电机位置模式1 按脉冲数相对运行

注意:57D电机,建议把电流设置为3200mA

7.1 按脉冲数相对运行

注:1.8度电机,16细分时,3200脉冲电机转1圈

  1. 先将当前坐标设置为0,方便观察电机运行
    发送指令:92 93
    返回指令:92 01 94
    此时电机屏幕显示角度值0.0,误差0.00err,脉冲数0clk
    如下图框1所示
  2. 电机以速度100RPM,加速度2,正转一圈(3200脉冲)
    发送指令:FD 80 64 02 00 0C 80 70
    开始运行: FD 01 FF
    完成运行: FD 02 00
    此时电机屏幕显示角度值360.0,误差0.00err,脉冲数3.2Kclk
    如下图框2所示
    在这里插入图片描述

7.2 中断电机运行

  1. 电机以速度100RPM,加速度2,正转100圈(320000脉冲)
    发送指令:FD 80 64 02 04 E2 00 CA
    开始运行:FD 01 FF
    如下图框1所示
  2. 电机以加速度200停止
    发送指令:FD 80 00 C8 00 00 00 46
    开始停止: FD 01 FF
    完成停止:FD 02 00
    如下图框2所示
    在这里插入图片描述

第8部分 电机位置模式2 按坐标值相对运行

注1:1.8度电机,16细分时,3200脉冲电机转1圈
注2:电机转1圈,坐标值变化0x4000,即16384
注3:坐标值会有正负15左右误差
注意:57D电机,建议把电流设置为3200mA

8.1 按坐标值相对运行

  1. 先将当前坐标设置为0,方便观察电机运行
    发送指令:92 93
    返回指令:92 01 94
    此时电机屏幕显示角度值0.0,误差0.00err,脉冲数0clk
    如下图1所示

  2. 电机以速度300RPM,加速度200,相对运行坐标0x28000(即转10圈)
    发送指令:F4 01 2C C8 02 80 00 6C
    开始运行:F4 01 F6
    完成运行:F4 02 F7
    此时电机屏幕显示角度值3.6K,误差0.00err,脉冲数32.0Kclk
    如下图2所示

  3. 读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 02 80 00 B4
    即当前坐标值为0x000000028000,和预定目标一致。
    如下图3所示

  4. 再次让电机以速度300RPM,加速度200,相对运行坐标0x28000(即再转10圈)
    发送指令:F4 01 2C C8 02 80 00 6C
    开始运行:F4 01 F6
    完成运行:F4 02 F7
    此时电机屏幕显示角度值7.2K,误差0.00err,脉冲数64.0Kclk
    如下图4所示

  5. 再次读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 05 00 00 37
    即当前坐标值为0x000000050000,和预定目标一致。
    如下图5所示
    在这里插入图片描述

8.2 中断电机运行

  1. 让电机以速度300RPM,加速度200,相对运行坐标0x7A0000
    发送指令:F4 01 2C C8 7A 00 00 64
    开始运行:F4 01 F6
    如下图框1所示

  2. 让电机立即停止 (即加速为0)
    发送指令:F4 00 00 00 00 00 00 F5
    开始停止:F4 01 F6
    完成停止:F4 02 F7
    如下图框2所示
    在这里插入图片描述

第9部分 电机位置模式3 按坐标值绝对运行

注1:1.8度电机,16细分时,3200脉冲电机转1圈
注2:电机转1圈,坐标值变化0x4000,即16384
注3:坐标值会有正负15左右误差
注意:57D电机,建议把电流设置为3200mA

9.1 按坐标值绝对运行

  1. 先将当前坐标设置为0,方便观察电机运行
    发送指令:92 93
    返回指令:92 01 94

    此时电机屏幕显示角度值0.0,误差0.00err,脉冲数0clk
    如下图1所示

  2. 电机以速度300RPM,加速度200,绝对运行到坐标0x28000
    发送指令:F5 01 2C C8 02 80 00 6D
    开始运行: F5 01 F7
    完成运行:F5 02 F8
    此时电机屏幕显示角度值3.6K,误差0.00err,脉冲数32.0Kclk
    如下图2所示

  3. 读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 02 80 00 B4
    即当前坐标值为0x00000002800,和预定目标一致。
    如下图3所示

  4. 再次让电机以速度300RPM,加速度200,绝对运行到坐标0x28000(因坐标已经是0x28000,所以电机不动)
    发送指令:F5 01 2C C8 02 80 00 6D
    开始运行:F5 01 F7
    完成运行:F5 02 F8
    此时电机屏幕仍显示角度值3.6K,误差0.00err,脉冲数32.0Kclk
    如下图4所示

  5. 再次读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 02 7F FF AD
    当前坐标值为0x000000028001 (误差1),即电机没有运行,和预定目标一致。
    如下图5所示

  6. 再次让电机以速度300RPM,加速度200,绝对运行到坐标0
    发送指令:F5 01 2C C8 00 00 00 EB
    开始运行:F5 01 F7
    完成运行:F5 02 F8
    此时电机屏幕显示角度值0.0,误差0.00err,脉冲数0clk
    即电机回到坐标0点
    如下图6所示

  7. 再次读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 00 00 01 33
    当前坐标为1(误差1),和预定目标一致。
    如下图7所示
    在这里插入图片描述

9.2 中断电机运行

  1. 让电机以速度300RPM,加速度200,绝对运行坐标0x7A0000
    发送指令:F5 01 2C C8 7A 00 00 65
    开始运行:F5 01 F7
    如下图框1所示

  2. 让电机立即停止 (即加速为0)
    发送指令:F5 00 00 00 00 00 00 F6
    开始停止:F5 01 F7
    完成停止:F5 02 F8
    如下图框2所示
    在这里插入图片描述

注:本文同样适合后续产品MKS SERVO28D/35D闭环步进电机
下一篇:《MKS SERVO42&57D 闭环步进电机_系列9 上位机通讯示例》
欢迎加入MKS 闭环步进电机技术交流 Q群(948665794)
欢迎光临 创客基地 B站:https://space.bilibili.com/393688975
欢迎光临 创客基地 淘宝店:https://makerbase.taobao.com/
网盘资料下载 https://pan.baidu.com/s/1tBCuDIfBAIRMms82FlLdag?pwd=mks1

相关文章:

MKS SERVO4257D 闭环步进电机_系列8 CAN通讯示例

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈&a…...

UnityVR--组件9--视频组件VideoPlayer

目录 前言 参数解释 RenderMode渲染方式 VideoPlayer类中的API 前言 在之前的VR场景中已经使用过VideoPlayer播放视频(Unity.UI的交互(6)-播放视频),不过在VR中设置是有些不同的,这里更详细地说明一下V…...

Java 深拷贝和浅拷贝

Java 中的深拷贝和浅拷贝是针对对象复制而言的。 浅拷贝(Shallow Copy) 当对象进行浅拷贝时,只会复制对象本身和其中的基本数据类型属性,而不会复制引用对象的实际内容。具体而言,浅拷贝只会创建一个新的对象&#x…...

[ruby on rails] docker

docker安装 ubuntu14.04后自带docker安装包,可以直接安装 sudo apt-get updatesudo apt-get install -y docker.io# 安装后启动sudo service docker start查看docker信息 docker infodocker命令 sudo service docker start sudo service docker stop sudo servic…...

网络协议——STP协议是什么?是如何实现的?

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、STP协议是什么 二、为什么需要STP协议 三、STP的实现过程 ​编辑 1、选举跟桥 2、给非跟桥交换机选举跟端口 3、给每个网段选…...

【C++】智能指针 学习总结 |std::shared_ptr |std::unique_ptr | std::weak_ptr

文章目录 前言一、智能指针介绍二、普通指针和智能指针的比较案例三、std::shared_ptr四、std::unique_ptr五、std::weak_ptr六、std::shared_ptr |std::unique_ptr | std::weak_ptr三大智能指针的区别 前言 参考答案:chatgpt 一、智能指针介绍 智能指针是C的一种…...

iptables防火墙

文章目录 一.linux防火墙基础1.linux 包过滤防火墙概述1.1netfilter1.2 iptables 2.包过滤的工作层次2.1 通信的五元素和四元素 3.iptables 的表、链结构3.1 规则链3.2 默认包括5种规则链3.3 规则表3.4 默认包括4个规则表 二.数据包过滤的匹配流程1.规则表之间的顺序2.规则链之…...

properties、yaml作为配置文件的特点

说明:在软件开发中,经常需要把一些配置写在文件中,如数据库配置、MyBatis配置等。这样,后续如果数据库参数有改动,就可以避免直接对代码做修改,只要修改配置文件中关于数据库的配置。关于配置文件的选择&am…...

JavaSE-03 【流程控制语句】

文章目录 JavaSE-03 【流程控制语句】第一章 流程控制1.1 流程概述1.2 顺序结构 第二章 判断语句2.1 判断语句---if2.2 判断语句---if...else2.3 判断语句---if...else if ... else 第三章 选择语句3.1 选择语句--switch3.2 case的穿透性 第四章 循环语句4.1 循环概述4.2 循环语…...

笔记本电脑的BIOS是怎么保护安全的?

随着攻防技术的不断演进,像BIOS攻击、高级网络代码攻击等手段层出不穷,“受害者”也不仅限于企业级服务器、存储,很多魔爪也开始伸向了拥有商业机密数据的PC。 BIOS是Basic Input/Output System(基本输入/输出系统)的…...

Xubuntu之将rm删除内容移至回收站(一百七十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...

STM32F407实现1588v2(ptpd)

硬件: STM32F407ZGT6开发板 软件: VSCode arm-none-eabi-gcc openOCD st-link 在github搜到一个在NUCLEO-F429ZI开发板上移植ptpd的example,因为和F407差别很小,所以就打算用这个demo移植到手头的开发板上。因为目前只需要…...

架构师如何找到自己的商业模式

作为一个架构师,必须要在有限的资源下最大化架构活动所带来的商业价值。对于任何一个架构活动而言,架构师的可用资源,包括商业成本、研发成本、时间成本、迁移成本等等,都是非常有限的。但架构活动就是要在这些限制条件之下&#…...

SQLServer2022安装(Windows),已验证

一、SQLServer2022下载 1、官网下载地址 SQL Server 下载 | Microsoft 2、下载安装包 2.1、选择Developer版本,立即下载。 2.2、打开下载文件夹,双击运行SQL2022-SSEI-Dev.exe 尝试运行SQL2022-SSEI-Dev.exe,会收到以下信息:“…...

facenet, dlib人脸识别,人体检测,云数据库mysql,QQ邮箱,手机验证码,语音播报

目录 部分代码展示: 录入部分 识别部分​编辑 活体检测部分​编辑 同步到云数据库MySQL 其他操作 部分图片展示: 完整代码加ui链接: 涉及到的一些知识点的文章 部分代码展示: 录入部分 识别部分 活体检测部分 同步到云数…...

Spring Boot 面试题——定时任务

目录 1.什么是 cron 表达式?如何使用?2.Scheduled 注解有什么作用?3.介绍一下 spring-boot-starter-quartz。4.在 Spring Boot 中如何实现定时任务?4.1.使用 Schedule 注解4.2.Quartz 框架 1.什么是 cron 表达式?如何使…...

总建面64万平,配3所幼儿园+54班九年制学校,坪山江岭竹元规划

近日,坪山区城市更新和土地整备局发布,关于《坪山区马峦街道江岭竹元片区城市更新单元规划》已通过深圳市城市规划委员会法定图则委员会审批。现予以公告。 项目位于坪山区马峦街道,南邻南坪快速路,北邻比亚迪路,东西两…...

python3 爬虫相关学习7:使用 BeautifulSoup下载网页图片到本地文件夹

目录 1 一个爬图片pic的代码的例子 1.1 学习的原文章 1.2 原始代码的问题总结 问题1 问题2 问题3 其他问题 1.3 原始代码 2 直接在cmd里 python运行报错 和 处理 2.1 运行报错 2.2 报错原因: 没有提前安装这个bs4 模块 2.3 如何提前知道我的python环境…...

windows平台python脚本执行环境搭建笔记

1.python脚本环境下载 这里是原始发布源: https://www.python.org/downloads/release/python-3114/https://www.python.org/downloads/release/python-3114/安装时记得添加进系统path,这样你可以随时调用python环境。 2.扩展模块的安装 step1.找到py…...

MyBatis的动态SQL之OGNL(Object-Graph Navigation Language)表达式以及各种标签的用法

MyBatis的动态SQL 1、if标签的用法2、choose标签的用法3、where标签4、set标签5、trim的用法6、foreach标签7、bind标签 使用过JDBC或者是其他的ORM框架的开发者都知道,在很多操作中都需要去根据具体的条件进行SQL语句的拼接,并且在有些时候一些标点符号…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

12.找到字符串中所有字母异位词

🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...