如果您對編程感興趣,那么您可能聽說過Rust。該語言由Mozilla設計,受到開發人員的廣泛喜愛,并繼續在奉獻者中成長。
Raspberry Pi是小型計算機的瑞士軍刀,非常適合學習代碼。我們將兩者結合起來,并在Raspberry Pi上安裝Rust。
設置Raspberry Pi
對于此項目,您將需要:
Raspberry Pi
LED。
220-1k歐姆電阻。
面包板和接線。
使用GPIO 18連接到LED的正極,將LED的負極連接到電阻,然后再回到Pi的GND引腳,設置電路。
本教程是使用Raspberry Pi 3B +和Raspbian Stretch在桌面模式下制作的。即使不同型號的Pi和不同的操作系統可能會產生不同的結果,它也可以通過遠程SSH連接正常運行。
如何在Raspberry Pi上安裝Rust
要安裝rust,請轉到rust-lang安裝頁面,然后將install命令復制到您的終端中。出現提示時,選擇默認安裝。
安裝程序將在完成時通知您,盡管安裝可能會花費一些時間,具體取決于您的連接。/p》 安裝后
安裝成功,但是您還不能開始使用它。如果嘗試按版本檢查Rust和Cargo,則會收到錯誤消息。通常,您必須在PATH中添加一種語言才能在命令行上使用它們。
幸運的是Rust為您做到了,而您所需要做的就是重新啟動Pi或注銷并再次登錄。現在檢查Rust和Cargo應該可以使用。
您將在終端上編譯和構建所有腳本,但是您還需要代碼編輯器。在這個項目中,我將使用Code-OSS,這是VS Code的社區版本,您可以在Pi上安裝它,但這不是必需的。任何代碼編輯器都可以。
創建Rust項目
要創建Rust項目,請創建一個新目錄,然后輸入
mkdir YourFolder
cd YourFolder
使用Cargo創建一個新的Rust項目。
cargo new YourProject
您將確認已經創建了新項目。
輸入新項目文件夾并列出其內容。
cd YourProject
ls
您會看到一個名為 src 和名為 Cargo.toml 的文件。這兩個元素構成了每個Rust項目的基礎。
一個簡單的Rust項目,解釋了
首先,讓我們打開src目錄,然后在代碼編輯器中打開 main.rs 。您會看到新項目隨附了一個“ Hello World”腳本,可以幫助您入門。
以前使用C語言或Java的人都會熟悉Rust語法。這與使用空白,分號和花括號表示代碼塊的Python不同。 Rust代碼必須在運行之前進行編譯和構建。
返回項目的父文件夾,在其中打開 Cargo.toml 代碼編輯器。任何使用JavaScript或Ruby進行編碼的人都可能會發現這很熟悉。項目信息,構建說明和依賴項都在此文件中列出。包在Rust中稱為板條箱,我們稍后將使用它來訪問Raspberry Pi的GPIO引腳。
構建示例項目
返回終端窗口,請確保您位于項目目錄中并構建項目。
cargo build
這將創建另一個文件夾在名為 target 的項目中。您還會注意到一個名為 Cargo.lock 的新文件。與團隊合作或編寫一些代碼部署到服務器時,此文件會將項目鎖定到先前已成功編譯和構建的版本。學習時,您可以放心地忽略此文件。
在目標文件夾中有一個名為 debug 的子文件夾,這是可執行文件所在的位置。在Mac和Linux上,通過鍵入以下內容來運行項目:
。/YourProject
在Windows上,您將擁有一個新的 EXE 文件,該文件可以通過雙擊運行單擊。
成功!讓我們將該項目轉換為使用GPIO引腳的東西。
設置GPIO引腳
我們將使用rust_gpiozero條板箱由Rahul Thakdoor撰寫。雖然這不是訪問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 pin
loop{ // 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在未來的幾年中將有許多應用程序。
責任編輯:wv
-
樹莓派
+關注
關注
116文章
1699瀏覽量
105531 -
Rust
+關注
關注
1文章
228瀏覽量
6574
發布評論請先 登錄
相關推薦
評論