电流环控制,并实现简单的补偿控制,还差参数具体化。
This commit is contained in:
@@ -5,10 +5,10 @@
|
||||
* YAW_RUN 正常串级控制(符号用参数回退值,直至手势自检完成)
|
||||
* YAW_DETECT 装配符号自检——**仅由操作手手势显式触发,绝不自动执行**:
|
||||
* 遥控在线时"左摇杆推到最左 + 右摇杆推到最右"保持 0.5s。
|
||||
* 检测期间云台会轻转几度(约 20% 电压脉冲 60ms),操作手应
|
||||
* 检测期间云台会轻转几度(约 20% 电流脉冲 60ms),操作手应
|
||||
* 确认云台周围无人后再做手势。失败重试 3 次后回退参数符号。
|
||||
* 任意门控失效(遥控离线/电机掉线/姿态不可用/底盘故障)立即清零输出
|
||||
* 拨弹电流由 shoot_task 写入共享变量,本任务与 Pitch 共帧发送(0x1FF CAN1)
|
||||
* Yaw/Pitch GM6020 采用 0x1FE 电流帧控制;拨弹 M2006 由 shoot_task 独立发 0x200
|
||||
* ========================================================================== */
|
||||
#include "app_tasks.h"
|
||||
#include "cmsis_os.h"
|
||||
@@ -64,6 +64,34 @@ void gimbal_task(void const * argument)
|
||||
if (gesture)
|
||||
gesture_cnt = 0;
|
||||
|
||||
#if 0
|
||||
/* ===== 2026-10-15 台架 Pitch 阶跃发生器(已停用,保留备查) =====
|
||||
* **有界**测试,不是持续抖动:只跑 GIMBAL_BENCH_PITCH_HALF_COUNT 个半周期,
|
||||
* 跑完自动归零并锁存,之后云台恢复静止(重新上电/改开关才会再跑一次)。
|
||||
* 配合 gimbal.c 的台架偏置使用;2ms 任务,半周期 tick 数 = HALF_MS / 2 */
|
||||
{
|
||||
static uint32_t bench_phase = 0;
|
||||
static uint8_t bench_done = 0;
|
||||
const uint32_t half_ticks = (uint32_t)GIMBAL_BENCH_PITCH_HALF_MS / 2u;
|
||||
if (!bench_done && half_ticks > 0u)
|
||||
{
|
||||
const uint32_t total_ticks = half_ticks * (uint32_t)GIMBAL_BENCH_PITCH_HALF_COUNT;
|
||||
if (bench_phase >= total_ticks)
|
||||
{
|
||||
bench_done = 1;
|
||||
gimbal_bench_pitch_offset = 0.0f; /* 跑完立即停,不再抖动 */
|
||||
}
|
||||
else
|
||||
{
|
||||
gimbal_bench_pitch_offset = ((bench_phase / half_ticks) % 2u)
|
||||
? GIMBAL_BENCH_PITCH_STEP_DEG
|
||||
: 0.0f;
|
||||
bench_phase++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
switch (state)
|
||||
{
|
||||
case YAW_WAIT:
|
||||
|
||||
Reference in New Issue
Block a user