Cerchi un modo per iniziare con Rust?  Ecco come creare un programma hardware di base con Rust sul Raspberry Pi.

Come iniziare con Rust su Raspberry Pi

Annuncio pubblicitario Se sei interessato alla programmazione, probabilmente hai sentito parlare di Rust 7 motivi Rust è il nuovo linguaggio di programmazione più emozionante 7 motivi Rust è il nuovo linguaggio di programmazione più eccitante Vuoi iniziare con la programmazione? Ecco perché Rust è il nuovo linguaggio di programmazione più interessante e accessibile. Leggi

Annuncio pubblicitario

Se sei interessato alla programmazione, probabilmente hai sentito parlare di Rust 7 motivi Rust è il nuovo linguaggio di programmazione più emozionante 7 motivi Rust è il nuovo linguaggio di programmazione più eccitante Vuoi iniziare con la programmazione? Ecco perché Rust è il nuovo linguaggio di programmazione più interessante e accessibile. Leggi di più . Il linguaggio, progettato da Mozilla, è ampiamente amato dagli sviluppatori e continua a crescere nei devoti.

Il Raspberry Pi è il coltellino svizzero di piccoli computer ed è perfetto per l'apprendimento del codice. Uniamo i due e installiamo Rust su un Raspberry Pi.

Configurazione di Raspberry Pi

Per questo progetto avrai bisogno di:

  • Raspberry Pi.
  • GUIDATO.
  • Resistenza 220-1k Ohm.
  • Breadboard e cavi di collegamento.

Uno schema circuitale che mostra un LED e una resistenza collegati ai pin GPIO 18 e GND di un Raspberry Pi

Imposta il tuo circuito con GPIO 18 collegato alla gamba positiva del LED, e la gamba negativa del LED al resistore, e di nuovo a un pin GND sul Pi.

Questo tutorial è stato realizzato utilizzando un Raspberry Pi 3B + con Raspbian Stretch in modalità desktop. Funzionerebbe perfettamente anche attraverso una connessione SSH remota, anche se diversi modelli di Pi e diversi sistemi operativi potrebbero avere risultati diversi.

Come installare Rust su Raspberry Pi

Il comando Terminale richiesto per installare Rust

Per installare rust, vai alla pagina di installazione di rust-lang e copia il comando di installazione nel tuo terminale. Quando richiesto, scegliere un'installazione predefinita.

Le tre scelte presentate dall'installer di Rust.

Il programma di installazione ti avviserà al termine, anche se l'installazione può richiedere del tempo a seconda della connessione.

Dopo l'installazione

Rustc e Cargo sono installati, ma attualmente non in PERCORSO

L'installazione è andata a buon fine, ma non puoi ancora iniziare ad usarla. Se si tenta di verificare la presenza di Rust e Cargo per versione, verrà visualizzato un errore. Di solito, è necessario aggiungere una lingua al PERCORSO per usarli sulla riga di comando.

Fortunatamente Rust fa questo per te, e tutto ciò che devi fare è riavviare il tuo Pi o disconnetterti e riconnetterti. Ora il controllo di Rust e Cargo dovrebbe funzionare.

Test di Rust e Cargo in PERCORSO con i loro numeri di versione.

Compilerai e costruirai tutti i tuoi script dal terminale, ma avrai anche bisogno di un editor di codice. In questo progetto userò Code-OSS, una build della community di VS Code che puoi installare sul Pi, ma non è essenziale. Qualsiasi editor di codice farà.

Creazione di un progetto Rust

Per creare un progetto Rust, crea una nuova directory e immettila digitando

 mkdir YourFolder cd YourFolder 

Usa Cargo per creare un nuovo progetto Rust.

 cargo new YourProject 

Riceverai una conferma che il nuovo progetto è stato creato.
Creare una nuova directory nel terminale e inserirvi un progetto di ruggine vuoto

Immettere la nuova cartella del progetto ed elencarne il contenuto.

 cd YourProject ls 

Vedrai una cartella chiamata src e un file chiamato Cargo.toml . Questi due elementi costituiscono la base di ogni progetto Rust.

Un semplice progetto Rust, ha spiegato

Un esempio di ruggine ciao-mondo

Innanzitutto, apriamo la directory src e apriamo main.rs in un editor di codice. Vedrai che il nuovo progetto viene fornito completo di uno script "Hello World" per iniziare.

La sintassi di Rust sarà familiare a coloro che hanno già usato linguaggi C o Java. Ciò differisce da Python che utilizza spazi bianchi, punti e virgola e parentesi graffe per indicare blocchi di codice. Il codice Rust deve essere compilato e compilato prima di essere eseguito.

Un file Cargo.toml vuoto

Torna nella cartella principale del progetto, apri Cargo.toml in un editor di codice. Chiunque abbia codificato in JavaScript o Ruby probabilmente lo troverà familiare. Le informazioni sul progetto, le istruzioni di costruzione e le dipendenze sono elencate in questo file. I pacchetti si chiamano Crates in Rust e ne useremo uno in seguito per accedere ai pin GPIO di Raspberry Pi.

Costruire il progetto di esempio

Torna nella finestra del terminale, assicurati di essere nella directory del tuo progetto e costruisci il progetto.

 cargo build 

Utilizzo del comando Build Cargo per creare il progetto di esempio

Questo crea un'altra cartella all'interno del tuo progetto chiamata target . Noterai anche un nuovo file chiamato Cargo.lock . Quando si lavora con un team o si codifica qualcosa da distribuire su un server, questo file blocca il progetto su una versione precedentemente compilata e compilata correttamente. Durante l'apprendimento, puoi tranquillamente ignorare questo file.

All'interno della cartella di destinazione c'è una sottocartella chiamata debug, ed è qui che si troverà il tuo file eseguibile. Su Mac e Linux, esegui il tuo progetto digitando:

 ./YourProject 

Su Windows, avrai un nuovo file EXE che puoi eseguire facendo doppio clic.

La struttura dei file del progetto ruggine costruito insieme al programma Hello World in esecuzione.

Successo! Convertiamo questo progetto in qualcosa che utilizza i pin GPIO.

Impostazione dei pin GPIO

Aggiunta della cassa Rust GPIO Zero al file Cargo.toml

Per questo progetto utilizzeremo la cassa rust_gpiozero di Rahul Thakdoor. Sebbene non sia l'unico modo per accedere ai pin GPIO, questa cassa è progettata per essere simile alla libreria GPIO Zero di Python.

Invece di scaricare manualmente la cassa, incollare il suo nome sotto le dipendenze nel file Cargo.toml.

 [dependencies] rust_gpiozero = "0.2.0" 

Salvalo e apri il tuo terminale. In questa fase, non ha senso ricostruire il progetto in quanto nessun codice è cambiato. Cargo fornisce una funzione che verificherà che il codice verrà compilato e che tutte le dipendenze siano presenti.

 cargo check 

Il controllo del carico verificherà la presenza di errori nel codice e installerà le dipendenze

A seconda della connessione, ciò può richiedere alcuni minuti, ma è necessario farlo una sola volta, quando si aggiungono o si modificano elementi nel file Cargo.toml.

Ciao Blink

Un Raspberry Pi con un LED attaccato

Ora cambierai la tua sceneggiatura di Hello World in una luce lampeggiante. Inizia aprendo main.rs nel tuo editor. Se vuoi saltare la codifica, puoi trovare lo script finito su Github Gist.

Devi far sapere al compilatore che stai usando la libreria rust_gpiozero, quindi nella parte superiore dello script aggiungi un riferimento alla libreria.

 use rust_gpiozero::*; 

Proprio come il normale schizzo lampeggiante basato su Python, abbiamo bisogno di un modo per aggiungere un ritardo tra l'accensione e lo spegnimento del LED. In Rust, utilizziamo due elementi della libreria standard per fare questo:

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

Ora nella tua funzione principale, aggiungi una variabile per il tuo pin LED e un loop per contenere le istruzioni lampeggianti.

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

Questo è tutto! Salva il tuo script e torna al terminale.

Provalo

Un'immagine che mostra l'accensione del LED

Compilare nuovamente il progetto per aggiornare l'eseguibile. In alternativa, il comando run crea ed esegue lo script in un unico passaggio:

 cargo run 

Dovresti vedere un LED lampeggiante. Molto bene! Hai appena realizzato il tuo primo programma hardware con Rust. Premi Ctrl-C per tornare al terminale. In caso di errori, controllare attentamente il codice per individuare due punti, punti e virgola o parentesi mancanti.

Un futuro eccitante con ruggine su Raspberry Pi

Attualmente, Python non corre alcun rischio di essere sostituito da Rust. È facile da imparare e Python avrà molte applicazioni per gli anni a venire.

Detto questo, Rust ha un bel ronzio attorno e ci sono molte ragioni per cui dovresti imparare la lingua 7 Ragioni Rust è il nuovo linguaggio di programmazione più eccitante 7 Ragioni Rust è il nuovo linguaggio di programmazione più eccitante Vuoi iniziare con la programmazione? Ecco perché Rust è il nuovo linguaggio di programmazione più interessante e accessibile. Leggi di più !

Scopri di più su: Raspberry Pi, Rust.