# Utilizzare Rust integrato per dispositivi autonomi a batteria
> [! nota]-
> Il contenuto di questa pagina è generato dalla trascrizione audio/video e dalla trasformazione del testo dal contenuto e dai link di questa fonte.
Fonte: [https://fosdem.org/2025/schedule/event/fosdem-2025-6300-using-embedded-rust-to-build-an-unattended-battery-powered-device/](https://fosdem.org/2025/schedule/event/fosdem-2025-6300-using-embedded-rust-to-build-an-unattended-battery-powered-device/)
<video src=“https://video.fosdem.org/2025/h1302/fosdem-2025-6300-using-embedded-rust-to-build-an-unattended-battery-powered-device.av1.webm” controls></video>
## Riepilogo e punti salienti:
Il progetto presentato da Xabier Crespo Álvarez al FOSDEM 2025 si concentra sull'utilizzo di Rust per sviluppare un fotometro open source, progettato per misurare la qualità del cielo. Questo dispositivo, autonomo e alimentato a batteria, è stato creato per supportare una rete globale e collaborativa di fotometri. Durante il discorso, Crespo ha condiviso le sfide affrontate e le lezioni apprese durante lo sviluppo, sottolineando l'importanza di Rust nel processo.
**Introduzione al Progetto**
Il progetto è stato commissionato dalla Libre Space Foundation e mira a creare un fotometro open source per misurare la qualità del cielo. Il dispositivo è stato progettato per essere semplice e accessibile, con l'obiettivo di costruire una rete globale di fotometri. Rust è stato scelto per la sua robustezza e capacità di gestire dispositivi autonomi.
**Sviluppo e Collaborazione**
Dopo aver definito i requisiti, il team ha deciso di utilizzare Rust per il firmware del dispositivo, che include sensori I2C, un microcontrollore e connettività WiFi. La collaborazione con l'Istituto di Astrofisica delle Canarie ha permesso di testare il dispositivo in condizioni difficili, confermando l'efficacia di Rust.
**Vantaggi di Rust**
Rust offre numerosi vantaggi per lo sviluppo di dispositivi embedded, tra cui analisi statica avanzata, gestione flessibile della memoria e sicurezza nella concorrenza. Il linguaggio fornisce anche strumenti potenti come Cargo, che semplifica la gestione dei pacchetti e dei progetti.
**Conclusioni e Applicazioni Future**
Il progetto ha dimostrato che Rust è una scelta valida per lo sviluppo di dispositivi embedded. La comunità attiva e gli strumenti avanzati rendono Rust un'opzione interessante per futuri progetti di hardware aperto. Le sfide principali restano il supporto limitato da parte dei fornitori e la curva di apprendimento del linguaggio.
## Significato per una trasformazione eco-sociale
Questo progetto rappresenta un esempio significativo di come le tecnologie open source e gli sviluppi hardware possano contribuire a trasformazioni eco-sociali. Il fotometro open source promuove la collaborazione globale e la condivisione della conoscenza, essenziali per affrontare problemi ambientali come l'inquinamento luminoso. Per i designer eco-sociali, l'uso di Rust offre un linguaggio sicuro ed efficiente per lo sviluppo di dispositivi sostenibili. Tuttavia, ci sono sfide tecniche legate alla curva di apprendimento di Rust e alla mancanza di supporto da parte dei fornitori. È fondamentale promuovere la formazione e la documentazione per superare questi ostacoli e favorire l'adozione su larga scala.
## Slides:
| | |
| --- | --- |
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_001.jpg\|300]] | La prima diapositiva introduce il relatore, Xabier Crespo Álvarez, e il contesto della presentazione al FOSDEM 2025 a Bruxelles. Si concentra sull'uso di Rust integrato per sviluppare un dispositivo autonomo e alimentato a batteria, denominato Dark Sky Meter. Questo dispositivo è progettato per misurare la qualità del cielo, evidenziando l'importanza dell'argomento nella traccia Embedded, Mobile e Automotive.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_002.jpg\|300]] | La seconda diapositiva contiene un disclaimer che chiarisce che la presentazione non è un'analisi approfondita di Rust, ma piuttosto una riflessione sulla sua fattibilità per lo sviluppo di dispositivi embedded pronti per la produzione. Il relatore intende condividere esperienze e pensieri sull'uso di Rust in progetti reali.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_003.jpg\|300]] | La terza diapositiva affronta il problema dell'inquinamento luminoso, sottolineando la sua rilevanza per gli astronomi. Vengono elencate altre conseguenze dell'inquinamento luminoso, come gli impatti sulla salute pubblica, sull'ecologia e sull'identità culturale. La diapositiva include un'immagine di Jeremy Stanley che illustra l'inquinamento luminoso e la sua bruttezza.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_004.jpg\|300]] | La quarta diapositiva descrive come misurare l'inquinamento luminoso utilizzando specifici sensori. Vengono menzionati due sensori di ams, il TSL237, ora fuori produzione, e il TSL25911, che è attualmente utilizzato per misurare l'intensità della luce.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_005.jpg\|300]] | La quinta diapositiva discute le tendenze popolari nella comunità dei maker, come l'uso di Arduino e MicroPython/CircuitPython, e approcci tradizionali con SDK dei fornitori in C/C++. Viene evidenziato l'impatto di Rust e Zephyr sull'industria, suggerendo un cambiamento verso strumenti più moderni e flessibili.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_006.jpg\|300]] | La sesta diapositiva esplora i motivi per cui Rust è una scelta valida per progetti embedded. Viene citata la fonte ufficiale di Rust, che elenca i vantaggi del linguaggio per l'embedded, come la sicurezza e la robustezza, e si sottolinea la sua crescente popolarità nella comunità degli sviluppatori.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_007.jpg\|300]] | La settima diapositiva continua a esplorare i vantaggi di Rust per i sistemi embedded, facendo riferimento alla documentazione ufficiale di Rust. Si evidenziano le caratteristiche del linguaggio che lo rendono adatto a progetti embedded, come la gestione della memoria e la sicurezza nella concorrenza.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_008.jpg\|300]] | L'ottava diapositiva prosegue l'analisi dei motivi per cui Rust è adatto ai sistemi embedded. Viene sottolineata l'importanza della comunità di Rust e delle risorse disponibili per gli sviluppatori, che facilitano l'adozione del linguaggio in progetti reali.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_009.jpg\|300]] | La nona diapositiva continua a esaminare i vantaggi di Rust, con un focus sulla documentazione ufficiale del linguaggio. Viene ribadito il potenziale di Rust per migliorare la sicurezza e l'efficienza dei dispositivi embedded.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_010.jpg\|300]] | La decima diapositiva conclude la sezione sui vantaggi di Rust, citando ancora una volta la documentazione ufficiale. Si sottolinea come Rust offra strumenti e risorse che possono semplificare lo sviluppo di progetti embedded complessi.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_011.jpg\|300]] | L'undicesima diapositiva introduce gli strumenti avanzati di Rust, come Cargo, che facilitano la gestione dei progetti. Vengono elencati comandi come cargo run e cargo test, che semplificano il processo di sviluppo, e si menzionano numerosi crate disponibili per estendere le funzionalità.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_012.jpg\|300]] | La dodicesima diapositiva si concentra sui sistemi embedded, evidenziando come Rust offra un'ampia gamma di driver grazie agli sforzi di standardizzazione del Rust Embedded Devices Working Group. Viene mostrato un esempio di aggiunta di un nuovo sensore con il comando cargo add.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_013.jpg\|300]] | La tredicesima diapositiva mostra un esempio pratico di utilizzo di Cargo per aggiungere driver di sensori, come il BME280 e l'ADXL345. Questo dimostra la facilità con cui è possibile integrare nuovi componenti in un progetto Rust.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_014.jpg\|300]] | La quattordicesima diapositiva affronta le sfide che accompagnano l'uso di strumenti moderni come Rust, suggerendo che nuovi strumenti portano anche nuovi problemi. Tuttavia, si sottolinea che questi problemi sono un prezzo da pagare per i vantaggi offerti.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_015.jpg\|300]] | La quindicesima diapositiva valuta Rust come opzione per nuovi progetti, evidenziando i pro e i contro. Vengono menzionati il tooling avanzato, la documentazione decente e una comunità forte, ma anche la mancanza di supporto da parte dei fornitori.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_016.jpg\|300]] | La sedicesima diapositiva descrive le caratteristiche del Dark Sky Meter, come i sensori per misurare l'intensità della luce, la temperatura, l'umidità e l'accelerazione. Vengono elencate le opzioni di connettività e le funzionalità a basso consumo energetico, come l'uso di pannelli solari e batterie.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_017.jpg\|300]] | La diciassettesima diapositiva menziona l'uso di crate esterni nel progetto, sottolineando l'importanza di queste librerie per estendere le funzionalità del dispositivo e semplificare lo sviluppo.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_018.jpg\|300]] | La diciottesima diapositiva discute il consumo energetico del dispositivo, evidenziando l'importanza di ottimizzare l'uso della batteria per garantire un funzionamento continuo. Vengono presentati dati specifici sul consumo durante il ciclo di campionamento e invio.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_019.jpg\|300]] | La diciannovesima diapositiva fornisce dettagli sul ciclo completo notturno del dispositivo, che consuma 2.65mA a 4.2V ed è acceso il 25% del tempo. Questo dimostra l'efficacia delle misure di risparmio energetico implementate.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_020.jpg\|300]] | La ventesima diapositiva continua a discutere il consumo energetico, mostrando grafici e dati che illustrano l'efficienza del dispositivo durante il ciclo di campionamento e connessione.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_021.jpg\|300]] | La ventunesima diapositiva fornisce dettagli sul ciclo di campionamento del dispositivo, che dura circa 75 secondi. Viene mostrato il consumo energetico durante questo ciclo, evidenziando l'importanza di ottimizzare l'uso della batteria.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_022.jpg\|300]] | La ventiduesima diapositiva continua l'analisi del consumo energetico, illustrando ulteriormente come il dispositivo gestisce il consumo durante le operazioni di campionamento e connessione.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_023.jpg\|300]] | La ventitreesima diapositiva discute il ciclo di campionamento e connessione del dispositivo, mostrando come viene gestito il consumo energetico durante queste operazioni. Viene evidenziata l'efficienza del dispositivo nel mantenere un basso consumo.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_024.jpg\|300]] | La ventiquattresima diapositiva presenta i risultati del progetto, mostrando dati raccolti dal dispositivo e analisi delle prestazioni. Viene sottolineato il successo del progetto e la capacità del dispositivo di raccogliere dati utili sull'inquinamento luminoso.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_025.jpg\|300]] | La venticinquesima diapositiva mostra i cambiamenti di temperatura giorno/notte e l'impatto della luna sul livello di luce. Viene illustrato come la batteria si scarica durante la notte e si ricarica durante il giorno, dimostrando l'efficacia del design a basso consumo.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_026.jpg\|300]] | La ventiseiesima diapositiva continua a discutere i risultati del progetto, mostrando ulteriori dati e analisi delle prestazioni del dispositivo. Viene evidenziata la capacità del dispositivo di operare in condizioni difficili.
| ![[FOSDEM 2025/assets/Using-embedded-Rust-to-build-an-unattended-battery/preview_027.jpg\|300]] | La ventisettesima diapositiva conclude la presentazione con un ringraziamento e invita i partecipanti a visitare i repository del firmware e dell'hardware del progetto su GitLab. Viene fornito il contatto email del relatore per ulteriori domande o collaborazioni.
## Link
[Talk slides](https://fosdem.org/2025/events/attachments/fosdem-2025-6300-using-embedded-rust-to-build-an-unattended-battery-powered-device/slides/238320/FOSDEM25_ylPDHjT.pdf)
[Firmware repository](https://gitlab.com/scrobotics/optical-makerspace/dark-sky-meter-fw)
[Hardware repository](https://gitlab.com/scrobotics/optical-makerspace/dark-sky-meter-hw)
[Video recording (AV1/WebM)](https://video.fosdem.org/2025/h1302/fosdem-2025-6300-using-embedded-rust-to-build-an-unattended-battery-powered-device.av1.webm)
[Video recording (MP4)](https://video.fosdem.org/2025/h1302/fosdem-2025-6300-using-embedded-rust-to-build-an-unattended-battery-powered-device.av1.mp4)
[Video recording subtitle file (VTT)](https://video.fosdem.org/2025/h1302/fosdem-2025-6300-using-embedded-rust-to-build-an-unattended-battery-powered-device.vtt)
[Chat room (web)](https://fosdem.org/2025/chat/room/fosdem-2025-6300-using-embedded-rust-to-build-an-unattended-battery-powered-device/)
[Chat room (app)](https://fosdem.org/2025/chat/app/fosdem-2025-6300-using-embedded-rust-to-build-an-unattended-battery-powered-device/)