解魔方机器人调试遇到的问题
最近已经把解魔方机器人的机械搭完了,开始进入调程序部分,这里记录一下调程序过程遇到的问题
- 步进电机无反应
先将步进电机插到别的驱动板上,再更换驱动板,最后发现是驱动板的STEP和DIR两根线插反了
- 步进电机偶尔会以非常慢的速度转动
首先排查硬件,最后把问题定位出来发现是在调用MultiStepper
类后再调用AccelStepper
类导致的,最后不算解决,应该说是避免了这个问题,详情见问题3
- 将步进电机转动的方法变速
1 | stepper[id]->runToPosition(); |
改成匀速
1 | while (stepper[id]->distanceToGo() != 0) { |
电机以非常慢的速度转动
去google了一下,发现有人遇到类似的情况,参考这里的#4
I solved the problem by
- calling setSpeed() and setMaxSpeed() in the Loop and thus constantly instead of only when a movement is ordered.
- using runSpeedToPosition() instead of runSpeed() (good guess, Robin2)
- calling stop() before ordering a new movement.
将代码改成
1 | while (stepper[id]->distanceToGo() != 0) { |
问题解决,之后测试问题2,发现问题2也消失了
- 在整体旋转魔方时候,魔方经常掉
这是由于机械臂夹的不够紧造成的,解决办法很简单,在每次旋转魔方前,让机械臂再“靠近”魔方一些