如果你對編程感興趣,你可能聽說過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在未來幾年將有許多應用程序。
也就是說,鐵鏽有相當一個嗡嗡聲圍繞著它,有很多原因,你應該學習的語言!
...過,這可能需要一些時間。下面是五個示例專案,展示瞭如何將樹莓Pi 2或更高版本與您最喜歡的虛構機器人相結合。 ...
...以從Github下載的簡單指令碼。如果您願意,指南還告訴您如何新增NFC支援,但您可以跳過這一步。這是許多不必要的工作。 ...
...59美元/119英鎊)。下面,我將分解每個元件,並向您展示如何以更低的價格購買它——包括官方和非官方的模型。由於圓周率是在英國設計和**的,我將包括連結和英國股票價格以及。 ...
...了,用樹莓皮和RetroPie模擬套件來構建你自己的。下面是如何做到這一點。 ...
...機器人會教你一些有用的程式設計技巧。我們之前研究過如何用Python構建一個基本的Twitter bot(也在Raspberry Pi上),但這次我們採用了不同的方法。 ...
...pberry Pi有許多配件,但其中最流行的是攝像頭模組。但是如何安全地連線一個,然後從中得到最好的結果呢? ...
...本家庭自動化,並把它放在一個實際的專案。它還展示瞭如何有可能的人誰沒有太多的經驗編碼仍然創造有用的DIY智慧家居建設。同樣的原則可以用來完全改變一個人與家的互動方式。 ...