release v1.0
This commit is contained in:
1 parent
4ce4a33603
commit
fef37b36e9
3 files changed
+185
-38
No files matched your search
+22
-10
@@ -38,9 +38,8 @@ static const char *TAG = "MAIN";
|
||||
/* ---- 按钮识别任务 ---- */
|
||||
#define RECOGNIZE_TIMEOUT_MS 20000
|
||||
#define RECOGNIZE_POLL_MS 100
|
||||
/* 归零后等待电机运动到位的时间 (无到位反馈, 按最大行程 + 裕量给定时长) */
|
||||
#define HOME_Z_SETTLE_MS 1500 /* Z 回 0°: vel=50RPM, 最大 ~270° 约 0.9s */
|
||||
#define HOME_XY_SETTLE_MS 4000 /* XY 回零: vel=1500RPM, Y 最大 335mm 约 2s */
|
||||
/* 归零速度: XY 用 ACTUATOR_EXEC_VEL/ACC (3000/250), Z 用 ACTUATOR_EXEC_Z_VEL/Z_ACC (低速);
|
||||
等待时间按最大行程 + 速度/加速度实时计算 */
|
||||
|
||||
static void button_recognize_task(void *pvParam)
|
||||
{
|
||||
@@ -48,15 +47,28 @@ static void button_recognize_task(void *pvParam)
|
||||
if (key_is_pressed()) {
|
||||
ESP_LOGI(TAG, "按钮按下, 归零后再发送 RECOGNIZE ...");
|
||||
|
||||
/* ---- 归零: 舵机抬起 + Z 回 0° ---- */
|
||||
/* ---- 归零: 舵机抬起 + Z 回 0° (低速, 最坏行程 270°) ---- */
|
||||
actuator_servo_up();
|
||||
actuator_motor_angle(ACTUATOR_ADDR_ANGLE, 0.0f, 50, 100, true);
|
||||
vTaskDelay(pdMS_TO_TICKS(HOME_Z_SETTLE_MS));
|
||||
actuator_motor_angle(ACTUATOR_ADDR_ANGLE, 0.0f,
|
||||
ACTUATOR_EXEC_Z_VEL, ACTUATOR_EXEC_Z_ACC, true);
|
||||
vTaskDelay(pdMS_TO_TICKS(actuator_angle_settle_ms(
|
||||
ACTUATOR_ANGLE_LIMIT_DEG,
|
||||
ACTUATOR_EXEC_Z_VEL, ACTUATOR_EXEC_Z_ACC)));
|
||||
|
||||
/* ---- XY 回零: X=0, Y=330 (vel=1500 acc=200) ---- */
|
||||
actuator_motor_mm(ACTUATOR_ADDR_X, 0.0f, 1500, 200, true);
|
||||
actuator_motor_mm(ACTUATOR_ADDR_Y1, 330.0f, 1500, 200, true);
|
||||
vTaskDelay(pdMS_TO_TICKS(HOME_XY_SETTLE_MS));
|
||||
/* ---- XY 回零: X=0, Y=330 (按最坏行程实时计算等待) ---- */
|
||||
uint32_t xy_settle = actuator_mm_settle_ms(ACTUATOR_LIMIT_X_MAX,
|
||||
ACTUATOR_EXEC_VEL,
|
||||
ACTUATOR_EXEC_ACC);
|
||||
uint32_t y_settle = actuator_mm_settle_ms(ACTUATOR_LIMIT_Y_MAX,
|
||||
ACTUATOR_EXEC_VEL,
|
||||
ACTUATOR_EXEC_ACC);
|
||||
if (y_settle > xy_settle) xy_settle = y_settle;
|
||||
|
||||
actuator_motor_mm(ACTUATOR_ADDR_X, 0.0f,
|
||||
ACTUATOR_EXEC_VEL, ACTUATOR_EXEC_ACC, true);
|
||||
actuator_motor_mm(ACTUATOR_ADDR_Y1, 330.0f,
|
||||
ACTUATOR_EXEC_VEL, ACTUATOR_EXEC_ACC, true);
|
||||
vTaskDelay(pdMS_TO_TICKS(xy_settle));
|
||||
|
||||
ESP_LOGI(TAG, "归零完成, 发送 RECOGNIZE ...");
|
||||
|
||||
|
||||
Reference in new issue
Block a user