前言:
(资料图片)
小龟机器人主控板带有4个电机接口,23个舵机接口,可以通过Python指令实现各种动作。
四轮运动接口
概要
小龟机器人小车可以通过运动指令来控制,进行各种运动,如前进、后退、左转、右转等等。
前进(go)
语法:
car.go(power:int, keep:float)
car.go(power:int)
car.go()
说明:让小车前进。
参数:
power 小车动力百分比,0-100,100代表100%动力,缺省80(代表80%动力)。
keep 运动持续时间,单位秒。
范例:
#小车以100%动力前进5秒
#小车以30%动力一直前进
后退(back)
语法:
car.back(power:int, keep:float)
car.back(power:int)
car.back()
说明:
让小车后退。
参数:
power 小车动力百分比,0-100,100代表100%动力,缺省80(代表80%动力)。
keep 运动持续时间,单位秒。
范例:
#小车以100%动力后退1秒
左转(left)
语法:
car.left(power:int, keep:float)
car.left(power:int)
car.left()
说明:
让小车左转。
参数:
power 小车动力百分比,0-100,100代表100%动力,缺省80(代表80%动力)。
keep 运动持续时间,单位秒。
范例:
#小车以70%动力左转3秒
右转(right)
语法:
car.right(power:int, keep:float)
car.right(power:int)
car.right()
说明:
让小车右转。
参数:
power 小车前进的动力百分比,0-100,100代表100%动力,缺省80(代表80%动力)。
keep 运动持续时间,单位秒。
范例:
#小车以57%动力一直右转
刹车(stop)
语法:
car.stop()
说明:
让小车刹车停止运动。
参数:
无
范例:
#刹车
指定每一个车轮电机运动(motor)
语法:
car.motor(L1:int, R1:int, L2:int, R2:int)
car.motor(L1:int, R1:int, L2:int)
car.motor(L1:int, R1:int)
car.motor(L1:int)
说明:
指定小车的每一个车轮电机的具体运动。
参数:
L1 L1轮(左前轮)的运动动力, -100 ~ 100,代表反转100%到正转100%。
R1 R1轮(右前轮)的运动动力, -100 ~ 100,代表反转100%到正转100%。
L2 L2轮(左后轮)的运动动力, -100 ~ 100,代表反转100%到正转100%。
R2 R2轮(右后轮)的运动动力, -100 ~ 100,代表反转100%到正转100%。
范例:
#仅左前轮以100%动力向前正转
#以左前轮反向50%,左后轮反向50%, 右前轮正向70%,右后轮正向70% 执行转弯
问候动作(hello)
语法:
car.driver.hello()
car.driver.hello(action)
说明:
执行小车问候动作。
参数:
action 小车问候动作代号,1代表抖三抖的Hello动作,2代表抖一下的Hi动作,缺省默认为1。
范例:
#执行抖三抖的Hello动作
#执行抖一下的Hi动作
舵机接口
概要
小龟主控板设计了一套基于舵机并行的运动模型,也就是同时提交两行舵机指令,会同步执行,而不是象传统的串行代码那样,先等待第一行舵机指令结束,再执行第二行舵机指令。基于这个接口,可以快速实现多个舵机的并行联动。
管脚集
在机器人结构中,通常每个结构单元都会由多个舵机组成,我们将这些多个舵机对应的管脚集,称为管脚集。
如:机械臂是由S1、S2、S3三个舵机组成,那么机械臂的管脚集是 [S1, S2, S3];
如:机器狗尾巴是由A1、S7两个舵机组成,那么尾巴的管脚集是 [A1, S7];
动作节点集
我们知道一个动作(比如:抬腿)可以分解成多个节点,比如先抬膝盖到指定高度,然后再抬小腿到指定高度两个阶段组成。
我们将这两个阶段称为两个节点,一组节点组成了一个完整的动作
单独每个节点的格式如:
[节点耗时, 节点停留, 舵机1的目标角度,舵机2的目标角度, ......]
分别意义如下:
节点耗时:代表期望用多少秒,将所有舵机旋转到目标角度。如果本节点内有多个舵机,则多个舵机都会消耗相同的时间到达指定角度;
节点停留:代表所有舵机到达本节点目标角度后,保持现有角度停留多少秒;
舵机N的目标角度:和管脚集对应的每个舵机期望旋转到的目标角度;
节点集则是由多个单一节点组合而成的数组集合:
[[节点1耗时, 节点1停留, 舵机1的目标角度1,舵机2的目标角度1, ......],
[节点2耗时, 节点2停留, 舵机1的目标角度2,舵机2的目标角度2, ......], ....
单舵机单角度运动
语法:
car.servo(管脚, 目标角度, 旋转耗时)
说明:
旋转指定管脚上的舵机到目标角度。
参数:
管脚:管脚的标准名称
目标角度:单位度,期望舵机最终到达的角度
旋转耗时:单位秒,期望舵机用多少时间完成从当前角度到达期望的目标角度的旋转工作。
范例:
#用5秒钟时间,将舵机A1从当前角度位置旋转到90度位置。
#用1.5秒钟时间,将舵机S1从当前角度位置旋转到0度位置。
单舵机连片运动
语法:
car.servo(管脚, 动作节点集, 重复动作时长)
car.servo(管脚, 动作节点集)
说明:
旋转指定管脚上的舵机到目标角度。
参数:
管脚:管脚的标准名称
动作节点集:参考本文动作节点介绍篇章
重复动作时长:单位秒,重复整个动作多长时间后才结束。(本参数缺省的场合,为动作仅执行一次)
范例:
#按这个次序旋转A1管脚上的舵机:
#1、先用3秒钟时间旋转到0度,然后停留1秒钟;
#2、接着用1秒钟时间旋转到180度,不做停留;
#3、最后用3秒钟时间旋转舵机到95度。
多舵机连片运动
语法:
car.servo(管脚集, 动作节点集, 重复动作时长)
car.servo(管脚集, 动作节点集)
说明:
旋转指定管脚上的舵机到目标角度。
参数:
管脚集:管脚集合,参考本文管脚集定义介绍篇章。
动作节点集:参考本文动作节点介绍篇章。
重复动作时长:单位秒,重复整个动作多长时间后才结束。(本参数缺省的场合,为动作仅执行一次)
范例:
#按下面次序依次同步旋转S1、S2、S3三个舵机:
#步骤1:用3.5秒钟时间,同时将S1旋转到0度、S2旋转到0度、S3旋转到0度,旋转完成后,并停留1秒钟;
#步骤2:用2秒钟时间,同时将S1旋转到180度、S2旋转到120度、S3旋转到90度,旋转完成后,并停留1.5秒钟;
#步骤3:用5秒钟时间,同时将S1旋转到30度、S2旋转到90度、S3旋转到180度,旋转完成后,并停留1秒钟;
推荐商品-小龟机器人小车
Copyright @ 2015-2022 南非晚报网版权所有 备案号: 沪ICP备2022005074号-13 联系邮箱:58 55 97 3@qq.com