Om du är intresserad av programmering har du förmodligen hört talas om Rust. Språket, designat av Mozilla, är allmänt älskat av utvecklare och fortsätter att växa i anhängare.
Raspberry Pi är den schweiziska armékniven för små datorer, och den är perfekt för att lära sig kod. Låt oss kombinera de två och installera Rust på en Raspberry Pi.
Konfigurera din Raspberry Pi
För detta projekt behöver du:
Raspberry Pi. LED. 220-1k Ohm motstånd. Breadboard och anslutningsledningar.
Ställ in din krets med GPIO 18 ansluten till det positiva benet på lysdioden, och det negativa benet på lysdioden till motståndet, och tillbaka till ett GND-stift på Pi.
Den här handledningen gjordes med en Raspberry Pi 3B+ med Raspbian Stretch i skrivbordsläge. Det skulle fungera perfekt genom en fjärransluten SSH-anslutning också, även om olika modeller av Pi och olika operativsystem kan ha olika resultat.
Hur man installerar Rust på Raspberry Pi
För att installera rost, gå till rust-lang installationssidan och kopiera installationskommandot till din terminal. Välj en standardinstallation när du uppmanas att göra det.
Installationsprogrammet kommer att meddela dig när det är klart, även om installationen kan ta lite tid beroende på din anslutning.
Efter installation
Installationen har lyckats, men du kan inte börja använda den riktigt än. Om du försöker leta efter Rust and Cargo efter version får du ett felmeddelande. Vanligtvis måste du lägga till ett språk till din PATH för att kunna använda dem på kommandoraden.
Lyckligtvis gör Rust detta åt dig, och allt du behöver göra är att starta om din Pi, eller logga ut och in igen. Nu borde det fungera att kolla efter Rust och Cargo.
Du kommer att kompilera och bygga alla dina skript från terminalen, men du behöver också en kodredigerare. I det här projektet kommer jag att använda Code-OSS, en community build av VS Code som du kan installera på Pi, men det är inte nödvändigt. Vilken kodredigerare som helst duger.
Skapa ett rostprojekt
För att skapa ett Rust-projekt, skapa en ny katalog och ange den genom att skriva
mkdir YourFolder
cd YourFolder
Använd Cargo för att skapa ett nytt Rust-projekt.
cargo new YourProject
Du får en bekräftelse på att det nya projektet har skapats.
Gå in i den nya projektmappen och lista dess innehåll.
cd YourProject
ls
Du kommer att se en mapp med namnet src och en fil som heter Cargo.toml. Dessa två delar utgör grunden för varje Rust-projekt.
Ett enkelt rostprojekt, förklarat
Låt oss först öppna src-katalogen och öppna main.rs i en kodredigerare. Du kommer att se att det nya projektet kommer komplett med ett “Hello World”-skript för att komma igång.
Rostsyntax kommer att vara bekant för de som har använt C-språk eller Java tidigare. Detta skiljer sig från Python som använder blanksteg, semikolon och klammerparenteser för att beteckna kodblock. Rustkod måste kompileras och byggas innan den körs.
Tillbaka i projektets överordnade mapp, öppna upp Cargo.toml i en kodredigerare. Alla som har kodat i JavaScript eller Ruby kommer sannolikt att hitta detta bekant. Projektinformation, bygginstruktioner och beroenden listas alla i den här filen. Paketen kallas Lådor i Rust, och vi kommer att använda en senare för att komma åt Raspberry Pi:s GPIO-stift.
Bygga provprojektet
Tillbaka i terminalfönstret, se till att du är i din projektkatalog och bygg projektet.
cargo build
Detta skapar en annan mapp inom ditt projekt som heter mål. Du kommer också att märka en ny fil som heter Lastlås. När du arbetar med ett team eller kodar något för att distribuera till en server, låser den här filen projektet till en version som tidigare har kompilerats och byggts framgångsrikt. Medan du lär dig kan du säkert ignorera den här filen.
Inom målmappen finns en undermapp som heter felsöka, och det är här din körbara fil kommer att vara. På Mac och Linux, kör ditt projekt genom att skriva:
./YourProject
På Windows kommer du att ha en ny EXE fil som du kan köra genom att dubbelklicka.
Framgång! Låt oss konvertera det här projektet till något som använder GPIO-stiften.
Konfigurera GPIO-stift
Vi kommer att använda rust_gpiozero-lådan av Rahul Thakdoor för detta projekt. Även om det inte är det enda sättet att komma åt GPIO-stift, är denna låda designad för att likna Python GPIO Zero-biblioteket.
Istället för att manuellt ladda ner lådan, klistra in dess namn under beroenden i filen Cargo.toml.
[dependencies]
rust_gpiozero = "0.2.0"
Spara den och öppna din terminal. I detta skede är det ingen idé att bygga om projektet eftersom ingen kod har ändrats. Cargo tillhandahåller en funktion som kontrollerar att koden kommer att kompileras och att alla beroenden finns.
cargo check
Beroende på din anslutning kan detta ta några minuter, men du behöver bara göra det en gång när du lägger till eller ändrar objekt i filen Cargo.toml.
Hej Blink
Nu kommer du att ändra ditt Hello World-skript till ett blinkande ljus. Börja med att öppna main.rs i din editor. Om du vill hoppa över kodning kan du hitta det färdiga skriptet på Github Gist.
Du måste låta kompilatorn veta att du använder rust_gpiozero-biblioteket, så högst upp i skriptet lägg till en referens till biblioteket.
use rust_gpiozero::*;
Ungefär som den vanliga Python-baserade blinkskissen behöver vi ett sätt att lägga till en fördröjning mellan att slå på och av lysdioden. I Rust använder vi två delar av standardbiblioteket för att göra detta:
use std::thread::sleep;
use std::time::Duration; // note the capital D!
Nu i din huvud funktionen, lägg till en variabel för din LED-stift och en slinga som innehåller de blinkande instruktionerna.
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));
}
Det är allt! Spara ditt skript och gå tillbaka till terminalen.
Testa det
Bygg projektet igen för att uppdatera den körbara filen. Alternativt bygger och kör kommandot run skriptet i ett enda steg:
cargo run
Du bör se en blinkande LED. Bra gjort! Du har precis skapat ditt första hårdvaruprogram med Rust. Tryck Ctrl-C för att gå tillbaka till terminalen. Om du har några fel, kontrollera din kod noggrant för missade kolon, semikolon eller parenteser.
En spännande framtid med rost på Raspberry Pi
För närvarande är Python inte i någon fara att ersättas av Rust. Det är lätt att lära sig och Python kommer att ha många applikationer under många år framöver.
Som sagt, Rust har en hel del surr runt det, och det finns många anledningar till varför du bör lära dig språket!
Om författaren
Ian Buckley (220 publicerade artiklar)
Ian Buckley är en frilansjournalist, musiker, artist och videoproducent bosatt i Berlin, Tyskland. När han inte skriver eller står på scen, pysslar han med DIY-elektronik eller kod i hopp om att bli en galen vetenskapsman.
Mer från Ian Buckley
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
