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.
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.
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.