本帖最后由 蒙德·究史尼 于 2022-12-3 11:05 编辑
上一篇:https://bbs.cmnxt.com/forum.php?mod=viewthread&tid=65468
这一篇讲的是运用ev3dev2函数库操作EV3的电机和传感器的方法。
使用ev3dev2函数库上一篇的Hello world示例只使用了最基本的功能,输出了最简单的结果。要发挥EV3的特长——电机和传感器的话,就需要用到操作EV3的函数库。我们以ev3dev2为例。
简单程序示例
操作EV3内置的喇叭EV3内置一个喇叭,可以发出声音。在Thonny里输入以下代码: - from ev3dev2.sound import Sound
- speaker01 = Sound()
- speaker01.beep()
复制代码这段程序首先导入了ev3dev2库的sound声音功能,然后创建了一个喇叭对象,名为speaker01,最后,让speaker01发出响声。 按F5键运行,等待大约10秒后可听到EV3内置的喇叭发出响声。
操作EV3的大型电机现在,把一个EV3大型电机连接到EV3的B接口,新建一个文件,输入以下代码: - from ev3dev2.motor import LargeMotor
- motor01 = LargeMotor(address='ev3-ports:outB')
- motor01.on_for_rotations(speed=75, rotations=5, brake=True)
复制代码上面这段程序导入了ev3dev2库的motor电机功能,然后创建了一个连接到B接口的电机对象,名为motor01,最后,让motor01以75%的速度旋转5圈,刹车停止。 运行程序以后,EV3大型电机会旋转5圈然后突然停止旋转。 LargeMotor()函数里的参数address表示的是插入的电机端口,可以空着不写。如果不写的话,EV3会自动检测哪个端口有电机插入。但是,如果有多个电机插入的话,就必须手动指定电机端口。
操作EV3的颜色传感器把一个EV3颜色传感器连接到EV3的3接口,新建一个文件,输入以下代码: - from ev3dev2.sensor.lego import ColorSensor
- colorsensor01 = ColorSensor(address='ev3-ports:in3')
- print(colorsensor01.reflected_light_intensity)
复制代码这段程序导入了ev3dev2库的sensor传感器功能,然后创建了一个连接到3接口的颜色传感器对象,名为colorsensor01,最后,用colorsensor01测量反射光强度并输出。 ColorSensor()函数里的参数address表示的是插入的传感器端口,可以空着不写。如果不写的话,EV3会自动检测哪个端口有颜色传感器插入。但是,如果有多个颜色传感器插入的话(例如双光电巡线),就必须手动指定传感器的端口。
ev3dev2函数库参考资料看到这里,可能有同学或老师们想问了,你这些函数都是从哪来的啊?去哪里查这个函数库的使用方法?比如我想用Python获取EV3的4号传感器端口的超声波传感器的距离数值,该用什么函数?格式怎么写?这些知识需要去ev3dev2的各种帮助文档和示例程序里查找。 从上文我写的几段示例程序中不难看出,这些Python函数的名称大多都是对应功能的英文直译。这对学生的英语词汇量有较高的要求。对于词汇量大的学生而言,理解起来很容易。对于词汇量较小的学生而言,理解起来较为困难。不同城市的英语普及程度不尽相同。在英语普及程度较高的城市开展这个课程更为容易,因为学生的语言障碍更少。
ev3dev2函数库API说明(全英文),示例程序较少,比较晦涩难懂。国内可直连。 ev3dev2小车案例教学(全英文),有示例程序。需要科学的上网。 项目示例程序(全英文)。有时需要科学的上网。 ev3dev2函数库github官网(全英文)。有时需要科学的上网。
|