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