Emm_V4.2步进闭环驱动器说明书Rev1.1

news2025/1/2 3:12:56

一、产品介绍

1.1 产品简介:

         Emm42_V4.x步进闭环驱动器是张大头智控为满足广大用户需求而自主研发的一款稳定可靠的产品,它是基于上一代Emm42_V3.6版本升级而来,不仅延续了其优秀的FOC矢量闭环控制算法,更在其传统的Dir/Step控制模式基础上拓展了通过UART、RS232、RS485、CAN等总线通讯方式来精准的控制电机,满足了更广大的用户需求,适合3D打印、写字机、雕刻机、PLC控制、机械臂、小车比赛等用户使用。

1.2 硬件介绍:

 1.3 产品特点:

  • 优秀的FOC矢量闭环控制算法,力矩、速度、位置三环控制;
  • 板载工业级高精度16384线磁编码器;
  • 支持开环模式、vFOC矢量闭环、UART/RS232/RS485/CAN通讯等控制模式;
  • 支持多机通讯;
  • 支持通讯方式进行速度/位置控制、读取电机位置和状态、修改系统参数;
  • 带有曲线加减速算法,使电机启动和停止更加顺畅;
  • 支持1~256任意细分步数;
  • 内部有细分插补算法,效率提升5.2倍,改善3D打印直角打圆角的问题;
  • 可支持共阳、共阴信号输入
  • 可支持PLC的NPN或PNP的24V信号直接输入;
  • 支持0.9°和1.8°的42步进电机;
  • 板载小屏幕实时显示系统信息、一键修改系统参数,自动保存,立即生效;
  • 最大转速约2200转+;
  • 电机位置实时更新;
  • 带有线序识别功能;
  • 带有编码器自校准功能;
  • 带有堵转保护功能;
  • 带有自动熄屏功能;
  • 带有恢复出厂设置功能;
  • 提供上位机、外壳文件、STM32/Arduino控制例程、使用说明书等详细资料;

  1.4 产品参数:

主板型号

Emm42_V4.2

主控芯片

高性能32位ARM处理器

驱动电路

8个高品质MOS管组成双H桥驱动

传感器

工业级高精度16384线磁编码器

供电电压

7-28V

工作电流

0-3000mA

信号输入

3.3-24V支持共阳/共阴输入、支持PLC的NPN/PNP的24V输入

闭环反馈频率

力矩环20KHz+

速度环10KHz+

位置环10KHz+

最大脉冲频率

约120KHz

最高转速

2200转+

最大打印速度

180-220mm/s

控制精度

小于0.08°

细分支持

1-256任意细分

串口功能

速度/位置模式控制、读取/修改参数

电机线序识别

有,线序识别更加准确

堵转检测

有,检测方式更加合理

恢复出厂设置

静音/震动

中低速超静音、超低震动

1.5 版本对比:

品名

Emm42_V4.2

Emm42_V3.6

外观

发布时间

2022年5月

2021年3月

处理器

高性能32位ARM处理器

HC32L130F8UA(48MHz)

闭环反馈频率

力矩环20KHz+

速度环10KHz+

位置环10KHz+

力矩环20KHz

速度环10KHz

位置环10KHz

控制模式

CAN/485/232/串口/脉冲

串口/脉冲

细分插补算法

算法效率提升5.2倍,改善转角

最高转速

2200转+

1000转+

最大打印速度

180-220mm/s

150-180mm/s

串口功能

速度/位置模式控制、读取/修改参数

读取参数、修改细分

通讯针座

通用2.54mm插针

2.0mm插针

通讯地址

1-247(0作为广播地址 )

0xE0-0xE9(无广播地址)

通讯校验

可选0x6B、XOR、CRC-8三种

曲线加减速

速度档位

1279个

127个

电机位置

不使能用手转动,电机位置仍更新

不使能电机位置不更新

 1.6 产品尺寸:

二、闭环PCBA安装

2.1 硬件清单:

 2.2 安装步骤:

 三、第一次上电校准

3.1 模块供电接线:

        闭环PCBA安装完成后,首先要先空载通电对编码器进行校准,供电接线如下图所示:

 或者

 

 3D打印主板:直插3D打印转接板到主板,这样供电和信号线就都接好了

3.2 上电自检提示:

接好供电线后上电,闭环驱动板第一次上电会进行自检,可能会出现以下几种情况的提示,请按照相应的步骤进行操作:

(1)提示“Phase A+ A- Error!”或“Phase B+ B- Error!”或“Phase AA BB Error!”

  • 错误类型:电机线序错误;
  • 错误原因:不同品牌的42步进电机所定义的电机线序不一样,市面上通常有以下两种电机线序:

 

  •  操作步骤:请先断电重新调整电机的线序(A+ A- B+ B-),默认配送的电机线是线序1,如果你的42步进电机的线序和我们配送的不一样,请自行调整一下。

电机线序调整方法:用牙签/镊子等尖物把短线6P一头端子戳出来,再按图中的另一种电机线序插回去,重新上电观察屏幕不再提示电机线序错误即可。

(2)提示1秒“Not Cal”,然后进入校准菜单(此时只有4行菜单项,含Exit项)

  • 错误类型:提示编码器未进行校准,属于正常现象;
  • 错误原因:未进行编码器校准;
  • 操作步骤:点击Cal进行编码器校准,此时正常情况下电机会一步一步的正转一圈,然后再反转一圈,如果出现来回转一下,说明线序不对,断电重新调整线序;

(3)提示“Motor Type Error!”

  • 错误类型:电机类型错误;
  • 错误原因:闭环驱动板检测到你的42步进电机不是0.9°/1.8°的步距角,原因可能是:
    1. 第一次上电,电机就带了负载/减速器;
    2. 编码器太靠近磁铁,没有1-3mm的间隙;
    3. 粘磁铁的时候,胶水滴到步进电机轴里面;
    4. 步进电机是坏的;
  • 操作步骤:卸掉电机带的负载/减速器、垫高驱动板,让编码器和磁铁有1-3mm的间隙、更换一个新的42步进电机,然后重新上电进行测试;

(4)提示“Magnet Loss! Enter..”

  • 错误类型:编码器没检测到磁铁;
  • 错误原因:没粘磁铁到电机轴上,没把驱动板固定到电机背后;
  • 操作步骤:按照2.2章节安装步骤进行磁铁的安装和驱动板的固定;

3.3 按键操作说明:

 3.4 校准编码器:

四、主板控制接线

4.1 3D打印主板接线:

 

 (注意:如果需要关闭电机,用手能够拧得动电机的功能,可以在En选项里设置为L,默认是Hold)

4.2 STM32控制接线:

4.3 Arduino控制接线:

 4.4 51单片机控制接线:

4.5 PLC控制接线:

4.6 EN+/EN-/PUL+/PUL-/DIR+/DIR-差分接线:

4.7 通讯控制接线:

4.7.1 串口TTL通讯控制接线:

串口TTL多机通讯控制接线:

 接线:RX接TX,TX接RX,Gnd接Gnd

4.7.2 RS232通讯控制接线:

 RS232多机通讯控制接线:

 接线:RX接RX,TX接TX,Gnd接Gnd

4.7.3 RS485通讯控制接线:

 RS485多机通讯控制接线:

 接线:RX接RX,TX接TX,Gnd接Gnd

4.7.4 CAN通讯控制接线:

 CAN多机通讯控制接线:

 接线:RX接RX,TX接TX,Gnd接Gnd

五、OLED显示与菜单功能介绍

 如上图所示,Emm42_V4.2步进闭环驱动有两种界面,一种是参数显示界面,另一种是菜单设置界面,它们之间相互切换的关系如下:

        (1)按Enter按键,可以从参数显示界面切换到菜单设置界面

        (2)在菜单设置界面,按Next按键,可以向下选择下面一项菜单;按Enter按键,可以确认选择当前菜单,进入到选项里面,再按Enter按键,就是确认选择当前选项;

         (3)长按Next按键1秒/确认选择Exit,可以从菜单设置界面返回参数显示界面

参数显示界面一共有3行显示数据,分别是:

        (1)360° 电机转过的实时位置,在不使能下用手转动电机轴,位置仍更新;

        (2)0.01err 转动的位置误差角度,这是一个实时值,跟速度快慢有关系。

        (3)0clk 驱动板接收到的脉冲数,意味着你主板发送了多少个脉冲。

5.2 菜单功能介绍 :

5.2.1 主菜单功能:

  • 菜单项目:Cal

菜单功能:编码器校准

菜单选项:

菜单作用:闭环模式下对编码器进行线性化插值和电角度对齐,可以提高编码器的线性精度,校准前请确保电机类型(MotType菜单)选择正确,并且确保电机空载校准;

  • 菜单项目:MotType

菜单功能:步进电机类型选择

菜单选项:0.9°、1.8°

菜单作用:选择你的42步进电机类型,是0.9°步进电机,还是1.8°步进电机;

  • 菜单项目:Mode

菜单功能:控制模式选择

菜单选项:CR_OPEN、CR_vFOC、CR_UART、CR_CAN(只有CAN套餐有这个选项)

菜单作用:选择一种控制模式运行:

  1. CR_OPEN:开环模式,不需要编码器和校准就能工作,但速度很低,约100转;
  2. CR_vFOC:脉冲FOC矢量闭环模式,默认工作模式,最大转速约2200+转;
  3. CR_UART:串口TTL通讯控制模式,在CR_vFOC模式基础上封装成总线通讯控制;
  4. CR_ CAN:CAN通讯控制模式,在CR_vFOC模式基础上封装成CAN总线通讯控制;

  • 菜单项目:Ma

菜单功能:设置开环模式的工作电流档位

菜单选项:0、200、400、...、3000

菜单作用:设置开环模式的工作电流档位,闭环模式会根据负载大小自动调整电流的大小,变电流技术。

  • 菜单项目:MStep

菜单功能:设置细分步数

菜单选项:1、2、4、8、16、32、64、128、256

菜单作用:设置闭环驱动的细分,要与你的主板设置的细分相同,默认16细分。此外,常规细分1、2、4、8、16、32、64、128、256可以在菜单上修改,其他细分如67细分,需要通过串口/上位机发送命令进行修改;

  • 菜单项目:En

菜单功能:设置En端口的有效电平

菜单选项:H、L、Hold

菜单作用:选择En端口的有效电平:

  1.  H: En端口高电平有效,即En端口控制到高电平电机使能,低电平不使能;
  2.  L: En端口低电平有效,即En端口控制到低电平电机使能,高电平不使能;
  3. Hold:En端口一直有效,即不管En端口是高电平还是低电平,电机一直使能;

注意:En端口不接线情况下,En端口默认是高电平状态;

  • 菜单项目:Dir

菜单功能:设置电机旋转的正方向

 菜单选项:CW、CCW

菜单作用:选择一种电机旋转的正方向,对于3D打印用户来说,电机移动方向不对,可以在修改主板固件的情况下,修改这个选项来调整电机旋转的方向;

  • 菜单项目:StpEdge

菜单功能:设置闭环电机接收脉冲的边沿检测方式

菜单选项:Rising、Falling、BothEdge

菜单作用:设置闭环电机接收脉冲的边沿检测方式,默认Rising(上升沿检测),可以修改为Falling(下降沿检测)或者BothEdge(双边沿检测)。

  • 菜单项目:StpEdge

菜单功能:设置闭环电机接收脉冲的边沿检测方式

菜单选项:Rising、Falling、BothEdge

菜单作用:设置闭环电机接收脉冲的边沿检测方式,默认Rising(上升沿检测)。

  • 菜单项目:StpBuf

菜单功能:启用/不启用闭环电机接收脉冲的缓冲器,缓冲器为128的长度

菜单选项:Disable、Enable

菜单作用:启用/不启用闭环电机接收脉冲的缓冲器,缓冲器为128的长度;

  • 菜单项目:Protect

菜单功能:设置堵转保护功能

菜单选项:OnlySta、Enable

菜单作用:设置电机堵转后自动关闭,保护电机和闭环驱动器不受破坏;

  1. OnlySta:不开启电机堵转保护,电机发生堵转时,LED常亮提示;
  2. Enable: 开启电机堵转保护,电机发生堵转时,电机自动关闭且LED常亮提示;

  • 菜单项目:MPlyer

菜单功能:设置内部256细分插补功能

菜单选项:Disable、Enable

菜单作用:使能(Enable)选项后,闭环驱动器会将你设置的当前细分值,如16细分,内部自动插补到最高256细分去运行,这将有效的减少电机低速运动时的震动和噪音;

  • 菜单项目:UartBaud

菜单功能:设置串口TTL通讯波特率

菜单选项:Disable、9600、19200、25000、38400、57600、115200

菜单作用:设置串口TTL通讯波特率,默认是38400;

  • 菜单项目:UartAddr

菜单功能:设置串口TTL多机通讯地址

菜单选项:1、2、3、4、5、6、7、8、9、10

菜单作用:设置串口TTL多机通讯地址,常规地址1-10可以在菜单上修改,其他地址如67地址,需要通过串口/上位机发送命令进行修改,支持1-247的地址,0为广播地址,发送命令时,如果地址为0,则所有连接到通讯上的闭环驱动都会执行该命令;

  • 菜单项目:DatCheck

菜单功能:设置串口TTL通讯校验字

菜单选项:0x6B、XOR、CRC-8

菜单作用:设置串口TTL通讯校验字,用于在每条命令的最后加上一个字节的该校验字,保证通讯的准确。0x6B为固定校验字,XOR和CRC-8校验见“通讯控制”一节;

  • 菜单项目:Protocol

菜单功能:设置通讯控制协议

菜单选项:Custom

菜单作用:选择一种通讯控制协议,目前仅支持自定义协议,用于后面拓展支持更多的通讯协议,如Modbus等;

  • 菜单项目:PCmdRet

菜单功能:设置串口通讯位置控制指令,内部发送完成脉冲后,是否返回01 9F 6B

菜单选项:Disable、Enable

菜单作用:设置串口通讯位置控制指令,内部发送完成脉冲后,是否返回01 9F 6B,默认返回,指示闭环电机已经全部更新完成该位置控制指令。

  • 菜单项目:O_Mode

菜单功能:设置单圈上电自动回零模式

菜单选项:Disable、DirMode、NearMode

菜单作用:Emm42_V4.0闭环驱动支持单圈上电自动回零功能,有下面两种模式;

  1. Disable: 不开启单圈上电自动回零功能;
  2. DirMode: 方向模式单圈上电自动回零,根据O_Dir设置的方向进行回零;
  3. NearMode:就近模式单圈上电自动回零,根据靠近零点的方向进行回零;

注意:这是单圈上电自动回零,并多圈,回零成功/失败,可通过通讯读取标志位;

  • 菜单项目:Set O

菜单功能:设置单圈上电自动回零的零点

菜单选项:

菜单作用:开启O_Mode后,需要通过该选项设置单圈上电自动回零的零点,设置成功后,会提示“Origin Set Done!”;

  • 菜单项目:O_Speed

菜单功能:设置单圈上电自动回零的速度档位

菜单选项:1、2、3、4、5

菜单作用:选择一种单圈上电自动回零的速度档位,档位越大,回零速度越快,相应的自动回零时的扭矩就越少,默认是3档位的回零速度;

  • 菜单项目:O_Dir

菜单功能:设置方向模式单圈上电自动回零的方向

菜单选项:CW、CCW

菜单作用:设置方向模式单圈上电自动回零的方向;

  • 菜单项目:ACC

菜单功能:设置闭环驱动器内部的加速度

菜单选项:Disable、286、412、538、664、790、916、1042

菜单作用:电机运行过程中观察OLED屏幕的第2行误差数据变化,如果该数据一直在较大值上(8.多以上)跳动,可以将ACC增加至538或者更高,可以提高打印速度,但应该要确保XY轴的ACC选项值保持一样,并且不宜设置过大,令误差数据变化维持在6.多以下跳动比较合适;

5.2.2 CAN通讯菜单功能

  • 菜单项目:CAN_FrTy

菜单功能:设置CAN通讯数据帧的帧类型

菜单选项:Standard、Extended

菜单作用:设置CAN通讯数据帧的帧类型,Standard为标准帧,Extended为扩展帧;

  • 菜单项目:CAN_FrID

菜单功能:设置CAN通讯数据帧的帧ID

菜单选项:1、2、3、4、5、6、7、8、9、10

菜单作用:设置CAN通讯数据帧的帧ID,类似于串口TTL通讯的地址;

  • 菜单项目:CAN_Rate

菜单功能:设置CAN通讯数据帧的帧速率

菜单选项:50K、250K、500K、1MHz

菜单作用:设置CAN通讯数据帧的帧速率,类似于串口TTL通讯的波特率;

  • 菜单项目:DatCheck

菜单功能:设置CAN通讯的校验字

菜单选项:0x6B、XOR、CRC-8

菜单作用:与串口TTL通讯的DatCheck功能一样,见主菜单“DatCheck”说明;

  • 菜单项目:Protocol

菜单功能:设置CAN通讯的控制协议

菜单选项:Custom

菜单作用:与串口TTL通讯的Protocol功能一样,见主菜单“Protocol”说明;

六、脉冲控制 

6.1 基础知识:

        两相42步进电机,通常有0.9°和1.8°两种类型,后者最为常用。

        以1.8°电机类型为例,1.8°是指步进电机的步距角,通俗的含义是,在不进行细分(即1细分)的情况下,发送1个脉冲,步进电机就转动一个步距角,即1.8°,因此,发送200个脉冲就可以让电机转动一圈,即200 × 1.8°= 360°。

        然而,通常情况下,驱动器厂商为了减少步进电机运行时的震动和噪音,提高运行质量,都会采用细分驱动技术,也就是将一个步距角拆分成更小的角度去驱动和控制。例如16细分下,你需要发送16个脉冲才能让电机转动一个步距角1.8°,也就是说,16细分下,你发送1个脉冲,电机会转动1.8°/ 16 = 0.1125°,发送3200个脉冲,电机才会转动一圈。

        步进电机的细分驱动技术,能够有效减少步进电机运行时的震动和噪音,并在一定程度上提高了精度,但受限于实际情况的影响,精度并不会随着细分数增大而继续提高。

6.2 脉冲控制:

        脉冲信号,相当于控制器的一个IO取反两次,标准的脉冲信号如下图所示:

         脉冲控制,简而言之,就是通过向闭环电机的Stp引脚发送脉冲来精确的控制电机运行的速度和角度。其中,可以通过改变脉冲周期T的持续时间来改变闭环电机运行过程中的速度,脉冲周期T的时间越短,闭环电机运行越快。其次,可以通过发送的脉冲数量来控制闭环电机最终运行的角度,以1.8°步进电机,16细分为例,就可以通过向闭环电机发送3200个脉冲来让电机旋转一圈。此外 ,如果需要控制电机的方向,可以通过控制Dir引脚的电平状态来控制,高电平一个方向,低电平就是另一个方向。另外,如果还想要控制闭环电机的使能状态,可以通过控制En引脚的电平状态来控制,对于Emm42闭环电机来说,控制En使能引脚的电平状态之前,需要先在En菜单选项里设置En端口的有效电平,以设置L为例,就是低电平有效的意思,那可以控制En引脚为低电平状态,闭环电机就处于使能状态,可以正常接收外部发送的方向和脉冲信号,如果控制En引脚为高电平状态,闭环电机就处于不使能状态,此时可以用手拧动电机轴,闭环电机也不会响应外部发送的方向和脉冲信号。脉冲控制如下图所示:

 七、通讯控制

7.1 通讯控制说明:

        按照前面的章节安装并校准好Emm42闭环,再根据对应的接线图接好线路后 ,就可以对闭环电机进行通讯控制。

        通讯控制是指使用另一个单片机/PLC板卡/电脑等上位机,通过发指令的形式对闭环电机进行控制,发指令又是指按照既定通讯协议的数据格式发送一串十六进制数据,发送的这一串十六进制数据就是一条命令。

        Emm42闭环电机的通讯协议是自定义协议,通讯协议每一条命令的格式会在下面的章节分别给出,根据通讯协议对闭环电机下发不同的命令,就可以对其进行读取/修改系统参数,也可以进行速度/位置模式的控制。

7.2 串口通讯控制:

        使用串口通讯控制之前,需要先对闭环电机进行一些参数的设置:

        首先,在Mode菜单中选择CR_UART,表示使用串口通讯进行控制;

        接着,在UartBaud菜单中选择与你上位机相同的波特率,默认是38400;

        再者,在UartAddr菜单中选择当前闭环电机的通讯地址,默认是1;

        然后,在DatCheck菜单中选择通讯的校验方式,默认是固定校验,即0x6B;

        最后,在Protocol菜单中选择一种通讯协议,当前仅支持自定义协议,暂不用设置;

        设置完成后,就可以通过串口通讯的方式对Emm42闭环电机进行控制。例如,可以使用通用的串口助手软件,或者使用张大头智控提供的上位机软件,对Emm42闭环电机下发命令,如图所示:

串口助手:

 上位机软件:

返回命令说明:

        上位机向闭环电机下发命令后,它会根据不同的情况返回不同的命令:

  • 收到并确认命令正确,返回:地址 + 02 + 校验字节,如返回01 02 6B
  • 收到但确认命令错误,返回:地址 + EE + 校验字节,如返回01 EE 6B
  • 收到但确认地址不对,返回:不返回。

        注意:Emm42闭环电机可设置的地址为1-247,地址0作为广播地址,上位机以0地址下发命令后,所有连接到上位机的闭环电机都会执行这条命令,如果其中有地址为1的闭环电机,则它会返回命令,其他地址的闭环电机不返回命令。

        下面以默认的设置,即通讯地址UartAddr为1,通讯校验DatCheck为0x6B为例,说明串口通讯协议中每一条命令的数据格式:

  • 命令功能:解除堵转保护

命令格式:地址 + 0x0E + 0x52 + 校验字节

命令示例:发送01 0E 52 6B

命令作用:只有触发了堵转保护功能后,下发该命令才有效,可以解除堵转保护;

7.2.2 读取参数命令:

  • 命令功能:读取编码器值

命令格式:地址 + 0x30 + 校验字节

命令示例:发送01 30 6B

命令作用:读取位置传感器的数值,数据类型为uint16_t,范围为0-65535,例如返回01 23 15 6B后,上位机可以对数据进行拼接:

编码器数值 = (uint16_t)(

                                   ((uint16_t)0x23 << 8) |

                                   ((uint16_t)0x15 << 0)

                                   );

  • 命令功能:读取输入脉冲数

命令格式:地址 + 0x33 + 校验字节

命令示例:发送01 33 6B

命令作用:读取输入脉冲的数值,即对应小屏幕上的第3行的数据,数据类型为

int32_t,范围为-2147483647-2147483647,例如返回01 14 63 33 51 6B后,上位机

可以对数据进行拼接:

输入脉冲数 = (int32_t)(

                                   ((int32_t)0x14 << 24) |

                                   ((int32_t)0x63 << 16) |

                                   ((int32_t)0x33 << 8)  |

                                   ((int32_t)0x51 << 0)

                                   );

  • 命令功能:读取电机实时位置

命令格式:地址 + 0x36 + 校验字节

命令示例:发送01 36 6B

命令作用:读取电机的实时位置,即对应小屏幕上的第1行的数据,数据类型为int32_t,范围为-2147483647-2147483647,例如返回01 56 23 75 04 6B后,上位机可以对数据进行拼接:

电机位置 = (int32_t)(

                                   ((int32_t)0x56 << 24) |

                                   ((int32_t)0x23 << 16) |

                                   ((int32_t)0x75 << 8)  |

                                   ((int32_t)0x04 << 0)

                                   );

转换成角度的计算方式: 电机转过的角度 = (电机位置 * 360) / 65536;

  • 命令功能:读取位置误差

命令格式:地址 + 0x39 + 校验字节

命令示例:发送01 39 6B

命令作用:读取电机设定位置与实际位置的差值,即对应小屏幕上的第2行的数据,

数据类型为int16_t,范围为-32767-32767,例如返回01 75 84 6B后,上位机可以对数据进行拼接:

位置误差 = (int16_t)(

                                   ((int16_t)0x75 << 8) |

                                   ((int16_t)0x84 << 0)

                                   );

转换成角度的计算方式: 电机转过的角度 = (位置误差 * 360) / 65536;

  • 命令功能:读取使能状态

命令格式:地址 + 0x3A + 校验字节

命令示例:发送01 3A 6B

命令作用:读取闭环电机的使能状态,数据类型为uint8_t,数值为00或01,例如:

返回01 00 6B表示闭环电机处于不使能状态;

返回01 01 6B表示闭环电机处于使能状态;

  • 命令功能:读取堵转标志

命令格式:地址 + 0x3E + 校验字节

命令示例:发送01 3E 6B

命令作用:读取闭环电机的堵转标志,数据类型为uint8_t,数值为00或01,例如:

返回01 00 6B表示闭环电机当前没发生堵转;

返回01 01 6B表示闭环电机当前处于堵转状态;

  • 命令功能:读取单圈上电自动回零状态标志

命令格式:地址 + 0x3F + 校验字节

命令示例:发送01 3F 6B

命令作用:读取闭环电机的堵转标志,数据类型为uint8_t,数值为00或01,例如:

返回01 00 6B表示上电时闭环电机触发单圈上电自动回零状态正常;

返回01 01 6B表示上电时闭环电机触发单圈上电自动回零状态不正常,如回零过程堵转、回零方向设置错误等;

7.2.3 修改参数命令:

  • 命令功能:修改当前细分步数

命令格式:地址 + 0x84 + 细分值 + 校验字节

命令示例:发送01 84 10 6B

命令作用:修改当前细分步数为16,该命令可以将闭环电机当前的细分步数修改为1-256任意细分步数,例如:

发送01 84 00 6B修改闭环电机当前细分步数为256;

发送01 84 03 6B修改闭环电机当前细分步数为3;

发送01 84 FF 6B修改闭环电机当前细分步数为255;

  • 命令功能:修改当前串口通讯地址

命令格式:地址 + 0xAE + 串口通讯地址 + 校验字节

命令示例:发送01 AE 10 6B

命令作用:修改当前串口通讯地址为16,该命令可以将闭环电机当前的串口通讯地址修改为1-247任意数值,例如:

发送01 84 04 6B修改闭环电机当前串口通讯地址为4;

发送01 84 46 6B修改闭环电机当前串口通讯地址为70;

7.2.4 运动控制命令:

  • 命令功能:控制闭环电机的使能状态

命令格式:地址 + 0xF3 + 使能状态 + 校验字节

命令示例:发送01 F3 00 6B

命令作用:控制闭环电机的使能状态,例如:

发送01 F3 00 6B可以控制闭环电机处于不使能状态;

发送01 F3 01 6B可以控制闭环电机处于使能状态;

  • 命令功能:控制闭环电机的正反转,即速度模式控制

命令格式:地址 + 0xF6 + 方向和速度(共用2个字节) + 加速度 + 校验字节

命令示例:发送01 F6 14 FF 00 6B

其中,0x14 0xFF两个字节表示方向和速度,最高的半字节0x1表示方向,剩下的0x4FF表示速度档位,最大为4FF,即1279个速度档位;方向和速度后面的字节0x00

表示加速度档位,即启动和停止时的曲线加减速档位,加速度值如果是0xFF,即255,则不启用曲线加减速功能,直接以指定的速度去运行。如果需要控制闭环电机停止,可以将速度档位设置为0发送命令,例如,发送01 F6 10 00 00 6B或01 F6 00 00 00 6B都可以使闭环电机停止运动。

命令作用:控制闭环电机按照设定的方向、速度和加速度进行一直旋转,加速度是指设置启动和停止时曲线加减速档位,可以减少电机启动和停止的震动,例如:

发送01 F6 12 FF 00 6B可以使闭环电机以逆时针方向,0x2FF速度档位,0x00加速度档位一直旋转;

发送01 F6 02 FF FF 6B可以使闭环电机以顺时针方向,0x2FF速度档位,0xFF加速度档位一直旋转;

发送01 F6 10 00 00 6B可以使闭环电机以0x00加速度档位缓慢停止;

发送01 F6 10 00 FF 6B可以使闭环电机立即停止;

  • 命令功能:存储/清除闭环电机正反转,即速度模式当前的参数,上电会自动运行

命令格式:地址 + 0xFF + 存储/清除 + 校验字节

命令示例:发送01 FF C8 6B(存储)、发送01 FF CA 6B(清除)

命令作用:存储/清除闭环电机正反转,即速度模式当前运行的的方向/速度/加速度参数,存储后下次上电会按照这些参数自动运行,例如:

发送01 FF C8 6B存储闭环电机正反转,即速度模式当前的参数;

发送01 FF CA 6B清除闭环电机上一次存储的参数;

  • 命令功能:控制闭环电机相对运动的角度,即位置模式控制

命令格式:

地址 + 0xFD + 方向和速度(2字节) + 加速度 + 脉冲数(3字节) + 校验字节

命令示例:01 FD 14 FF 00 00 0C 80 6B

其中,0x14 0xFF两个字节表示方向和速度,最高的半字节0x1表示方向,剩下的0x4FF表示速度档位,最大为4FF,即1279个速度档位;方向和速度后面的字节0x00表示加速度档位,即启动和停止时的曲线加减速档位,加速度值如果是0xFF,即255,则不启用曲线加减速功能,直接以指定的速度去运行。如果需要控制闭环电机缓慢停止,可以将速度档位设置为0,如果需要控制闭环电机立即停止,可以将速度档位设置为0,加速度档位设置为255;加速度档位后面的3个字节是脉冲数,例如16细分下发送3200个脉冲就可以让1.8°的电机转动一圈。

命令作用:控制闭环电机按照设定的方向、速度和加速度进行相对位置运动,例如:

发送01 FD 02 FF 00 00 0C 80 6B可以使闭环电机以顺时针方向,0x2FF速度档位,0x00加速度档位运动0x000C80个脉冲,即3200个脉冲;

发送01 FD 12 FF 45 00 19 00 6B可以使闭环电机以顺时针方向,0x2FF速度档位,0x45加速度档位运动0x001900个脉冲,即6400个脉冲;

发送01 FD 10 00 FF 00 19 00 6B可以使闭环电机缓慢停止(速度档位为0);

发送01 FD 12 FF FF 00 00 00 6B可以使闭环电机立即停止(脉冲为0,加速度为255);

注意:发送该命令后,闭环电机收到指令,会先返回01 02 6B的命令进行应答;紧接着,闭环电机内部更新完全部的脉冲(位置),会返回01 9F 6B的命令,表示闭环电机已经全部更新完脉冲(位置),如果不想返回,可在PcmdRet选项设置为Disable。

7.3 CAN通讯:

使用CAN通讯控制之前,需要先对闭环电机进行一些参数的设置:

首先,在Mode菜单中选择CR_CAN,表示使用CAN通讯进行控制;

接着,在CAN_FrTy菜单中选择与你上位机相同的帧类型,默认是标准帧类型;

再者,在CAN_FrID菜单中选择当前闭环电机的帧ID,默认是1;

接着,在CAN_Rate菜单中选择与你上位机相同的CAN通讯速率,默认是500K;

然后,在DatCheck菜单中选择通讯的校验方式,默认是固定校验,即0x6B;

最后,在Protocol菜单中选择一种通讯协议,当前仅支持自定义协议,暂不用设置;

设置完成后,就可以通过CAN通讯的方式对Emm42闭环电机进行控制。需要注意的是,在CAN通讯上,闭环电机返回命令时,除帧ID外,数据段的第一个字节仍是帧ID。

返回命令说明:

上位机向闭环电机下发命令后,它会根据不同的情况返回不同的命令:

  • 收到并确认命令正确,返回:硬件帧ID + 02 + 校验字节,如返回:帧ID 02 6B
  • 收到但确认命令错误,返回:硬件帧ID + EE + 校验字节,如返回:帧ID EE 6B
  • 收到但确认硬件帧ID不对,返回:不返回。

注意:Emm42闭环电机可设置的帧ID为1-247,帧ID 0作为广播帧,上位机以0为帧ID下发命令后,所有连接到上位机的闭环电机都会执行这条命令,如果其中有帧ID为1的闭环电机,则它会返回命令,其他帧ID的闭环电机不返回命令。

下面以默认的设置,即帧ID CAN_FrID为1,通讯校验DatCheck为0x6B为例,说明CAN通讯协议中每一条命令的数据格式:

7.3.1 触发动作命令:

  • 命令功能:触发编码器校准

命令格式:硬件帧ID + 0x06 + 0x45 + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 06 45 6B

命令作用:下发该命令后,可以触发闭环电机进行编码器校准,对应屏幕上的Cal;

  • 命令功能:设置当前位置为零点

命令格式:硬件帧ID + 0x0A + 0x6D + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 0A 6D 6B

命令作用:下发该命令后,可以将闭环电机的当前电机位置清零,即设置为零点;

  • 命令功能:解除堵转保护

命令格式:硬件帧ID + 0x0E + 0x52 + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 0E 52 6B

命令作用:只有触发了堵转保护功能后,下发该命令才有效,可以解除堵转保护;

7.3.2 读取参数命令:

  • 命令功能:读取编码器值

命令格式:硬件帧ID + 0x30 + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 30 6B

命令作用:读取位置传感器的数值,数据类型为uint16_t,范围为0-65535,例如

返回01 23 15 6B后,上位机可以对数据进行拼接:

编码器数值 = (uint16_t)(

                                   ((uint16_t)0x23 << 8) |

                                   ((uint16_t)0x15 << 0)

                                   );

  • 命令功能:读取输入脉冲数

命令格式:硬件帧ID + 0x33 + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 33 6B

命令作用:读取输入脉冲的数值,即对应小屏幕上的第3行的数据,数据类型为

int32_t,范围为-2147483647-2147483647,例如返回01 14 63 33 51 6B后,上位机可以对数据进行拼接:

输入脉冲数 = (int32_t)(

                                    ((int32_t)0x14 << 24) |

                                   ((int32_t)0x63 << 16) |

                                   ((int32_t)0x33 << 8)  |

                                   ((int32_t)0x51 << 0)

                                   );

  • 命令功能:读取电机实时位置

命令格式:硬件帧ID + 0x36 + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 36 6B

命令作用:读取电机的实时位置,即对应小屏幕上的第1行的数据,数据类型为int32_t,范围为-2147483647-2147483647,例如返回01 56 23 75 04 6B后,上位机可以对数据进行拼接:

电机位置 = (int32_t)(

                                ((int32_t)0x56 << 24) |

                                ((int32_t)0x23 << 16) |

                                ((int32_t)0x75 << 8)  |

                                ((int32_t)0x04 << 0)

                                );

转换成角度的计算方式: 电机转过的角度 = (电机位置 * 360) / 65536;

  • 命令功能:读取位置误差

命令格式:硬件帧ID + 0x39 + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 39 6B

命令作用:读取电机设定位置与实际位置的差值,即对应小屏幕上的第2行的数据,

数据类型为int16_t,范围为-32767-32767,例如返回01 75 84 6B后,上位机可以对数据进行拼接:

位置误差 = (int16_t)(

                                ((int16_t)0x75 << 8) |

                                ((int16_t)0x84 << 0)

                                );

转换成角度的计算方式: 电机转过的角度 = (位置误差 * 360) / 65536;

  • 命令功能:读取使能状态

命令格式:硬件帧ID + 0x3A + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 3A 6B

命令作用:读取闭环电机的使能状态,数据类型为uint8_t,数值为00或01,例如:

返回01 00 6B表示闭环电机处于不使能状态;

返回01 01 6B表示闭环电机处于使能状态;

  • 命令功能:读取堵转标志

命令格式:硬件帧ID + 0x3E + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 3E 6B

命令作用:读取闭环电机的堵转标志,数据类型为uint8_t,数值为00或01,例如:

返回01 00 6B表示闭环电机当前没发生堵转;

返回01 01 6B表示闭环电机当前处于堵转状态;

  • 命令功能:读取单圈上电自动回零状态标志

命令格式:硬件帧ID + 0x3F + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 3F  6B

命令作用:读取闭环电机的堵转标志,数据类型为uint8_t,数值为00或01,例如:

返回01 00 6B表示上电时闭环电机触发单圈上电自动回零状态正常;

返回01 01 6B表示上电时闭环电机触发单圈上电自动回零状态不正常,如回零过程堵转、回零方向设置错误等;

7.3.3 修改参数命令:

  • 命令功能:修改当前细分步数

命令格式:硬件帧ID + 0x84 + 细分值 + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) 84 10 6B

命令作用:修改当前细分步数为16,该命令可以将闭环电机当前的细分步数修改为1-256任意细分步数,例如:

发送01 84 00 6B修改闭环电机当前细分步数为256;

发送01 84 03 0x6B修改闭环电机当前细分步数为3;

发送01 84 FF 0x6B修改闭环电机当前细分步数为255;

  • 命令功能:修改当前串口通讯地址

命令格式:硬件帧ID + 0xAE + 串口通讯地址 + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) AE 10 6B

命令作用:修改当前串口通讯地址为16,该命令可以将闭环电机当前的串口通讯地址修改为1-247任意数值,例如:

发送01 84 04 6B修改闭环电机当前串口通讯地址为4;

发送01 84 46 6B修改闭环电机当前串口通讯地址为70;

7.3.4 运动控制命令:

  • 命令功能:控制闭环电机的使能状态

命令格式:硬件帧ID + 0xF3 + 使能状态 + 校验字节

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) F3 00 6B

命令作用:控制闭环电机的使能状态,例如:

发送01 F3 00 6B可以控制闭环电机处于不使能状态;

发送01 F3 01 6B可以控制闭环电机处于使能状态;

  • 命令功能:控制闭环电机的正反转,即速度模式控制

命令格式:硬件帧ID + 0xF6 + 方向和速度(共用2个字节) + 加速度 + 校验字

命令示例:发送01(设置你的CAN通讯的硬件帧ID为01) F6 14 FF 00 6B

其中,0x14 0xFF两个字节表示方向和速度,最高的半字节0x1表示方向,剩下的0x4FF表示速度档位,最大为4FF,即1279个速度档位;方向和速度后面的字节0x00

表示加速度档位,即启动和停止时的曲线加减速档位,加速度值如果是0xFF,即255,则不启用曲线加减速功能,直接以指定的速度去运行。如果需要控制闭环电机停止,可以将速度档位设置为0发送命令,例如,发送01 F6 10 00 00 6B或01 F6 00 00 00 6B都可以使闭环电机停止运动。

命令作用:控制闭环电机按照设定的方向、速度和加速度进行一直旋转,加速度是指设置启动和停止时曲线加减速档位,可以减少电机启动和停止的震动,例如:

发送01 F6 12 FF 00 6B可以使闭环电机以逆时针方向,0x2FF速度档位,0x00加速度档位一直旋转;

发送01 F6 02 FF FF 6B可以使闭环电机以顺时针方向,0x2FF速度档位,0xFF加速度档位一直旋转;

发送01 F6 10 00 00 6B可以使闭环电机以0x00加速度档位缓慢停止;

发送01 F6 10 00 FF 6B可以使闭环电机立即停止;

  • 命令功能:存储/清除闭环电机正反转,即速度模式当前的参数,上电会自动运行

命令格式:硬件帧ID + 0xFF + 存储/清除 + 校验字节

命令示例:

发送01(设置你的CAN通讯的硬件帧ID为01) FF C8 6B(存储)

发送01(设置你的CAN通讯的硬件帧ID为01) FF CA 6B(清除)

命令作用:存储/清除闭环电机正反转,即速度模式当前运行的的方向/速度/加速度参数,存储后下次上电会按照这些参数自动运行,例如:

发送01 FF C8 6B存储闭环电机正反转,即速度模式当前的参数;

发送01 FF CA 6B清除闭环电机上一次存储的参数;

  • 命令功能:控制闭环电机相对运动的角度,即位置模式控制

命令格式:

硬件帧ID + 0xFD + 方向和速度(2字节) + 加速度 + 脉冲数(3字节) + 校验字

命令示例:01(设置你的CAN通讯的硬件帧ID为01) FD 14 FF 00 00 0C 80 6B

        其中,0x14 0xFF两个字节表示方向和速度,最高的半字节0x1表示方向,剩下的0x4FF表示速度档位,最大为4FF,即1279个速度档位;方向和速度后面的字节0x00表示加速度档位,即启动和停止时的曲线加减速档位,加速度值如果是0xFF,即255,则不启用曲线加减速功能,直接以指定的速度去运行。如果需要控制闭环电机缓慢停止,可以将速度档位设置为0,如果需要控制闭环电机立即停止,可以将速度档位设置为0,加速度档位设置为255;加速度档位后面的3个字节是脉冲数,例如16细分下发送3200个脉冲就可以让1.8°的电机转动一圈。

命令作用:控制闭环电机按照设定的方向、速度和加速度进行相对位置运动,例如:

        发送01 FD 02 FF 00 00 0C 80 6B可以使闭环电机以顺时针方向,0x2FF速度档位,0x00加速度档位运动0x000C80个脉冲,即3200个脉冲;

        发送01 FD 12 FF 45 00 19 00 6B可以使闭环电机以顺时针方向,0x2FF速度档位,0x45加速度档位运动0x001900个脉冲,即6400个脉冲;

        发送01 FD 10 00 FF 00 19 00 6B可以使闭环电机缓慢停止(速度档位为0);

        发送01 FD 12 FF FF 00 00 00 6B可以使闭环电机立即停止(脉冲为0,加速度为255);

        注意:发送该命令后,闭环电机收到指令,会先返回01 02 6B的命令进行应答;紧接着,闭环电机内部更新完全部的脉冲(位置),会返回01 9F 6B的命令,表示闭环电机已经全部更新完脉冲(位置),如果不想返回,可在PcmdRet选项设置为Disable。

八、单圈上电自动回零操作说明

8.1 准备工作:

        按照前面章节安装好模块,接好线,并校准好闭环电机,确保闭环电机在闭环模式/串口模式/CAN模式下能够正常的工作。

8.2 设置单圈上电自动回零:

        首先,上电后先设置En选项为H,关闭电机;然后用手拧动电机到零点位置;

        接着,设置O_Mode选项为DirMode方向回零模式(NearMode为就近回零模式)、设置O_Speed选项为3档为回零速度、设置O_Dir选项为CW顺时针回零方向;

        然后,点击Set O设置当前位置为单圈零点。

        紧接着,设置En选项为原来的Hold模式。

        最后,断电,用手拧开电机轴到别处,重新上电,可观察到电机自动回到设置零点。

        注意:如果屏幕显示"Back to", " Origin", "Fail!",回零失败,请将O_Dir选项设置为CCW,重新测试。

九、技术支持及保证

  1. 发货前都会做通电测试,保证可以正式使用才发货。
  2. 有问题可联系我们的客服或技术支持人员,我们将竭诚为您服务。

十、FAQ

(1)请不要带电拔插6P的通讯线和4P的电机线,以免损坏闭环驱动器。

(2)上电校准电机的时候电机左右抖动,或者提示"Reverse", " Lookup", "Error!",请先断电,将A+A-或B+B-两根线对调一下,重新上电校准。

(3)闭环电机运行的时候,出现Err17.99°或抖动,请先断电,检查一下磁铁是否粘偏或粘歪,请重新粘平磁铁到电机轴中心,然后重新上电校准。

(4)串口通讯,用上位机发送指令,提示指令下发失败,请检查串口的接线方式:

  1. 闭环电机与串口TTL模块接线:RX接TX,TX接RX,Gnd接Gnd。
  2. 闭环电机与RS232模块的接线:RX接RX,TX接TX,Gnd接Gnd,3V3接VCC。
  3. 闭环电机与RS485模块的接线:RX接RX,TX接TX,Gnd接Gnd,3V3接VCC。

(5)串口通讯,用上位机发送指令,提示指令参数错误,请将Mode选项改为CR_UART。

(6)3D打印模型倾斜,请确保XY两个轴都加装了闭环驱动,保证运行速度的一致性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/602746.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java003——编写和运行第一个Java程序HelloWorld

一、使用记事本创建Java并运行 1.1、设置文件显示后缀名 目的是为了方便查看文件类型 1.2、创建一个HelloWorld.java文件 java程序文件都是以.java后缀结尾的 1.3、编写Java程序 编写一下程序&#xff0c;并保存 public class HelloWorld {public static void main(Strin…

100天精通Golang(基础入门篇)——第0天: 安装 Go 语言开发环境的基础教程,带你学习Golang之Hello Go !

文章目录 1. 下载 Go 语言的安装包&#xff1a;1. 安装 Go 编译器&#xff1a;- 双击 安装下一步:切换安装路径:下一步:安装等待安装完成安装完成 - 2. 测试安装是否成功&#xff1a;1. 开始学习 Go 语言&#xff1a;1. 创建项目2. 创建 类文件3. 输入类名4. 键入 下方代码块5.…

【C语言】让你不再害怕“指针”【c】【知识点整理】

目录 一.什么是指针&&为什么需要指针&#xff1f; 1.什么是指针&#xff1f; 2.为什么需要指针&#xff1f; 以一个代码为例观察地址&#xff1a;&#xff08;这里我们可以通过调试和打印两种方式观察&#xff09; 1.调试观察&#xff1a; 2.打印观察&#xff08;…

Vue.js 中的 v-if 和 v-show 有什么区别?

Vue.js 中的 v-if 和 v-show 有什么区别&#xff1f; 在 Vue.js 中&#xff0c;v-if 和 v-show 都是用来控制元素的显示和隐藏的指令。但是&#xff0c;它们之间有一些区别。本文将深入探讨 v-if 和 v-show 的区别&#xff0c;并给出一些相关的代码示例。 v-if v-if 是一种条…

python数据分析模块

python数据分析模块 Python与数据分析的关系数据分析常用模块Python数据分析常用类库1&#xff0e;数组计算的数学模块-Numpy2&#xff0e;Pandas——数据分析核心库3&#xff0e;Matplotlib——绘制数据图表的 Python 库4&#xff0e;批量处理Excel文件的模块-xlwings5&#x…

浮点型在内存中的存储,与整型存储方式竟然不同

对于整形的存储方式&#xff0c;大家可以看我的上一篇文章&#xff0c;这篇文章来介绍浮点型在内存中存储方式。 目录 1. 问题 2. 浮点型家族&#xff1a; 3. 存储方式: 4. 读取方式&#xff1a; 5. 解题 1. 问题 我们先来看一段代码&#xff1a; #include <stdio.h&…

人体姿态估计

预测人体关键点有什么作用&#xff1f; 还原人体姿态&#xff0c;输出脸部、手部的关键点坐标3D空间内&#xff0c;关键点变为3维坐标&#xff0c;可以在三维空间中还原人体姿态&#xff0c;可以实现一键换装恢复3D的人体模型实现下游任务–行为理解&#xff0c;根据姿态判断人…

rocketmq-client-go注册消费者组的问题

一、前言 test环境服务启动&#xff0c;通过代码新注册一个customer group进行消费&#xff0c;服务一直报错如下&#xff1a; levelerror msg"fetch offset of mq from broker error" MessageQueue"MessageQueue [topicxxx, brokerNamebroker-a, queueId1]&q…

字节跳动面试挂在2面,复盘后,决定二战.....

先说下我基本情况&#xff0c;本科不是计算机专业&#xff0c;现在是学通信&#xff0c;然后做图像处理&#xff0c;可能面试官看我不是科班出身没有问太多计算机相关的问题&#xff0c;因为第一次找工作&#xff0c;字节的游戏专场又是最早开始的&#xff0c;就投递了&#xf…

人体关键点检测

title: 人体关键点检测 date: 2023-06-02 21:28:46 tags: [MMPose,cv] 人体关键点检测 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9x4nhwLf-1685714024668)(https://fastly.jsdelivr.net/gh/weijia99/blog_imagemain/1685712470039%E4%BA%BA%E4…

【stm32开发】stm32+oled最小系统板资料(原理图、PCB、示例代码)【六一】

&#x1f389;欢迎来到stm32专栏~stm32oled最小系统板 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;stm32专栏 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能…

深度学习训练营之J5周DenseNet+SE-Net实战

深度学习训练营之J5周DenseNetSE-Net实战 原文链接方法介绍SE模块应用分析SE模块的效果对比SE模块代码实现SE模块在DenseNet当中的应用参考内容 原文链接 &#x1f4cc;第J5周&#xff1a;DenseNetSE-Net实战&#x1f4cc; &#x1f368; 本文为&#x1f517;365天深度学习训练…

UART帧格式介绍

UART及通信方式简介 UART Universal Asynchronous Receiver Transmitter 即通用异步收发器&#xff0c;是一种通用的串行、异步通信总线 &#xff0c;该总线有两条数据线&#xff0c;可以实现全双工的发送和接收&#xff0c;在嵌入式系统中常用于主机与辅助设备之间的通信…

Web3 游戏团队如何在项目发布前奠定成功基础——以真实用户支持为核心的运营策略

作者&#xff1a;lesleyfootprint.network 运营 Web3 游戏项目是一项令人兴奋且具有挑战性的任务。无论是对于 NFT 游戏还是链上多人游戏&#xff0c;建立强大且高度参与的用户群体都是游戏成功的关键因素之一。 在本文中&#xff0c;我们将探讨游戏中真实参与和机器人刷量之…

class文件中,常量池之后的相关数据解析!【class二进制文件分析】

前言&#xff1a;前段时间读《深入java虚拟机》介绍到class文件的时候&#xff0c;由于理论知识较多&#xff0c;人总感觉疲惫不堪&#xff0c;就泛泛阅读了一下。在工作中使用起来知识点知道&#xff0c;但是总是需要查阅各种资料。今天有时间&#xff0c;继续整理常量池后面的…

msvcp140.dll丢失的4个解决方法,msvcp140.dll丢失的常见原因

msvcp140.dll是Windows操作系统中的一个动态链接库文件&#xff0c;由Microsoft Visual C程序库所提供。它包含了许多C函数和类的定义&#xff0c;可以为应用程序提供一些基本服务&#xff0c;比如内存管理、文件输入/输出和网络连接等功能。我们在打开游戏或者软件的时候&…

Goby 漏洞更新 |海康威视部分iVMS系统存在文件上传漏洞

漏洞名称&#xff1a;海康威视部分iVMS系统存在文件上传漏洞 English Name&#xff1a;Some Hikvision iVMS file upload vulnerabilitie CVSS core: 9.8 影响资产数&#xff1a;15294 漏洞描述&#xff1a; 海康威视-iVMS综合安防管理平台是一套“集成化”、“数字化”、…

Redis系列----redis网络模型2

一、redis单双线程判断 一、redis单线程定义 主要是指Redis的网络IO和键值对读写是由一个线程来完成的&#xff0c;Redis在处理客户端的请求时包括获取 (socket 读)、解析、执行、内容返回 (socket 写) 等都由一个顺序串行的主线程处理&#xff0c;这就是所谓的“单线程”。这…

VH6501干扰仪的使用

目录 1.VH6501接口介绍 2.使用场景 2.1当VH6501作为硬件接口卡作通信/监测使用时&#xff0c;使用CH1的任意接口与总线连接即可 2.2若将 VH6501 用于干扰总线&#xff0c;针对单节点干扰时则通常情况下接任意一个接口即可 2.3针对多节点干扰时&#xff0c;需要通过CH1的两个…

YCbcr to rgb 笔记

YCbCr 色彩空间的一种 YCbCr或Y’CbCr有的时候会被写作&#xff1a;YCBCR或是Y’CBCR&#xff0c;是色彩空间的一种&#xff0c;通常会用于影片中的影像连续处理&#xff0c;或是数字摄影系统中。Y’为颜色的亮度(luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份。Y’和Y…