如何在Raspberry Pi上开始使用Rust

如果您对编程感兴趣,那么您可能听说过Rust。该语言由Mozilla设计,受到开发人员的广泛喜爱,并继续在奉献者中成长。

Raspberry Pi是小型计算机的瑞士军刀,非常适合学习代码。我们将两者结合起来,然后在树莓派上安装Rust。

设置树莓派

对于此项目,您将需要:

  • 树莓派。

  • LED。
  • 220-1k欧姆电阻。
  • 面包板和接线。
  • 使用GPIO 18连接到LED的正极,LED的负极到电阻,再回到Pi上的GND引脚。

    本教程是使用Raspberry Pi 3B +和Raspbian Stretch在桌面模式下完成的。即使不同型号的Pi和不同的操作系统可能会产生不同的结果,它也可以通过远程SSH连接正常运行。

    如何在Raspberry Pi上安装Rust

    要安装rust,请转到rust-lang安装页面,然后将install命令复制到终端中。出现提示时,选择默认安装。

    安装完成时会通知您,尽管安装可能会花费一些时间,具体取决于您的连接。

    安装成功,但您还不能开始使用它。如果尝试按版本检查Rust和Cargo,则会收到错误消息。通常,您必须在PATH中添加一种语言才能在命令行上使用它们。

    幸运的是Rust为您做到了,而您所需要做的就是重新启动Pi或注销并再次登录。现在检查Rust和Cargo应该可以了。

    您将在终端上编译和构建所有脚本,但是您还需要一个代码编辑器。在这个项目中,我将使用Code-OSS,它是VS Code的社区版本,您可以在Pi上安装它,但这不是必需的。任何代码编辑器都可以。

    创建Rust项目

    要创建Rust项目,请创建一个新目录并输入以下内容输入

    mkdir YourFoldercd YourFolder

    使用货运创建一个新的Rust项目。

    cargo new YourProject

    输入新项目文件夹并列出其内容。

    cd YourProjectls

    您将看到一个名为 src 的文件夹和一个文件称为 Cargo.toml 。这两个元素构成了每个Rust项目的基础。

    一个简单的Rust项目,解释了

    首先,我们打开src目录,然后打开 main.rs。 。您会看到新项目随附了一个“ Hello World"脚本,可以帮助您入门。

    以前使用C语言或Java的人都会熟悉Rust语法。这与使用空白,分号和花括号表示代码块的Python不同。 Rust代码必须在运行之前进行编译和构建。

    返回项目的父文件夹,在代码编辑器中打开 Cargo.toml 。任何使用JavaScript或Ruby进行编码的人都可能会发现这很熟悉。项目信息,构建说明和依赖项都在此文件中列出。包在Rust中称为 Crates ,我们稍后将使用其中的一个来访问Raspberry Pi的GPIO引脚。

    构建示例项目

    返回在终端窗口中,确保您位于项目目录中并构建项目。

    cargo build

    这会在项目内创建另一个名为 target 的文件夹。您还会注意到一个名为 Cargo.lock 的新文件。与团队合作或编写一些代码部署到服务器时,此文件会将项目锁定到先前已成功编译和构建的版本。学习时,您可以放心地忽略此文件。

    在目标文件夹中有一个名为 debug 的子文件夹,这是可执行文件所在的位置。在Mac和Linux上,键入以下内容来运行项目:

    ./YourProject

    在Windows上,您将有一个新的 EXE 文件,可以双击运行该文件。

    成功!让我们将该项目转换为使用GPIO引脚的东西。

    设置GPIO引脚

    我们将为该项目使用Rahul Thakdoor的rust_gpiozero板条箱。虽然这不是访问GPIO引脚的唯一方法,但此板条箱的设计类似于Python GPIO零库。

    与其手动下载板条,还可以将其名称粘贴在Cargo.toml中的依赖项下。文件。

    [dependencies]rust_gpiozero = "0.2.0"

    保存并打开终端。在此阶段,由于代码未更改,因此重建项目没有任何意义。 Cargo提供了一个可以检查代码是否可以编译以及是否存在所有依赖项的功能。

    cargo check

    根据您的连接,这可能需要几分钟,但是添加时仅需执行一次或更改Cargo.toml文件中的项目。

    Hello Blink

    现在,您将把Hello World脚本更改为闪烁的灯光脚本。首先在编辑器中打开main.rs。如果要跳过编码,可以在Github Gist上找到完成的脚本。

    您需要让编译器知道您正在使用rust_gpiozero库,因此请在脚本的最顶部添加对的引用。

    use rust_gpiozero::*;

    类似于基于Python的常规眨眼草图,我们需要一种在打开和关闭LED之间增加延迟的方法。在Rust中,我们使用标准库的两个元素来做到这一点:

    use std::thread::sleep;use std::time::Duration; // note the capital D!

    现在在您的 main 函数中,为您的LED引脚添加一个变量,并包含一个包含闪烁的说明。

    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));}

    就是这样!保存脚本,然后返回到终端。

    对其进行测试

    再次构建项目以更新可执行文件。另外,运行命令可以一步构建并运行脚本:

    cargo run

    您应该看到一个闪烁的LED。做得好!您刚刚使用Rust制作了第一个硬件程序。按 Ctrl-C 退回到终端。如果您有任何错误,请彻底检查代码中是否缺少任何冒号,分号或方括号。

    Raspberry Pi上带有Rust的令人兴奋的未来

    目前,Python并非如此可能会被Rust取代。它很容易学习,并且Python在未来的几年中将有许多应用程序。

    也就是说,Rust对此非常关注,并且有很多原因让您学习该语言!

    标签: Raspberry Pi Rust