peng-zhihui / Dummy-Robot

我的超迷你机械臂机器人项目。
11.97k stars 2.65k forks source link

电机按键功能问题 #98

Open learner-f opened 2 years ago

learner-f commented 2 years ago

首先感谢稚晖君对先前问题的解答 在编译固件尺寸调整后,电机出现了这样的情况 电机首先可进行有明显阻力的转动,很快阻力就消失了,在短按key 1 后,电机轴完全锁死,应该就是使能闭环了,再次短按,轴可自由转动。 进行下一次短按后,再次进入闭环,但同时电机位置归零(如果顺时针10圈,归位就会逆时针10圈),随后key 1 的作用就是使电机在这两种情况切换。 此过程中长按key 1 效果同短按,并且key 2 没有起到作用 重新对电机上电后,电机作用失效了(按键没有起到作用,再次校准后也是),只有重新烧录后,才会出现上面的情况

peng-zhihui commented 2 years ago

这个好像是一直在触发长按的功能,具体的按键功能我在README里面有写的:

同时按住两个按键上电,会自动进行编码器校准,如果首次校准失败可以通过这个方式重新校准 短按按键1在使能闭环/失能闭环间切换 长按按键1板子重启 短按按键2清除堵转保护 长按按键2将目标值归零(比如如果是在位置模式那位置会归零)

所以应该按键2才是你说的归零功能,我看看是不是代码版本有区别,晚点我同步一下

peng-zhihui commented 2 years ago

你测试一下直接在Main函数里面的for循环添加以下代码测试一下:

if (motor.controller->modeRunning != Motor::MODE_COMMAND_VELOCITY)
            {
                motor.config.motionParams.ratedVelocity = boardConfig.velocityLimit;
                motor.controller->SetCtrlMode(Motor::MODE_COMMAND_VELOCITY);
            }
motor.controller->SetVelocitySetPoint(5*(float) motor.MOTOR_ONE_CIRCLE_SUBDIVIDE_STEPS));

然后按键1使能之后看看会不会转起来

learner-f commented 2 years ago

可以的,一直进行逆时针转动,断电后上电继续转动

peng-zhihui commented 2 years ago

那就没问题了,这是正常的,代码也是最新的,你可以参考 interface_can.cpp 文件里的各个指令自己测试其他控制模式和参数设置

peng-zhihui commented 2 years ago

参数都是浮点数,电流单位A,速度、位置单位是 n圈/s 和n圈

learner-f commented 2 years ago

那就没问题了,这是正常的,代码也是最新的,你可以参考 interface_can.cpp 文件里的各个指令自己测试其他控制模式和参数设置

我又写入其他电机测试,发现不需要按键,烧录后直接就转起来了,断电就停,上电就转

peng-zhihui commented 2 years ago

Main文件里boardConfig里面有一个是enableMotorOnBoot,也就是上电自动使能,这个默认应该是false的,我估计是你之前Flash烧写没擦除,这部分数据不是默认的,建议用stlink utilities软件全片擦除一下重新烧写

StudenLin commented 2 years ago

首先感谢稚晖君对先前问题的解答 在编译固件尺寸调整后,电机出现了这样的情况 电机首先可进行有明显阻力的转动,很快阻力就消失了,在短按key 1 后,电机轴完全锁死,应该就是使能闭环了,再次短按,轴可自由转动。 进行下一次短按后,再次进入闭环,但同时电机位置归零(如果顺时针10圈,归位就会逆时针10圈),随后key 1 的作用就是使电机在这两种情况切换。 此过程中长按key 1 效果同短按,并且key 2 没有起到作用 重新对电机上电后,电机作用失效了(按键没有起到作用,再次校准后也是),只有重新烧录后,才会出现上面的情况

请问一下,这个问题解决了吗?如果解决了,可以说一下方法吗?

Adyzqaq commented 1 year ago

请问我的和楼主问题一样,只有在debug调试下按键1按一下取消闭环可以自由旋转,再按一下按键1使能闭环电机归为,断开调试后按键无反应,而且案件2始终未起作用