如果你对编程感兴趣,你可能听说过Rust。由Mozilla设计的这种语言受到了开发者的广泛喜爱,并在爱好者中不断增长。
Raspberry Pi是小型计算机的瑞士**,非常适合学习代码。让我们把两者结合起来,在覆盆子皮上涂上锈迹。
对于本项目,您需要:
将GPIO 18连接到LED的正极支脚,将LED的负极支脚连接到电阻器,然后再连接回Pi上的GND引脚。
本教程是使用树莓皮3B+与树莓伸展在桌面模式。通过远程SSH连接,它也可以很好地工作,尽管不同的Pi模型和不同的操作系统可能会有不同的结果。
要安装rust,请转到rust lang安装页面并将install命令复制到终端中。出现提示时,选择默认安装。
安装程序将在安装完成时通知您,不过安装可能需要一些时间,具体取决于您的连接。
安装是成功的,但您还不能完全开始使用它。如果你试着按版本检查生锈和货物,你会得到一个错误。通常,必须在路径中添加一种语言才能在命令行中使用它们。
幸运的是,Rust为您做到了这一点,您所需要做的就是重新启动Pi,或者注销并再次登录。现在检查生锈和货物应该可以了。
您将从终端编译和构建所有脚本,但还需要一个代码编辑器。在这个项目中,我将使用codeoss,一个可以安装在Pi上的VS代码的社区构建,但它不是必需的。任何代码编辑器都可以。
要创建一个Rust项目,创建一个新目录并通过键入
mkdir YourFoldercd YourFolder使用Cargo创建一个新的Rust项目。
cargo new YourProject您将得到新项目已创建的确认。
输入新项目文件夹并列出其内容。
cd YourProjectls您将看到一个名为src的文件夹和一个名为货物.toml. 这两个要素构成了每个项目的基础。
首先,打开src目录,打开主要风险在代码编辑器中。您将看到,新项目附带了一个“helloworld”脚本来启动。
以前使用过C语言或Java的人都会熟悉Rust语法。这与Python不同,Python使用空格、分号和大括号来表示代码块。Rust代码必须在运行之前编译和构建。
回到项目的父文件夹中,打开货物.toml在代码编辑器中。任何用JavaScript或Ruby编写过代码的人都可能会发现这一点。项目信息、生成说明和依赖项都列在此文件中。包被称为生锈的板条箱,我们稍后将使用一个访问树莓Pi的GPIO引脚。
回到终端窗口,确保您在项目目录中并生成项目。
cargo build这将在项目中创建另一个名为target的文件夹。您还会注意到一个名为货物锁. 在与团队合作或编写要部署到服务器的代码时,此文件会将项目锁定到以前已成功编译和生成的版本。学习时,您可以放心地忽略此文件。
在目标文件夹中有一个名为debug的子文件夹,这就是可执行文件所在的位置。在Mac和Linux上,通过键入以下命令运行项目:
./YourProject在Windows上,您将有一个新的EXE文件,可以通过双击来运行。
成功!让我们把这个项目转换成使用GPIO引脚的东西。
我们将在这个项目中使用Rahul Thakdoor的rust\u gpiozero板条箱。虽然它不是访问GPIO引脚的唯一方法,但这个板条箱的设计与PythonGPIOZero库类似。
与其手动下载板条箱,不如将其名称粘贴到货物.toml文件。
[dependencies]rust_gpiozero = "0.2.0"保存它,然后打开你的终端。在这个阶段,没有必要重建项目,因为没有代码发生更改。Cargo提供了一个函数,该函数将检查代码是否编译以及是否存在所有依赖项。
cargo check根据您的连接情况,这可能需要几分钟,但您只需要在中添加或更改项目时执行一次货物.toml文件。
现在,您将把hello world脚本更改为闪烁的灯光脚本。从打开开始主要风险在你的编辑器里。如果您想跳过编码,可以在Github Gist上找到完成的脚本。
您需要让编译器知道您正在使用rust\u gpiozero库,因此在脚本的最顶端添加对库的引用。
use rust_gpiozero::*;与常规的基于Python的眨眼草图非常相似,我们需要一种方法来增加打开和关闭LED之间的延迟。在Rust中,我们使用标准库的两个元素来实现这一点:
use std::thread::sleep;use std::time::Duration; // note the capital D!现在在main函数中,为LED pin添加一个变量,并添加一个包含闪烁指令的循环。
let led = LED::new(18); // sets a variable for the led pinloop{ // starts a loop led.on(); sleep(Duration::from_secs(1)); // creates a 1 second pause led.off(); sleep(Duration::from_secs(1));}就这样!保存脚本,然后返回终端。
再次生成项目以更新可执行文件。或者,run命令在一个步骤中生成并运行脚本:
cargo run你应该看到一个闪烁的LED。做得好!你刚用铁锈做了你的第一个硬件程序。按Ctrl-C退出返回终端。如果您有任何错误,请彻底检查您的代码是否有漏掉的冒号、分号或括号。
目前,Python还没有被铁锈取代的危险。它很容易学习,Python在未来几年将有许多应用程序。
也就是说,铁锈有相当一个嗡嗡声围绕着它,有很多原因,你应该学习的语言!
... 您选择哪一种取决于您想如何使用该设备。Raspberry Pi Zero NoodlePi的种类是空的:没有网络连接,所以只要设备保持脱机状态,它就会保持安全和私有。然而,如果你计划在一些游戏,零W模式是一个...
... 上面的视频演示了如何在这样的项目中使用树莓Pi。3D打印的房子是在TinkerCAD设计的,Neopixel照明雪人也是如此。房子里藏着一个树莓圆周率和来基本布线,使项目的生活。该项目的代码是用...
... Raspberry Pi初学者的另一个简单项目是学习如何通过GPIO控制LED灯。 ...
...典游戏的一个关键类型却常常被忽视:点击冒险。下面是如何安装鼠标驱动的冒险游戏在你的树莓皮与**虚拟机。 ...
总是喜欢树莓皮,但还没来得及做?有这么多版本的董事会,很容易分心。你要的是覆盆子皮3B+吗?或者你应该考虑较早的树莓皮3,或后来的树莓皮4? ...
... 一个详细的视频(上图)伴随着这个构建。您将学习如何构建电池组、连接充电器和升压转换器,甚至扩展USB端口以提高可访问性。 ...