Menu
in

Cómo construir un monitor de CPU con medidores analógicos

¿Agujas en vez de dígitos? Esto te gustará

Un valor expresado en dígitos siempre tendrá un elemento abstracto que puede dar lugar a errores en su interpretación, sin embargo, hay algo mucho más «natural» al observar una aguja que se mueve de un extremo al otro. Con eso en mente, Lex del canal «Computing: The Details» decidió adquirir varios amperímetros de 5 mA, y combinarlos con una buena dosis de Arduino para crear un monitor de CPU que reporta el uso de cada núcleo disponible, la memoria RAM, y el swap.


Hemos compartido toda clase de monitores de hardware en el pasado. Recientemente hablamos sobre CPU Temp que vigila de cerca la temperatura, pero también vale la pena explorar soluciones al nivel de Core Temp y HWiNFO.

Ahora, esas son soluciones de software, una pila de dígitos y gráficos en la pantalla. La idea de utilizar medidores físicos no es nueva que digamos (de hecho, algunos fabricantes de cajas los incluyeron en diseños antiguos, y recuerdo ciertos accesorios de Cooler Master), pero Lex del canal «Computing: The Details» decidió regresar a ella con un medidor DIY especialmente configurado para su equipo actual.


Midiendo la actividad del CPU y el uso de memoria con amperímetros


Un detalle inusual (o debería decir inesperado) es que Lex no publicó el código de su medidor. La razón tiene su lógica: Lex cree que su herramienta es muy específica y sólo cubre sus necesidades. Eso podría iniciar una verdadera espiral de reportes en GitHub, e imagino que no quiere dolores de cabeza. Sin embargo, la descripción general de su proyecto es muy útil, y nos envía en la dirección correcta.

Los medidores son simples amperímetros de bajo costo con un registro máximo de 5 mA, y se conectan a los puntos PWM de un Arduino Mega usando una resistencia de 1 kOhm. Los amperímetros recibieron escalas personalizadas hechas en Inkscape, y una tira LED (también conectada al Arduino) se encarga de inyectar color a toda la configuración.

Por el lado del software, Lex confirmó el uso de Rust para escribir un pequeño programa que obtiene datos de systemstat en Linux, transforma los datos y los envía al Arduino vía USB-serial. Al parecer, el código tiene algunos bugs (el registro de swap siempre está al máximo, y todos los medidores se trabaron en Blender), pero son errores menores. En lo personal, espero que Lex cambie de opinión y comparta el código para una versión más simple con tres amperímetros que mida CPU en general, GPU, y RAM.


Escrito por Lisandro Pardo

Leave a Reply