当前位置: 首页 > 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语句的拼接,并且在有些时候一些标点符号…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...