actuator应用层基本完成

This commit is contained in:
kirl committed 2026-07-31 17:51:37 +08:00
1 parent 32a3a87ef2
commit a226b15413
9 files changed
+1081 -44

No files matched your search

+25 -1
View File
@@ -30,6 +30,16 @@ extern "C" {
/* 接收超时时间 (毫秒) */
#define EMM_V5_RX_TIMEOUT_MS 100
/**
* Emm 固件角度 ↔ 脉冲 换算
* 1.8° 步进电机 + 16 微步 → 3200 脉冲/圈
* 每脉冲 = 1.8° / 16 = 0.1125°
*/
#define EMM_V5_PULSES_PER_REV 3200
#define EMM_V5_DEG_TO_CLK(deg) ((uint32_t)((float)(deg) * \
(float)EMM_V5_PULSES_PER_REV / 360.0f + 0.5f))
#define EMM_V5_CLK_TO_DEG(clk) ((float)(clk) * 0.1125f)
/* ============================================================
* 系统参数枚举 (与 Arduino 版本一致)
* ============================================================ */
@@ -120,6 +130,19 @@ void Emm_V5_Vel_Control(uint8_t addr, uint8_t dir, uint16_t vel, uint8_t acc, bo
void Emm_V5_Pos_Control(uint8_t addr, uint8_t dir, uint16_t vel, uint8_t acc,
uint32_t clk, bool raF, bool snF);
/**
* @brief 位置模式控制 (角度输入, °)
* @param addr 电机地址
* @param dir 方向, 0=CW, 其他=CCW
* @param vel 速度 0~5000 RPM
* @param acc 加速度 0~255 (0=直接启动)
* @param angle_deg 目标角度 (°), 内部换算为脉冲 (3200=360°)
* @param raF 相对/绝对, false=相对, true=绝对
* @param snF 多机同步标志, false=不启用, true=启用
*/
void Emm_V5_Pos_Control_Angle(uint8_t addr, uint8_t dir, uint16_t vel,
uint8_t acc, float angle_deg, bool raF, bool snF);
/**
* @brief 立即停止电机 (所有控制模式通用)
* @param addr 电机地址
@@ -129,7 +152,8 @@ void Emm_V5_Stop_Now(uint8_t addr, bool snF);
/**
* @brief 触发多机同步开始运动
* @param addr 电机地址
* @param addr 电机地址; 协议约定使用广播地址 0 发送一次,
* 所有以 snF=true 入队的电机会同时启动
*/
void Emm_V5_Synchronous_motion(uint8_t addr);