Spike+Python对照表
Spike主要模块和对应的Python指令,主要包含电机、运动、灯、声音、传感器等部分,其余的控制指令和运算符对于有python基础的会比较简单,就不在这里赘述。欢迎大家学习,有不对的地方,欢迎大家指正。
最近新入坑Spike系列,作为初学者想要整理一下图形化和代码对照学习,主要参考Spike词语模块帮助文档和Python项目知识库整理的对照表,部分模块没有对应程序主要是我太懒了涉及到多个程序,需要根据实际应用。内容太多,时间很仓促,有不对的地方欢迎留言评论纠正。
电机模块类
为了使用电机,必须对其进行初始化。
from spike import Motor
motor = Motor('A')#初始化电机,连接A端口
设定电机速度
设置一个或多个电机的速度,速度范围为:-100~100,负值代表电机反方向运转。默认值为75%。
#设置默认电机速度为50
motor.set_default_speed(50)
启动电机
持续按顺时针或逆时针运行一个或多个电机。
#电机开始以指定速度运转
motor.start(speed=None)
#如未填写指定速度,将按照set_default_speed()设定的默认速度
停止电机
终止一个或多个电机运行。电机会制动,很快就会完全停止。
motor.stop()
使电机运行指定单位数
使一个或多个电机顺时针或逆时针运行指定的圈数、秒数或度数。
#使电机顺时针运转90度
motor.run_for_degrees(90)
#使电机以100%速度逆时针运转90度
motor.run_for_degrees(-90,100)
#使电机顺时针运转1/4圈
motor.run_for_rotations(0.25)
#使电机以100%速度逆时针运转1/2圈
motor.run_for_rotations(-0.5,100)
#使电机顺时针运转0.5秒
motor.run_for_seconds(0.5)
#使电机以30%速度逆时针运转2秒
motor.run_for)seconds(2,-30)
电机转至指定位置
将一个或多个电机设置为指定位置,还可以将电机设置为以顺时针、逆时针或最短路径到达指定位置,位置范围为:0~359度。
#将电机以最短路径转至位置0,与标记对齐
motor.run_to_position(0,'shortest path')
#'clockwise'顺时针 'counterclockwise'逆时针 'shortest path' 最短路径
电机位置
报告电机的当前位置(移动标记与电机零点标记之间的顺时针角度),位置范围为0~359度。
motor.get_position()
电机速度
报告电机的当前速度,值为电机实际运转速度,而不是设置的速度。
motor.get_speed()
运动模块类
同步运行两个相同类型电机,主要用于移动驱动底座。为了使用电机对,必须对2个电机进行初始化。
设置运转电机
定义2个驱动电机所连接的端口。
from spike import MotorPair
#左侧电机连接A端口,右侧电机连接B端口
motor_pair=MotorPair('A','B')
设置移动速度
设置正在移动的驱动底座速度,范围为:-100~100,负值代表移动方向改变。默认速度值50%。
motor_pair.set_default_speed(50)
将电机旋转一圈设置移动距离
校准驱动底座的距离。设置电机运转一圈与行驶距离的比率。如果驱动电机和车轮之间未使用齿轮,则值为车轮周长。
#车轮直径17.5cm,其乘以Π就可以得到形式距离。
motor_pair.set_motor_rotation(17.5*math.pi, 'cm')
开始移动
驱动底座向前、向后、顺时针或逆时针移动。
motor_pair.start_tank(50,50)
#以设置默认速度前进,速度为负则后退
持续移动指定单位数
驱动底座向前、向后、顺时针或逆时针移动指定的厘米、英寸、秒、度、圈。厘米和英寸移动距离取决于驱动底座的搭建方式。可使用设置电机旋转一圈所对应的移动距离来校准。
motor_pair.move(10,'cm')
#motor_pair.move_tank(10,'cm',left_speed=50,right_speed=50)
转向移动指定单位数
驱动底座转向移动一定时间。转向值越高会使驱动底座的弧形路径更加明显;转向值为0会沿直线行驶;转向值为100或-100会以自身为中心旋转。
motor_pair.move(10,'cm',steering=30)
开始转向移动
驱动底座转向移动。转向值越高会使驱动底座的弧形路径更加明显;转向值为0会沿直线行驶;转向值为100或-100会以自身为中心旋转。
motor_pair.start(30)
停止运动
通过关闭电机来停止驱动底座的所有运动。
motor_pair.stop()
灯模块类
能够开启和关闭不同组件(智能集线器的5*5矩阵灯、距离传感器灯)的灯。提前准备初始化智能集线器和导入等待时间模块
from spike import PrimeHub
from spike.control import wait_for_seconds
hub=PrimeHub()
开启矩阵灯指定秒数
使矩阵灯显示图案并亮起指定时间。时间结束将关闭矩阵灯。
hub.light_matrix.show_image('HAPPY')
wait_for_seconds(2)
开启矩阵灯
持续亮起图案,直到执行其他操作或程序停止。
hub.light_matrix.show_image('HAPPY')
矩阵灯写入
在矩阵灯显示屏上从右往左一次滚动一个字母的方式显示文本字符串。在所有字母显示完之前,程序不会继续运行。
hub.light_matrix.write('Hello')
关闭像素灯
关闭矩阵灯上所有像素灯。
hub.light_matrix.off()
设置矩阵灯亮度
设置矩阵灯的亮度,默认100%。
在这里插入代码片
设置像素灯颜色
设置矩阵灯上单个像素灯的颜色和亮度,矩阵灯其余部分不变。
在这里插入代码片
设置像素灯亮度
设置矩阵灯上单个像素灯的亮度,矩阵灯其余部分不变。
hub.light_matrix.set_pixel(1, 1,100)
旋转方向
可顺时针或逆时针旋转矩阵灯显示内容的方向。
在这里插入代码片
将方向设置为
设置矩阵灯显示内容的方向。可设置为直立、倒立、向左或向右。
在这里插入代码片
设置中间按钮指示灯
设置中间按钮指示灯的颜色
hub.status_light.on('blue')
hub.status_light.off()#关闭状态指示灯
开启距离传感器灯
开启和关闭距离传感器灯。
from spike import DistanceSensor
distance_sensor=DistanceSensor('A')
#(0 为关闭,100 为最大亮度。默认100)
distance_sensor.light_up_all()
#开所有灯
distance_sensor.light_up_all(0)
#关所有灯
distance_sensor.light_up(100,100,0,0)
#打开顶部的灯
声音模块类
播放设备或智能集线器中的声音。
设备的python在App应用程序,需要初始化app。如果未找到给定名称的声音,则不会发生任何操作。
from spike import App
app=App()
播放声音直到结束
在设备上播放选定声音直到播完。
app.play_sound('Cat Meow 1')
开始播放声音
在设备上播放选定声音并立即运行后面的程序堆模块而不会等待声音播放完毕。
app.start_sound('Cat Meow 1')
播放警笛声指定秒数
在智能集线器上播放警笛声指定秒数。
hub.speaker.beep(60, 0.2)
开始播放警笛声
在智能集线器上播放警笛声,直到程序停止它。
hub.speaker.start_beep(60)
停止所有声音
停止当前播放的所有声音。
hub.speaker.stop()
###更改音效
更改设备上音效或左右声道效果。声像效果可以确定由哪个扬声器发声:-100仅来自左扬声器,0为正常,100仅来自右扬声器。
设置音效
设定设备上音效或左右声道效果。声像效果可以确定由哪个扬声器发声:-100仅来自左扬声器,0为正常,100仅来自右扬声器。
清除音效
将音效恢复正常。
修改音量
以一定增量来修改当前音量。
设置音量
设置智能集线器音量值,默认100%。
hub.speaker.set_volume(50)
音量
读取智能集线器的当前音量。
hub.speaker.get_volume()
传感器模块类
颜色传感器
from spike import ColorSensor
color_sensor=ColorSensor('A')
当颜色为
当颜色传感器检测到指定颜色,运行自身下方所有模块。如果检测到的颜色保持不变,不会再次被触发。
color_sensor.wait_until_color('red')
#在此之后添加操作
是否为指定颜色
当颜色传感器检测到指定颜色,返回‘是’
颜色
返回颜色传感器检测到的颜色当前值。
color_sensor.get_color()
反射光是否满足条件
当颜色传感器检测到的反射光大于、等于或小于指定百分比时,返回‘是’。
反射光
返回颜色传感器检测到的反射光当前值。
color_sensor.get_reflected_light()
距离传感器
from spike import DistanceSensor
distance_sensor = DistanceSensor('A')
当距离近于
当距离传感器检测到物体的距离近于、远于或正好等于指定值,运行自身下方所有模块。如果检测到的距离保持不变,不会再次被触发。
distance_sensor.wait_for_distance_farther_than(20, 'cm',False)
#持续等待直到测量距离远于指定距离。
distance_sensor.wait_for_distance_closer_than(20, 'cm',True)
#持续等待直到测量距离近于指定距离。
#在此之后添加操作
第三个参数short_range为是否采用短距离模式,可提高精度,但只能检测附近的物体。
距离是否满足条件
当距离传感器检测到的距离大于、等于或小于指定距离(百分比、厘米、英寸)时,返回‘是’。
距离
返回距离传感器检测到的距离(厘米。英寸或百分比)。检测范围0 ~ 200米或0 ~ 78.74英寸。
#读取测量的距离
distance_sensor.get_distance_cm()#以厘米为单位
distance_sensor.get_distance_inches()#以英寸为单位
distance_sensor.get_distance_percentage()#以百分比为单位
力传感器
from spike import ForceSensor
force_sensor = ForceSensor('A')
当压力为
当力传感器检测被按压、被用力按压、被松开、压力改变时,运行自身下方所有模块。如果检测到的压力保持不变,不会再次被触发。
force_sensor.wait_until_pressed()
#持续等待直到力传感器被按压
force_sensor.wait_until_released()
#持续等待直到松开力传感器
#在此之后添加操作
是否被按压
当力传感器被按压(>0牛顿)、用力按压(>5牛顿)或松开(=0牛顿),返回‘是’
force_sensor.is_pressed()
压力
返回力传感器检测到的压力(牛顿或百分比),检测范围0~10牛顿。
force_sensor.get_force_newton()#读取测量的力
force_sensor.get_force_percentage()#读取测量的力占最大力的百分比
智能集线器
from spike import PrimeHub
hub = PrimeHub()
当智能集线器倾斜时
当智能集线器从水平位置(按钮向上)开始向指定方向倾斜时,运行自身下方所有模块。如果智能集线器不向新方向倾斜,不会再次被触发。
当只能集线器的方向向上时
当智能集线器在指定方向时,运行自身下方所有模块。如果智能集线器方向不变,不会再次被触发。
if hub.motion_sensor.wait_for_new_orientation() == 'leftside':
#在此之后添加操作
当智能集线器被摇动时
当智能集线器被摇动、被敲击、下落时,运行自身下方所有模块。如果智能集线器运动状态不变,不会再次被触发。
if hub.motion_sensor.was_gesture('shaken'):
#在此之后添加操作
当智能集线器的按钮被按压时
当智能集线器左按钮或右按钮被按压或松开时,运行自身下方所有模块。如果智能集线器按钮状态不变,不会再次被触发。
hub.left_button.wait_until_pressed()#左按钮被按压
hub.right_button.wait_until_pressed()#右按钮被按压
智能集线器是否倾斜
当智能集线器从水平位置(按钮向上)开始向指定方向倾斜时,返回‘是’。
智能集线器是否位于指定方向
当智能集线器在指定方向时,返回‘是’。
hub.motion_sensor.get_orientation() == 'front'
#'front','back','up','down','leftside','rightside'
智能集线器is被摇动
当智能集线器被摇动、被敲击、下落时,返回‘是’。
hub.motion_sensor.get_gesture() == 'falling'
#'shaken','tapped','doubletapped','falling'
智能集线器俯仰角、横滚角和偏航角
返回智能集线器俯仰角(机头向上或向下的角度)、横滚角(机翼向上或向下的角度)和偏航角(飞机相对地面的方向)。
hub.motion_sensor.get_pitch_angle()#读取智能集线器的俯仰角
hub.motion_sensor.get_roll_angle()#读取智能集线器的横滚角
hub.motion_sensor.get_yaw_angle()#读取智能集线器的偏航角
将智能集线器偏航角设为0
将智能集线器偏航角设为0。默认程序启动后智能集线器所面对的方向的偏航角为0。
hub.motion_sensor.reset_yaw_angle()
智能集线器的按钮是否被按压时
当智能集线器左按钮或右按钮被按压或松开时,返回‘是’。
更多推荐
所有评论(0)