release v1.0

This commit is contained in:
kirl committed 2026-08-01 13:24:47 +08:00
1 parent 4ce4a33603
commit fef37b36e9
3 files changed
+185 -38

No files matched your search

+59 -5
View File
@@ -106,9 +106,30 @@ extern "C" {
#define ACTUATOR_ANGLE_LIMIT_DEG 270.0f
#endif
/** Fragment 间等待 (ms), 暂用固定延时替代到位检测 */
#ifndef ACTUATOR_FRAG_DELAY_MS
#define ACTUATOR_FRAG_DELAY_MS 500
/** 执行 Cycle / 归零时 XY 轴的速度与加速度档位 (实测 3000RPM + 250 档稳定) */
#ifndef ACTUATOR_EXEC_VEL
#define ACTUATOR_EXEC_VEL 3000
#endif
#ifndef ACTUATOR_EXEC_ACC
#define ACTUATOR_EXEC_ACC 250
#endif
/** Z 旋转轴执行速度与加速度 (结构刚性有限, 必须保持低速; 300RPM 已偏快) */
#ifndef ACTUATOR_EXEC_Z_VEL
#define ACTUATOR_EXEC_Z_VEL 50
#endif
#ifndef ACTUATOR_EXEC_Z_ACC
#define ACTUATOR_EXEC_Z_ACC 100
#endif
/** 运动到位等待裕量 (ms): 无到位反馈, 在计算运动时间上叠加的安全余量 */
#ifndef ACTUATOR_SETTLE_MARGIN_MS
#define ACTUATOR_SETTLE_MARGIN_MS 400
#endif
/** 舵机动作 / 磁铁吸合后的等待时间 (ms) */
#ifndef ACTUATOR_GRIP_SETTLE_MS
#define ACTUATOR_GRIP_SETTLE_MS 300
#endif
/**
@@ -137,10 +158,10 @@ extern "C" {
* 待机械测量后填入。
* ================================================================ */
#ifndef ACTUATOR_OFFSET_X_MM
#define ACTUATOR_OFFSET_X_MM 8.0f /* angle=0° 时工具末端偏右 ~8mm (实测) */
#define ACTUATOR_OFFSET_X_MM 6.6f /* angle=0° 时工具末端偏右 ~8mm (实测) */
#endif
#ifndef ACTUATOR_OFFSET_Y_MM
#define ACTUATOR_OFFSET_Y_MM -30.0f /* angle=0° 时工具末端偏上 ~30mm (实测) */
#define ACTUATOR_OFFSET_Y_MM -35.75f /* angle=0° 时工具末端偏上 ~30mm (实测) */
#endif
/**
@@ -171,6 +192,39 @@ void actuator_init(void);
*/
void actuator_set_scale(float x_scale, float y_scale, float angle_scale);
/**
* @brief 按 Emm_V5 曲线加减速公式估算纯运动时间 (ms)
* @param pulses 脉冲数 (行程)
* @param vel 速度 RPM
* @param acc 加速度档位 0~255 (0=直接启动, 无曲线)
* @note 曲线公式: 每提升 1 RPM 耗时 (256-acc)*50us, 按梯形/三角形加减速估算
*/
uint32_t actuator_motion_time_ms(uint32_t pulses, uint16_t vel, uint8_t acc);
/**
* @brief 运动到位等待 = 估算运动时间 + 安全裕量
* @param pulses 脉冲数 (行程)
* @param vel 速度 RPM
* @param acc 加速度档位 0~255
*/
uint32_t actuator_settle_ms(uint32_t pulses, uint16_t vel, uint8_t acc);
/**
* @brief 直线轴运动到位等待 (按实际 mm 距离换算脉冲)
* @param distance_mm 直线距离 (mm, 取绝对值)
* @param vel 速度 RPM
* @param acc 加速度档位 0~255
*/
uint32_t actuator_mm_settle_ms(float distance_mm, uint16_t vel, uint8_t acc);
/**
* @brief Z 旋转轴运动到位等待 (按实际角度换算脉冲)
* @param angle_deg 旋转角度 (°, 取绝对值)
* @param vel 速度 RPM
* @param acc 加速度档位 0~255
*/
uint32_t actuator_angle_settle_ms(float angle_deg, uint16_t vel, uint8_t acc);
/**
* @brief 设置 Z 旋转轴心 ↔ 工具末端 XY 偏移量 (mm)
* @param offset_x_mm 工具末端相对于旋转中心的 X 偏移 (mm)