Se desideri monitorare le risorse del PC per capire dove migliorarlo ma non vuoi usare un software, lascia fare ad Arduino.
All’interno di un computer sono presenti diversi componenti che possono potenzialmente creare un “collo di bottiglia” e limitarne le prestazioni complessive della macchina. Tuttavia, non è sempre evidente quale componente sia responsabile di questo degrado delle prestazioni. Oltre ad essere difficile da individuare, il collo di bottiglia potrebbe essere altrettanto difficile da risolvere: per esempio, sappiamo che lavori di grafica richiedono molte risorse e molti penserebbero in primis di dover procedere alla sostituzione del processore con uno più potente. Questo modus operandi è però errato, perché la soluzione ad un problema simile è da ricercarsi nell’aumento della memoria RAM, non nell’incremento della rapidità di calcolo. Il modo migliore per trovare il collo di bottiglia è quello di monitorare i singoli componenti per capire quale non stia rendendo al pari degli altri.
In realtà ci sarebbero diversi programmi sia open source che a pagamento, già implementati per questa tipologia di utilizzo, ma grazie a questo progetto creato da Saša Karanović possiamo fare di meglio.
Il vantaggio principale di sistema autonomo di monitoraggio risorse è quello di risparmiare risorse di sistema e non occupare aree dello schermo con interfacce grafiche o widget. La configurazione di Karanović è semplicissima: adotta indicatori analogici chiamati galvanometri, per mostrare l’utilizzo corrente di CPU, memoria, GPU e rete. Tutto quello che devi fare è dare un’occhiata a questi indicatori per avere un’idea della percentuale utilizzata per ogni componente. Se desideri monitorare qualcos’altro, come l’utilizzo del disco rigido o la temperatura della CPU, non dovrai fare altro che modificare lo script.
I componenti principali necessari per questa build sono i galvanometri e una board basata su microcontrollore dotata di porta USB. Karanović ha iniziato con una scheda di sviluppo per microcontrollori STM32F103, successivamente ha progettato un PCB personalizzato, ma si può serenamente utilizzare una board Arduino, ad esempio.
La proprietà fondamentale di un galvanometro, è quella di trasformare una corrente elettrica in un momento magnetico. In parole povere, la lancetta del galvanometro si muove in proporzione alla corrente che attraversa il solenoide. Quello a cui dobbiamo prestare attenzione, è che una board come Arduino non ci permette di “pilotare” una corrente, bensì una tensione.
La legge di Ohm nella forma in cui si esplicita la corrente I, ovvero I = V/R afferma che la corrente I equivale alla tensione V applicata diviso il valore dei resistori. La tensione V la pilotiamo con Arduino, la corrente I è l’incognita e il valore della resistenza R lo otteniamo mettendo in serie ai galvanometri un un resistore. Dal momento in cui disponiamo della board Arduino (ad esempio), conviene smontare i galvanometri per rimuovere tutti i componenti che non servono: tipicamente all’interno si trova un diodo, un condensatore e un resistore. Il loro lavoro verrà infatti svolto dal DAC (Digital Analogic Converter).
Un semplice script compilato in Python viene utilizzato per verificare lo stato di ciascun componente tramite interfaccia seriale USB collegata al PC. Il segnale viene letto da Arduino, il quale a sua volta invia il segnale manipolato ai galvanometri.
Se volete saperne di più visitate il sito dello sviluppatore.