Op zoek naar een manier om aan de slag te gaan met Rust?  Hier leest u hoe u een basishardwareprogramma bouwt met Rust op de Raspberry Pi.

Aan de slag met Rust op Raspberry Pi

Advertentie Als je geïnteresseerd bent in programmeren, heb je waarschijnlijk gehoord van Rust 7 Redenen Rust is de meest opwindende nieuwe programmeertaal 7 Redenen Rust is de meest opwindende nieuwe programmeertaal Wil je beginnen met programmeren? Dit is de reden waarom Rust de meest opwindende en toegankelijke nieuwe programmeertaal is.

Advertentie

Als je geïnteresseerd bent in programmeren, heb je waarschijnlijk gehoord van Rust 7 Redenen Rust is de meest opwindende nieuwe programmeertaal 7 Redenen Rust is de meest opwindende nieuwe programmeertaal Wil je beginnen met programmeren? Dit is de reden waarom Rust de meest opwindende en toegankelijke nieuwe programmeertaal is. Lees verder . De taal, ontworpen door Mozilla, is zeer geliefd bij ontwikkelaars en blijft groeien in toegewijden.

De Raspberry Pi is het Zwitserse zakmes van kleine computers en is perfect voor het leren van code. Laten we de twee combineren en Rust op een Raspberry Pi installeren.

Uw Raspberry Pi instellen

Voor dit project heb je nodig:

  • Raspberry Pi.
  • LED.
  • 220-1k Ohm weerstand.
  • Breadboard en aansluitdraden.

Een schakelschema dat een LED en weerstand toont die zijn bevestigd aan de GPIO 18 en GND-pinnen van een Raspberry Pi

Stel uw circuit in met GPIO 18 verbonden met de positieve poot van de LED en de negatieve poot van de LED met de weerstand en terug naar een GND-pin op de Pi.

Deze tutorial is gemaakt met een Raspberry Pi 3B + met Raspbian Stretch in desktopmodus. Het zou ook prima werken via een externe SSH-verbinding, hoewel verschillende Pi-modellen en verschillende besturingssystemen verschillende resultaten kunnen hebben.

Hoe Rust op Raspberry Pi te installeren

De opdracht Terminal vereist om Rust te installeren

Om roest te installeren, ga je naar de rust-lang installatiepagina en kopieer je de installatieopdracht naar je terminal. Kies een standaardinstallatie wanneer u hierom wordt gevraagd.

De drie keuzes gepresenteerd door het Rust-installatieprogramma.

Het installatieprogramma laat u weten wanneer het is voltooid, hoewel de installatie enige tijd kan duren, afhankelijk van uw verbinding.

Na installatie

Rustc en Cargo zijn geïnstalleerd, maar momenteel niet in PATH

De installatie is geslaagd, maar u kunt deze nog niet helemaal gebruiken. Als u per versie op Rust en Cargo probeert te controleren, krijgt u een foutmelding. Gewoonlijk moet u een taal aan uw PATH toevoegen om ze op de opdrachtregel te gebruiken.

Gelukkig doet Rust dit voor je en hoef je alleen maar je Pi opnieuw op te starten of uit te loggen en opnieuw in te loggen. Nu zou het controleren op Rust en Cargo moeten werken.

Roest en lading testen in PATH met hun versienummers.

Je gaat al je scripts compileren en bouwen vanuit de terminal, maar je hebt ook een code-editor nodig. In dit project zal ik Code-OSS gebruiken, een community build van VS Code die je op de Pi kunt installeren, maar het is niet essentieel. Elke code-editor is voldoende.

Een roestproject maken

Als u een Rust-project wilt maken, maakt u een nieuwe map en voert u deze in door te typen

 mkdir YourFolder cd YourFolder 

Gebruik Cargo om een ​​nieuw Rust-project te maken.

 cargo new YourProject 

U krijgt een bevestiging dat het nieuwe project is gemaakt.
Een nieuwe map maken in de terminal en er een leeg roestproject in plaatsen

Voer de nieuwe projectmap in en geef de inhoud weer.

 cd YourProject ls 

U ziet een map met de naam src en een bestand met de naam Cargo.toml . Deze twee elementen vormen de basis van elk Rust-project.

Een eenvoudig roestproject, uitgelegd

Een voorbeeld van een hello-world roest script

Laten we eerst de src-directory openen en main.rs openen in een code-editor. Je zult zien dat het nieuwe project wordt geleverd met een "Hello World" -script om je op weg te helpen.

Rust-syntaxis zal bekend zijn bij degenen die eerder C-talen of Java hebben gebruikt. Dit verschilt van Python dat witruimte, puntkomma's en accolades gebruikt om codeblokken aan te duiden. Rust-code moet compileren en bouwen voordat deze wordt uitgevoerd.

Een leeg Cargo.toml-bestand

Terug in de bovenliggende map van het project, open Cargo.toml in een code-editor. Iedereen die in JavaScript of Ruby heeft gecodeerd, zal dit waarschijnlijk bekend vinden. Projectinformatie, bouwinstructies en afhankelijkheden worden allemaal in dit bestand vermeld. Pakketten worden Crates in Rust genoemd en we zullen er later een gebruiken om toegang te krijgen tot de GPIO-pinnen van de Raspberry Pi.

Het voorbeeldproject bouwen

Terug in het terminalvenster, zorg ervoor dat u zich in uw projectmap bevindt en bouw het project.

 cargo build 

Het gebruik van de opdracht Cargo Build om het voorbeeldproject te bouwen

Hiermee maakt u een andere map binnen uw project aan met de naam target . U zult ook een nieuw bestand met de naam Cargo.lock opmerken . Wanneer u met een team werkt of iets codeert om op een server te implementeren, vergrendelt dit bestand het project naar een versie die eerder is gecompileerd en gebouwd. Tijdens het leren kunt u dit bestand veilig negeren.

In de doelmap bevindt zich een submap met de naam debug . Hier bevindt zich uw uitvoerbare bestand. Voer uw project op Mac en Linux uit door te typen:

 ./YourProject 

In Windows hebt u een nieuw EXE- bestand dat u kunt uitvoeren door erop te dubbelklikken.

De bestandsstructuur van het gebouwde roestproject samen met het hallo wereldprogramma dat wordt uitgevoerd.

Succes! Laten we dit project omzetten in iets dat de GPIO-pinnen gebruikt.

GPIO-pins instellen

De Rust GPIO Zero-krat toevoegen aan het Cargo.toml-bestand

Voor dit project zullen we de rust_gpiozero krat van Rahul Thakdoor gebruiken. Hoewel het niet de enige manier is om toegang te krijgen tot GPIO-pinnen, is deze krat ontworpen om vergelijkbaar te zijn met de Python GPIO Zero-bibliotheek.

In plaats van de krat handmatig te downloaden, plak je de naam onder afhankelijkheden in het bestand Cargo.toml.

 [dependencies] rust_gpiozero = "0.2.0" 

Sla het op en open uw terminal. In dit stadium heeft het geen zin om het project opnieuw op te bouwen, omdat er geen code is gewijzigd. Cargo biedt een functie die controleert of de code wordt gecompileerd en of alle afhankelijkheden aanwezig zijn.

 cargo check 

Ladingcontrole controleert de code op fouten en installeert afhankelijkheden

Afhankelijk van uw verbinding kan dit enkele minuten duren, maar u hoeft dit slechts één keer te doen wanneer u items in het Cargo.toml-bestand toevoegt of wijzigt.

Hallo knipperend

Een Raspberry Pi met een LED bevestigd

Nu zul je je hallo world script veranderen in een knipperend script. Begin met het openen van main.rs in uw editor. Als je codering wilt overslaan, kun je het voltooide script vinden op Github Gist.

Je moet de compiler laten weten dat je de bibliotheek rust_gpiozero gebruikt, dus voeg bovenaan het script een verwijzing naar de bibliotheek toe.

 use rust_gpiozero::*; 

Net als de normale op Python gebaseerde knipper-schets, hebben we een manier nodig om een ​​vertraging toe te voegen tussen het in- en uitschakelen van de LED. In Rust gebruiken we twee elementen van de standaardbibliotheek om dit te doen:

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

Voeg nu in uw hoofdfunctie een variabele toe voor uw LED-pin en een lus om de knipperinstructies te bevatten.

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

Dat is het! Sla uw script op en keer terug naar de terminal.

Test het uit

Een afbeelding van de LED die oplicht

Bouw het project opnieuw om het uitvoerbare bestand bij te werken. Als alternatief wordt met de opdracht run het script in één stap opgebouwd en uitgevoerd:

 cargo run 

U zou een knipperende LED moeten zien. Goed gedaan! Je hebt zojuist je eerste hardwareprogramma met Rust gemaakt. Druk op Ctrl-C om terug te gaan naar de terminal. Als je fouten hebt, controleer je code dan grondig op eventuele gemiste dubbele punten, dubbele punten of haakjes.

Een spannende toekomst met roest op Raspberry Pi

Momenteel loopt Python geen enkel gevaar om door Rust te worden vervangen. Het is gemakkelijk te leren en Python zal nog vele jaren toepassingen hebben.

Dat gezegd hebbende, Rust heeft nogal een buzz eromheen, en er zijn veel redenen waarom je de taal zou moeten leren 7 Redenen Rust is de meest opwindende nieuwe programmeertaal 7 Redenen Rust is de meest opwindende nieuwe programmeertaal Wil je beginnen met programmeren? Dit is de reden waarom Rust de meest opwindende en toegankelijke nieuwe programmeertaal is. Lees verder !

Ontdek meer over: Raspberry Pi, Rust.