EV3使用MicroPython设置Motor的reset_angle=False报错求助
解决EV3 Pybricks电机重启后保留角度及reset_angle参数报错问题
针对reset_angle参数报错的解决办法
你遇到的TypeError: extra keyword arguments given报错,说明当前EV3上的Pybricks固件版本不支持reset_angle这个构造函数参数——哪怕文档里写了有这个参数,实际固件可能没更新到对应版本。
不用纠结修改库构造函数,直接用以下替代方案就能实现“保留电机当前角度”的需求:
#!/usr/bin/env pybricks-micropython from pybricks import ev3brick as brick from pybricks.ev3devices import Motor from pybricks.parameters import Port, Direction, Stop from pybricks.tools import wait # 初始化电机(不传reset_angle参数) motor_left_upper = Motor(Port.D, Direction.CLOCKWISE) # 读取电机当前的实际角度,将其设为新的基准角度,避免初始化时重置为0 current_angle = motor_left_upper.angle() motor_left_upper.reset_angle(current_angle)
这段代码的效果和你期望的reset_angle=False完全一致:程序重启后,电机的角度值会继承上次运行结束时的位置。
关于找不到Pybricks库安装路径的说明
Pybricks MicroPython的核心库是内置在EV3固件里的,并非以普通Python库文件的形式存储在EV3的文件系统中,所以你找不到可修改的构造函数文件。除非你自行编译定制版固件,否则没法修改内置库的默认参数——显然这种方法远不如上面的替代方案高效。
额外建议
如果一定要用reset_angle参数,可以尝试更新EV3的Pybricks固件到最新版本,更新后构造函数大概率会支持文档里标注的这个参数。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

