舵机接口开发手册
概要
小龟小车定制了舵机的访问语法,让各位小伙伴能更简单友好快速的使用舵机协议。
小龟对部分常见舵机进行了参数修正,以解决死区抖动问题,该处理对开发者透明。
舵机API
指定管脚开启舵机功能。
参数:
- pin: 舵机连接的管脚,标准舵机管脚命名方式:A1或a1或字符串“A1”或“a1”。如果时一次操作多个舵机集群,则用列表形式[A1, A2]或["A1", "A2"]。
- angle: 舵机转向角度,如果是数值,则转向该角度;如果是列表,则依次旋转到每一个角度。如果该参数缺省,则视为关闭当前管脚上的舵机。如参数pin为列表,即多舵机群体操作模式,则angle为与之对应的每个舵机的旋转角度。比如pin为[A1, A2], 则angle为[A1第一次旋转度数,A2第一次旋转度数,A1第二次旋转度数,A2第二次旋转度数,……]
- step_wait: 按角度列表依次旋转的场合,则每一个角度旋转的等待时间,单位是秒。
- repeat:重复动作的次数,0代表无穷次,默认1次。
- wait:是否等待舵机动作执行结束,默认True等待结束,False则不等待直接执行下面的代码。
返回值:
- 返回True或者False,表示本次操作成功或者失败
#范例: D2管脚开启舵机,并指示舵机转到45度。
car.servo(D2, 45);
#结果:True
#范例:D2管脚接的舵机,按指定角度列表“先90度,再45度,再125度,再180度”进行旋转,并重复2次这一套动作。
car.servo(D2, [90, 45, 125, 180], repeat=2)
#结果:True
#范例:关闭D2管脚上的舵机
car.servo(D2)
#结果:True
#范例:同时对A1、A2管脚上的两个舵机进行操作
car.servo([A1, A2], [0, 0, 90, 90])
#结果先一起把A1和A2管脚上的舵机转到0度,再一起转到90度。
#范例:给连接在D2管脚上的舵机一套动作,然后不要等待舵机结束,离开执行下面语句。
car.servo(D2, [90, 45, 125, 180], wait=False)
#结果:True