Um valor expresso em dígitos sempre terá um elemento abstrato que pode levar a erros de interpretação; no entanto, há algo muito mais «natural» ao observar uma agulha que se move de um extremo ao outro. Com isso em mente, Lex do canal «Computing: The Details» decidiu adquirir vários amperímetros de 5 mA e combiná-los com uma boa dose de Arduino para criar um monitor de CPU que reporta o uso de cada núcleo disponível, a memória RAM e o swap.

Como construir um monitor de CPU com medidores analógicos
Monitor de CPU com medidores analógicos

Já compartilhamos todo tipo de monitores de hardware no passado. Recentemente falamos sobre CPU Temp que monitora de perto a temperatura, mas também vale a pena explorar soluções no nível de Core Temp e HWiNFO.

Agora, essas são soluções de software, uma pilha de dígitos e gráficos na tela. A ideia de usar medidores físicos não é exatamente nova (na verdade, alguns fabricantes de gabinetes os incluíram em designs antigos, e me lembro de certos acessórios da Cooler Master), mas Lex do canal «Computing: The Details» decidiu voltar a ela com um medidor DIY especialmente configurado para seu equipamento atual.

Medindo a atividade do CPU e o uso de memória com amperímetros

Um detalhe incomum (ou talvez eu devesse dizer inesperado) é que Lex não publicou o código do seu medidor. A razão tem sua lógica: Lex acredita que sua ferramenta é muito específica e só cobre suas necessidades. Isso poderia iniciar uma verdadeira espiral de relatos no GitHub, e imagino que ele não quer dor de cabeça. No entanto, a descrição geral do projeto é muito útil e nos envia na direção certa.

Os medidores são simples amperímetros de baixo custo com registro máximo de 5 mA, e se conectam aos pinos PWM de um Arduino Mega usando um resistor de 1 kOhm. Os amperímetros receberam escalas personalizadas feitas no Inkscape, e uma fita de LED (também conectada ao Arduino) cuida de injetar cor em toda a configuração.

Pelo lado do software, Lex confirmou o uso de Rust para escrever um pequeno programa que obtém dados do systemstat no Linux, transforma os dados e os envia para o Arduino via USB-serial. Aparentemente, o código tem alguns bugs (o registro de swap está sempre no máximo, e todos os medidores travaram no Blender), mas são erros menores. Pessoalmente, espero que Lex mude de ideia e compartilhe o código para uma versão mais simples com três amperímetros que meça CPU em geral, GPU e RAM.

Como construir um monitor de CPU com medidores analógicos