Un valore espresso in cifre ha sempre un elemento astratto che può dar luogo a errori di interpretazione; però c'è qualcosa di molto più "naturale" nell'osservare un ago che si muove da un'estremità all'altra. Con questo in mente, Lex del canale "Computing: The Details" ha deciso di acquistare diversi amperometri da 5 mA e di combinarli con una buona dose di Arduino per creare un monitor di CPU che segnala l'utilizzo di ogni core disponibile, la memoria RAM e lo swap.

Come costruire un monitor di CPU con misuratori analogici
Monitor di CPU con misuratori analogici

In passato abbiamo condiviso ogni genere di monitor hardware. Recentemente abbiamo parlato di CPU Temp, che sorveglia da vicino la temperatura, ma vale anche la pena esplorare soluzioni come Core Temp e HWiNFO.

Ora, queste sono soluzioni software, una pila di cifre e grafici sullo schermo. L'idea di usare misuratori fisici non è nuova di per sé (in effetti, alcuni produttori di case li hanno inclusi in design vecchi, e ricordo certi accessori di Cooler Master), ma Lex del canale "Computing: The Details" ha deciso di tornarci con un misuratore fai-da-te appositamente configurato per la sua attuale attrezzatura.

Misurare l'attività della CPU e l'uso della memoria con amperometri

Un dettaglio insolito (o meglio direi inaspettato) è che Lex non ha pubblicato il codice del suo misuratore. Il motivo è logico: Lex ritiene che il suo strumento sia molto specifico e copra solo le sue esigenze. Questo potrebbe dare inizio a una vera spirale di segnalazioni su GitHub, e immagino che non voglia grattacapi. Tuttavia, la descrizione generale del suo progetto è molto utile e ci indirizza nella giusta direzione.

I misuratori sono semplici amperometri a basso costo con una portata massima di 5 mA, e sono collegati ai punti PWM di un Arduino Mega tramite una resistenza da 1 kOhm. Gli amperometri hanno ricevuto scale personalizzate realizzate con Inkscape, e una striscia LED (anch'essa collegata ad Arduino) si occupa di infondere colore a tutta la configurazione.

Come costruire un monitor di CPU con misuratori analogici

Per quanto riguarda il software, Lex ha confermato l'uso di Rust per scrivere un piccolo programma che ottiene dati da systemstat su Linux, trasforma i dati e li invia ad Arduino via USB-serial. A quanto pare, il codice ha alcuni bug (la registrazione dello swap è sempre al massimo e tutti i misuratori si sono bloccati in Blender), ma sono errori minori. Personalmente, spero che Lex cambi idea e condivida il codice per una versione più semplice con tre amperometri che misurino CPU in generale, GPU e RAM.