
1.1 乐高机器人
学习目标
(1)了解乐高机器人。
(2)认识乐高机器人的主控制器、电机以及各种传感器。
(3)学会运用机器人编程显示各种数据,包括传感器数据和变量数据。
(4)学会运用机器人编程绘制各种数据图像,并能够根据图像分析数据。
乐高机器人是一款非常普及的可编程积木式机器人,目前主要有spike机器人和EV3机器人两种型号,如图1.1.1和图1.1.2所示。这两种机器人可使用乐高积木进行机器人的设计,并通过相应的类Scratch图形化模块或Python语言进行编程。其中spike机器人的编程软件可以直接进行Python编程,所以spike机器人的Python编程比EV3机器人更方便一些。

图1.1.1 spike机器人(新款)

图1.1.2 EV3机器人(旧款)
1.1.1 spike机器人
1.主控制器
乐高spike机器人拥有一个质量较小的主控制器,如图1.1.3所示,主控制器内置MicroPython操作系统,主频为100MHz,闪存为1MB,内存为32MB,可用于存储程序、声音等内容,控制器上标注了A~F共6个用于连接各种传感器和电机的端口,控制器不仅配有蓝牙、可编程的三键导航和5×5的LED矩阵灯式白色显示屏,还内置了三轴加速度计和三轴陀螺仪传感器。

图1.1.3 spike机器人的主控制器
2.力传感器
力传感器可以检测简单的触碰,还可以测量压力的大小,如图1.1.4所示。采样率为100Hz,当按下的深度为0~2mm时,为触碰模式,当按下的深度为2 ~ 8mm时,可测量力的大小,测量范围为2.5~10N,分辨率为0.1N,测量精度为±0.65N。

图1.1.4 力传感器
3.超声波传感器
超声波传感器可以利用超声波技术来测量自身与物体表面之间的距离,如图1.1.5所示。超声波传感器的采样率为100Hz,测量范围为5 ~ 200cm,测量精度为±2cm,快速感应距离为5 ~ 30cm,测量精度为1.5cm,入射角为±35°(因距离而异),分辨率为1mm。

图1.1.5 超声波传感器
4.光电传感器
光电传感器可以测量物体表面的颜色、反射光强度和环境光强度,如图1.1.6所示。光电传感器的采样率为100Hz,在颜色模式下,光电传感器可测量的颜色包括:无颜色、白色、蓝色、黑色、绿色、黄色、红色、中度蔚蓝色和亮红紫色。颜色和反射光的最佳检测距离为16mm,当然这个距离还要取决于物体尺寸、颜色和表面。

图1.1.6 光电传感器
5.中型电机
中型电机可同时作为电机和角度传感器,如图1.1.7所示,电机在无负载的情况下,其转速约为185r/min,最高效率时的扭矩为3.5N·cm,具体数据如表1.1.1所示。中型电机内置的角度传感器可以测量电机的旋转角度和旋转速度,每圈的测量精度小于±3°,其中,旋转速度为电机当前速度与最大设计速度的百分比。中型电机内置的角度传感器对角度和旋转速度的采样率为100Hz。

图1.1.7 中型电机
表1.1.1 中型电机参数

以上所有性能数据都是在7.2V电压下测量的。
6.大型电机
如图1.1.8所示,大型电机在无负载的情况下,其转速约为175r/min,每圈的测量精度小于±3°。大型电机的各种参数如表1.1.2所示。大型电机内置的角度传感器可以测量电机的旋转角度和旋转速度,测量的旋转速度值为电机当前速度与最大设计速度的百分比值。大型电机内置的角度传感器对角度和旋转速度的采样率为100Hz。

图1.1.8 大型电机
表1.1.2 大型电机参数

以上所有性能数据都是在7.2V电压下测量的。
spike机器人还兼容spike基础套装的传感器和电机,如灯光模块(3×3彩色矩阵灯)和小型电机,如图1.1.9和1.1.10所示。

图1.1.9 3×3彩色矩阵灯

图1.1.10 小型电机
1.1.2 EV3机器人
1.主控制器
EV3机器人的核心是一个可编程的控制器,如图1.1.11所示,它拥有Linux操作系统,使用的ARM 9处理器的主频为300MHz,闪存为16MB,随机存取存储器为64MB,可使用微型SD卡(TF卡),最多可支持32GB,黑白液晶显示屏的分辨率为178×128像素。在EV3控制器上,4个传感器端口分别用1、2、3、4标注,4个电机端口分别用A、B、C、D标注,可通过蓝牙与计算机或另一个控制器连接,电源可选择原装的7.4V充电电池或6个5号电池。

图1.1.11 EV3主控制器
2.大型电机和中型电机
图1.1.12所示为大型电机,大型电机的转速为160~170r/min,旋转扭矩20N·cm,失速扭矩为40N·cm,大型电机的转速低但旋转力量大。图1.1.13所示为中型电机,中型电机的转速为240~2500r/min,旋转扭矩为8N·cm,失速扭矩为12N·cm,中型电机的转速高但旋转力量小。大型电机和中型电机都内置了角度传感器,可以测量电机旋转的角度,角度传感器的分辨率为1°。

图1.1.12 大型电机

图1.1.13 中型电机
3.光电传感器
图1.1.14所示为光电传感器,光电传感器可以测量物体表面的颜色和反射光强度,以及环境光强度,采样率为1000Hz。颜色模式下可测量的颜色包括黑色、蓝色、绿色、黄色、红色、白色和棕色,还可以检测无颜色状态。在反射光强度模式中,光电传感器可测量从红灯(即发光灯)反射回来的光强度。在环境光强度模式中,该颜色传感器可以测量从周围环境进入检测窗口的光强度,如太阳光或手电筒的光束。当处于“颜色模式”或“反射光强度模式”时,为了测量更精确,传感器需正对着物体的表面。适当靠近但不接触正在检测的物体表面,通常这个距离为8~10mm。

图1.1.14 光电传感器
4.陀螺仪传感器
图1.1.15所示是陀螺仪传感器,陀螺仪传感器可以检测单轴旋转的角度,采样率为1000Hz。如果朝着箭头指示的方向旋转陀螺仪传感器,传感器可检测出旋转的角度和速率。其旋转90°的误差为±3°,传感器可以测量出的最大旋转速率为440°/s。

图1.1.15 陀螺仪传感器
陀螺仪传感器不稳定,角度容易自发性偏移。陀螺仪传感器在插入EV3程序块时必须保持传感器静止。
5.触动传感器
图1.1.16所示是触动传感器,触动传感器可以检测传感器的红色按钮何时被按压及何时被松开,采样率为1000Hz。在机器人中加装触动传感器,当机器人触碰到物体时,触动传感器被按压,机器人可以做出反应,例如,机器人停止移动,或者转弯,实现避障功能。

图1.1.16 触动传感器
6.超声波传感器
图1.1.17所示为超声波传感器,超声波传感器可以测量与前方物体间隔的距离,采样率为1000Hz。它是通过发射超声波并测量声波被反射回传感器所需的时间来完成任务的。常规使用的是单位为cm,测距范围是3~250cm,测量精度为±1cm。当反馈数值为255cm时,那就意味着超出了测量范围,传感器已经检测不出前方任何物体。

图1.1.17 超声波传感器
7.其他传感器
EV3机器人还配有红外传感器、红外信标、温度传感器和声音传感器,除此之外还有第三方厂家为EV3机器人生产的传感器,如高性能的光电传感器、力学传感器、指南针传感器等。
对比EV3机器人和spike机器人,EV3机器人的主控制器比spike机器人的运算速度要快一点,并且spike机器人的电机转速也不及EV3机器人,但考虑到spike机器人的主控制器和电机轻小的特点,在设计成竞赛机器人后,两种机器人的电机和主控制器的综合性能是差不多的,甚至spike机器人略占优势。另外,spike机器人的光电传感器、触动传感器以及内置的陀螺仪传感器的性能均优于EV3机器人的传感器,并且内置的加速度传感器更是EV3机器人所没有的,所以spike的整体性能优于EV3机器人。
在机器人竞赛中,机器人大多设计为轮式机器人,大型电机多用于驱动机器人的轮子,中型电机多用于机械臂的驱动,光电传感器用于检测地面和任务模型,超声波传感器用于探测场地上的障碍物,陀螺仪传感器用来记录机器人的方位,触动传感器用来检测机器人是否与物体接触或撞击,通过以上方式机器人可进行场地定位、任务模型的识别以及各种任务的完成。
1.1.3 机器人的数据显示
1. spike机器人的数据显示
在机器人程序的设计中,需要测量一些由传感器采集的数据,为了获得这些数据,可以通过计算机或机器人的主控制器将这些数据显示出来。
当机器人与计算机成功连接,在spike机器人的编程界面可以直接显示连接在主控制器端口上的传感器数据,如图1.1.18所示。

图1.1.18 数据查看
单击主控制器图标按钮,弹出的界面如图1.1.19所示,在这个界面上不仅可以显示主控制器上6个端口的数据,还可以显示电池电量、三轴陀螺仪数据、加速度计数据,通过单击
按钮可以选择传感器不同模式下的数据。

图1.1.19 更全面的数据查看
定义了新的变量时,在编程界面的右侧会直接显示所有变量的值,如图1.1.20所示。

图1.1.20 显示变量的值
采用编程的方式也可以显示机器人工作时的数据,使用写入模块,如图1.1.21所示,写入模块可以显示一段文本,这个文本包括输入的传感器数据和变量,例如,设计一个光电传感器数据显示程序,如图1.1.22所示,当程序运行时,可以在计算机端实时显示传感器的数据,如图1.1.23所示。

图1.1.21 写入模块

图1.1.22 传感器数据显示程序

图1.1.23 显示的传感器数据
图1.1.24所示是线形绘制模块,绘制线形图模块可以捕获输入的值,这个值包括传感器的值和变量的值,并以指定的颜色线条绘制其与时间的关系图。例如,设计一个可绘制光电传感器数据图像的程序,如图1.1.25所示,运行程序,在计算机端可显示光电传感器测量的反射光值与时间变化的图像,如图1.1.26所示,其中横坐标表示时间,纵坐标表示光值。

图1.1.24 线形绘制模块

图1.1.25 绘制线形图的程序

图1.1.26 程序绘制的线形图
2. EV3机器人数据显示
EV3机器人的主控制器自带液晶显示屏,很多传感器数据和变量值都可以在这个液晶显示屏上显示。在主控制器的Port View模式下可以实时显示所有端口的传感器数据,如图1.1.27和图1.1.28所示。

图1.1.27 选择“Port View”查看数据

图1.1.28 显示触动传感器数据“1”
EV3机器人的数据也可以通过程序显示在主控制器上,使用写入模块,如图1.1.29所示,可以将传感器数据或变量直接在EV3控制器的屏幕上显示,其程序设计示例如图1.1.30所示,当程序运行时,在EV3控制器的显示屏上会实时显示端口3的光电传感器反射光值。

图1.1.29 两种写入模块

图1.1.30 程序显示传感器数据
EV3主控制器的显示屏每行有178像素(宽),每列有128像素(高)。x坐标值为显示屏从左到右,范围是0~177。y坐标值为显示屏从顶部到底部,范围是0~127,如图1.1.31所示。

图1.1.31 EV3屏幕
采用EV3也可以绘制传感器数值与时间变化关系的图像,使用EV3 lab软件设计程序,如图1.1.32所示,该程序绘制的是光电传感器随时间变化的图像,程序中的第一个显示模块是在屏幕的中央绘制一条横直线段,然后以此线作为一个“参考线”,参考线在y轴的位置是60,同时光电传感器的数值加60,使光电传感器的数值相对屏幕整体下移60,若采集的数据大于0,则显示在“参考线”的下方,若采集的数据小于0,则显示在“参考线”的上方。

图1.1.32 EV3 lab软件程序
试一试
(1)设计程序,通过程序实时显示各传感器的数据。
(2)设计程序,绘制各传感器数据随时间变化的图像。