ev3dev的v2.x Python语言绑定
项目描述
这是一个Python3库,实现了ev3dev设备的接口,让您可以从Python代码中控制电机、传感器、硬件按钮、LCD显示屏等。
如果您之前没有编写过Python代码,您当然可以使用这个库来帮助您学习这门语言!
入门
此库运行在ev3dev上。在继续之前,请确保您已按照ev3dev入门指南中所述设置您的EV3或其他ev3dev设备。确保您有大于2.2.0的ev3dev-stretch版本。您可以通过在Brickman中选择“关于”并向下滚动到“内核版本”来检查内核版本。如果您没有兼容的版本,请在继续之前升级内核。
用法
首先,您需要一种使用Python的方式。我们推荐使用ev3dev Visual Studio Code扩展。如果您对此感兴趣,请查看我们的Python + VSCode入门教程,设置完成后请返回。
否则,您可以通过SSH连接(例如nano编辑器)来处理文件,或者使用Python交互式REPL(输入python3
),或者自己构建解决方案。如果您不知道如何操作,可能最好选择上面推荐的方案。
Python脚本的模板
每个Python程序都应该有一些基本部分。使用此模板开始
#!/usr/bin/env python3
from ev3dev2.motor import LargeMotor, OUTPUT_A, OUTPUT_B, SpeedPercent, MoveTank
from ev3dev2.sensor import INPUT_1
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.led import Leds
# TODO: Add code here
第一条应该包含在您为ev3dev编写的每个Python程序中。它允许您从设备屏幕上看到的图形菜单Brickman运行此程序。其他行是导入语句,它提供了对库功能的访问。如果您想使用其他类型的设备或额外的实用程序,需要向导入列表中添加额外的类。
您应该为您的文件使用.py
扩展名,例如my-file.py
。
如果您遇到类似于/usr/bin/env: 'python3\r': No such file or directory
的错误,您必须将编辑器的“行结束”设置从“CRLF”更改为仅“LF”。这通常在状态栏的底部。有关帮助,请参阅我们的常见问题解答页面。
重要:使脚本可执行(仅限非Visual Studio Code)
为了能够运行您的Python文件,您的程序必须可执行。如果您正在使用ev3dev Visual Studio Code扩展,您可以跳过此步骤,因为它将在您将代码下载到砖块时自动执行。
要从命令行(通常是SSH会话)将程序标记为可执行,请运行 chmod +x my-file.py
。
现在,您可以通过Brickman文件浏览器运行my-file.py
,或者通过在文件名前加./
来从命令行运行它:./my-file.py
。
使用触摸传感器控制LED灯
此代码会在触摸传感器被按下时将LED灯变为红色,并在释放时变回绿色。在尝试此操作之前,请将触摸传感器插入任何传感器端口。
ts = TouchSensor()
leds = Leds()
print("Press the touch sensor to change the LED color!")
while True:
if ts.is_pressed:
leds.set_color("LEFT", "GREEN")
leds.set_color("RIGHT", "GREEN")
else:
leds.set_color("LEFT", "RED")
leds.set_color("RIGHT", "RED")
如果您想在特定的端口上使用传感器,请指定端口如下
ts = TouchSensor(INPUT_1)
注意:如果您使用的是BrickPi而不是EV3,您需要手动配置传感器。请参阅以下示例:[https://github.com/ev3dev/ev3dev-lang-python-demo/blob/stretch/platform/brickpi3-motor-and-sensor.py](https://github.com/ev3dev/ev3dev-lang-python-demo/blob/stretch/platform/brickpi3-motor-and-sensor.py)
运行单个电机
这将使LEGO大电机以最大速度的75%旋转5圈。
m = LargeMotor(OUTPUT_A)
m.on_for_rotations(SpeedPercent(75), 5)
您还可以让电机旋转一定角度、运行一定时间,或者简单地启动它,直到您告诉它停止。此外,还提供了其他单位。有关更多信息,请参阅以下页面
使用两个电机驱动
最简单的驱动控制方式是使用MoveTank类
tank_drive = MoveTank(OUTPUT_A, OUTPUT_B)
# drive in a turn for 5 rotations of the outer motor
# the first two parameters can be unit classes or percentages.
tank_drive.on_for_rotations(SpeedPercent(50), SpeedPercent(75), 10)
# drive in a different turn for 3 seconds
tank_drive.on_for_seconds(SpeedPercent(60), SpeedPercent(30), 3)
还有 MoveSteering 和 MoveJoystick 类,它们提供了不同的控制风格。有关更多信息,请参阅以下页面
使用语音合成
如果您想让机器人说话,可以使用 Sound.speak 方法
from ev3dev2.sound import Sound
sound = Sound()
sound.speak('Welcome to the E V 3 dev project!')
更多演示代码
有几个演示程序可以帮助您熟悉这种语言绑定。这些程序可在以下GitHub网站上找到:https://github.com/ev3dev/ev3dev-lang-python-demo。
您还可以复制并运行 utils 目录中的程序,以了解如何使用EV3电机、传感器、LCD控制台、按钮、声音和LED。
我们还强烈推荐访问 ev3python.com,我们的社区成员 @ndward 已经创建了一个包含使用此库的详细指南的网站,这些指南针对初学者。如果您刚开始编程,我们强烈建议您访问 ev3python.com!
使用Micropython
普通的Python太慢?请查看 Micropython,看看它是否支持您项目所需的特性。
库文档
此库的类文档可以在 我们的Read the Docs页面 上找到。您始终可以前往那里获取有关如何使用此库功能的信息。
常见问题解答
遇到奇怪的错误或不确定如何做看似简单的事情?请查看我们的 FAQ,看看是否有现成的答案。
项目详情
python-ev3dev2-2.1.0.post1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0cfd69b0e8b6ae2ac8f300d7faea602032d961cc526417554d7da35cd9730949 |
|
MD5 | 4d3cff22a1ecf801c2b1f3df338b4541 |
|
BLAKE2b-256 | 8a8c2ddffc70572989acb5d2f60e5e1d7e93f6daf9b05200ac0e80d030e98950 |