Estudio de caso: un pequeño proyecto de hardware y software a medida

Si nunca has pensado en dejar que alguien diseñe un nuevo circuito eléctrico para resolver un problema de la vida real, este artículo es para ti.

Un día un amigo vino a verme con un problema: necesitaba un sistema de seguridad en la cocina de su madre para asegurarse de que no dejara la estufa encendida. Se le ocurrió la idea a partir de un sistema muy conocido llamado interruptor de hombre muerto o dispositivo de vigilancia del conductor, que se usa habitualmente en trenes para prevenir accidentes si el conductor se queda dormido: una forma creativa de cuidar a las personas mayores.

Ya era una persona de “hazlo tú mismo”, así que su primera idea fue conectar un montón de relés (interruptores electromecánicos). Así se construían los computadores digitales en los años 40: requiere muchas piezas, cableado, relés y mantenimiento. Totalmente posible, pero no es el enfoque más inteligente hoy en día. La siguiente idea fue comprar un Arduino (una plataforma de prototipado muy común entre aficionados) y escribir algo de software.

Nos íbamos acercando: convertir un problema de hardware en un problema de software (encender y apagar dispositivos según una lógica bien definida) es precisamente cómo funcionan el 99% de los dispositivos electrónicos modernos. Elige cualquier aparato que tengas cerca (lavadora, portero automático, coche): los componentes del mundo real (válvulas de agua, micrófonos/altavoces, inyectores de combustible) están controlados por software que se ejecuta en un pequeño ordenador llamado microcontrolador. El ingrediente secreto es el software. Es práctico y barato: no hace falta rehacer el cableado cuando cambian los requisitos; solo hay que cargar un nuevo firmware.

Microcontroller

Para que conste, así es como se ve un microcontrolador. Es un chip de silicio integrado que incluye procesador, RAM, memoria flash y periféricos (temporizadores, GPIO, UART y muchos otros) en un solo encapsulado. Este tiene 8 kB de RAM y 32 kB de flash — kilobytes, no megabytes ni gigabytes — un mundo muy diferente al de tu ordenador de sobremesa, pero te sorprendería cuánta funcionalidad cabe ahí dentro. Es un dispositivo de tamaño medio; también existen variantes más pequeñas.

Cuando mi amigo me pidió que escribiera el firmware, añadió algunas peticiones. Además del pulsador principal, que hay que presionar con frecuencia para evitar que la estufa se apague, quería involucrar la puerta de la cocina: si su madre salía de la cocina con la estufa encendida, el dispositivo debía apagarla inmediatamente e iniciar un temporizador que impidiera volver a encenderla durante un tiempo. También quería LEDs para mostrar el estado del sistema y la posibilidad de ajustar los parámetros de tiempo después de la puesta en marcha, basándose en pruebas reales con su madre. Aceptamos todas las funcionalidades: desarrollarlas solo suponía unas pocas horas de trabajo (y hoy en día una IA podría generar el código aún más rápido).

Microcontroller

En ese punto podríamos haber terminado el proyecto usando piezas estándar y firmware propio. Para un cliente de pago habría sido un proyecto barato (unos pocos cientos de euros): usar hardware Arduino y componentes electrónicos sencillos. Pero entonces acordamos añadir más entradas, una segunda salida de relé y algo muy importante: aislamiento óptico para proteger al usuario final — la madre de mi amigo.

Microcontroller

Cuando controlamos tensión de red (230 V) en un dispositivo que el usuario toca (el pulsador), es importante hacerlo bien. Si un relé falla justo cuando el usuario pulsa el botón, una tensión peligrosa podría viajar por los cables, los componentes y el propio pulsador y causar daños. El aislamiento óptico resuelve esto dividiendo la electrónica en dos zonas sin conexión eléctrica directa. Ambas zonas se comunican mediante un optoacoplador, que transmite la señal como luz en lugar de corriente eléctrica. En la imagen, la parte izquierda acciona la entrada del relé (luz o ausencia de luz dentro del chip). La parte derecha es un fototransistor que conduce o no dependiendo de la luz.

Dada la complejidad añadida, decidí diseñar una placa de circuito impreso (PCB) a medida. Calculé entre 1 y 2 días de trabajo, no más que montar componentes estándar. Una PCB personalizada era la elección correcta: se ve mejor, es más fiable, reduce el mantenimiento por cables sueltos y escala bien para producción. Para diseñarla, primero dibujamos las conexiones lógicas — el esquema, que se ve a continuación.

Luego convertimos el esquema en la placa física, trazando cada pista. Usamos pistas estrechas para señales digitales y pistas más anchas para alimentación o corrientes de relé (que deben soportar varios amperios). El rojo es la capa superior de cobre y el azul la inferior. La línea blanca marca las dos zonas con aislamiento óptico. Es una PCB sencilla de dos capas, aunque las placas multicapa son habituales; los teléfonos móviles modernos suelen tener ocho capas o más. El esquema es pura ingeniería; el diseño de la placa también tiene algo de arte. Dos placas pueden tener la misma funcionalidad, pero solo una hará que los clientes digan “wow, qué belleza”, incluso si nunca han visto una PCB antes.

En aquel entonces envié los archivos de diseño a un fabricante local de PCBs y compré los componentes en dos tiendas distintas. Hoy en día normalmente pedimos las placas ya montadas a China. Tras soldar los componentes, dediqué un día a desarrollar y probar el firmware. Hoy sería casi todo trabajo de IA: unos minutos para escribir el prompt, algo de espera y un par de horas de pruebas. ¡Mira qué bien quedó la PCB!

Si el cliente no hubiera sido mi amigo, habría cobrado alrededor de 1.000 EUR (en su lugar acepté sus servicios). Podrías decir que 1.000 EUR es mucho dinero para un dispositivo sencillo, y que nuestros amigos en China podrían producirlo por 8,50 €. Si puedes comprar un producto que cubra tus necesidades, adelante. El hardware a medida está justificado cuando no puedes comprar exactamente lo que necesitas. Las grandes fábricas apuntan a millones de unidades, así que su coste de desarrollo por unidad es mucho menor que 1.000 EUR.

Para cerrar la historia, viene la parte triste. Alrededor del 20% de los proyectos de TI se entregan pero nunca se utilizan, y este fue uno de ellos. Seis meses después de la entrega, mi amigo me dijo que aún no lo había instalado. Podrías culpar a los clientes que no saben lo que necesitan, pero incluso profesionales experimentados de TI pueden cometer este error. A mí también me ha pasado — pero esa es otra historia.