DÍA 277 DE 365

Fase 5: Diseño Industrial y Proyecto Final

📖 Teoría a Estudiar

Códigos Imperiales vs Disipación de Potencia

Los componentes pasivos SMD (Resistores, Capacitores) se nombran usando códigos de cuatro dígitos basados en pulgadas (Sistema Imperial). Por ejemplo, un 0805 mide 0.08 x 0.05 pulgadas (2.0 mm x 1.25 mm). Un 0402 mide 0.04 x 0.02 pulgadas (1.0 mm x 0.5 mm).

Mientras más moderno es un iPhone, más diminutos son sus componentes (0201 o incluso 01005). Los ingenieros de software adoran miniaturizar las placas porque se ven "avanzadas". Pero en la industria pesada, la miniaturización es tu enemigo por tres leyes físicas:

  1. Disipación Térmica: Un resistor 0402 solo puede disipar 1/16 de Vatio (0.0625W) antes de quemarse. Un 1206 puede disipar 1/4 de Vatio (0.25W). Si tu circuito maneja corrientes o caídas de voltaje de 24V, un 0402 se desintegrará.
  2. Tensión Mecánica (Vibration & Flex): Cuando la bomba de Gas LP arranca, toda la estructura vibra. La PCB de fibra de vidrio (FR4) se dobla a nivel microscópico. Los capacitores cerámicos grandes (1210) son frágiles como el cristal y se rajan a la mitad (Microcracking). Los excesivamente diminutos (0201) se desprenden de las pistas.
  3. Mantenibilidad Térmica (Rework): A las 3:00 AM en una estación de gas a -5°C, un técnico intentará cambiar un resistor quemado usando un cautín de mano. No podrá soldar un 0402 sin un microscopio estéreo y pinzas de titanio.

El Estándar de Oro Industrial: Utilizamos 0805 para todos los resistores pull-up, pull-down y LEDs, y bajamos a 0603 solo para capacitores de desacoplo muy cerca del microcontrolador. Reservamos el 1206 estrictamente para rutas de potencia (Shunts o divisores de 24V).

ESCALA FÍSICA Y DEFECTOS DE MANUFACTURA (SMD FOOTPRINTS) TAMAÑOS ESTÁNDAR IMPERIALES (Resistores EIA) 0402 1/16 W Demasiado frágil 103 0603 1/10 W Uso en CPU Decoupling 4K7 0805 (Metric 2012) 1/8 W (0.125W) ESTÁNDAR INDUSTRIAL R150 1206 1/4 W (0.25W) Uso en Shunts/Power Menos disipación térmica. Más difícil soldadura manual. REGLA DE DISEÑO (DFM) Para Prototipado, selecciona en KiCad los Footprints con el sufijo: _HandSolder (Hacen los Pads de cobre un 30% más largos para que quepa el cautín) EL EFECTO LÁPIDA (TOMBSTONING) Causa: Un Pad se calienta más rápido que el otro. PCB FR4 Plano de Cobre Gigante (Roba todo el calor del horno) Tensión Superficial tira hacia arriba Soldadura aún fría (Pasta) PREVENCIÓN (DFM) 1. Usar Footprints simétricos en KiCad. 2. Usar "Thermal Reliefs" (Frenos Térmicos) al conectar Pads a planos GND de cobre.

⚙️ Pasos Prácticos en KiCad

Paso 1: Asignación de Huellas (Footprint Assignment).

  1. En tu Esquemático Maestro de KiCad, en la barra superior haz clic en el icono del circuito integrado con patitas verdes: Run Footprint Assignment Tool.
  2. La ventana se divide en 3 columnas: Librerías (Izquierda), Tus Componentes (Centro) y Huellas Filtradas (Derecha).
  3. En el centro, selecciona todos tus resistores (con Shift+Click).
  4. A la izquierda, selecciona la librería Resistor_SMD.
  5. A la derecha, busca y haz doble clic en R_0805_2012Metric_HandSolder. Has asignado el chasis industrial por defecto a todas tus resistencias lógicas.

Paso 2: Excepciones de Potencia (El Shunt 4-20mA).
¿Recuerdas el resistor Shunt de 150 Ω del Día 273? Si fluyen 20mA (0.02A) por él, la potencia disipada será P = I² * R = (0.02)² * 150 = 0.06 W. Un resistor 0805 disipa máximo 0.125W. Está al 50% de su límite. En la industria operamos componentes de potencia al 25% de su límite máximo por seguridad térmica. Asigna a este componente específico la huella R_1206_3216Metric_HandSolder, que soporta 0.25W.

💻 CI/CD de Hardware (Bloquear 0402 Automáticamente)

Así como programamos un script de Python (Día 267) para auditar el archivo binario del código, podemos escribir un script en Python usando la API de KiCad (pcbnew) para correr en GitHub Actions y auditar la placa. Si algún ingeniero del equipo asigna un diminuto e inestable 0402 a la placa del Despachador de Gas LP, la nube rechazará el diseño.


#!/usr/bin/env python3
"""
@file check_footprints.py
@brief Script CI/CD (DevOps) para auditar restricciones mecánicas DFM en KiCad 8.
"""

import sys
import pcbnew # API oficial de KiCad en Python

# -----------------------------------------------------------------
# REGLAS DE NEGOCIO INDUSTRIAL (Design For Manufacturing)
# -----------------------------------------------------------------
BANNED_FOOTPRINTS = ["0201", "0402"]
ALLOWED_FOOTPRINTS = ["0603", "0805", "1206", "1210"]

def auditar_pcb(pcb_path):
    print(f"[*] Cargando placa para auditoría térmica/mecánica: {pcb_path}")
    board = pcbnew.LoadBoard(pcb_path)
    
    errores = 0
    # Iterar por cada componente (Footprint) físico en la placa
    for footprint in board.GetFootprints():
        fp_name = str(footprint.GetFPID().GetLibItemName())
        ref_des = footprint.GetReference()
        
        # Revisamos si el nombre de la huella contiene formatos prohibidos
        for banned in BANNED_FOOTPRINTS:
            if banned in fp_name:
                print(f"[X] FALLO DFM: {ref_des} utiliza un footprint prohibido ({fp_name}).")
                print(f"    Razón: {banned} no soporta vibración industrial y es inmanejable en Rework de campo.")
                errores += 1

    if errores > 0:
        print(f"\n[!] CI/CD ABORTADO. Se detectaron {errores} componentes bajo el estándar mínimo de masa térmica.")
        sys.exit(1)
    else:
        print("\n[V] AUDITORÍA DFM EXITOSA: Todos los componentes cumplen con el estándar mecánico industrial (>= 0603).")
        sys.exit(0)

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Uso: python check_footprints.py <archivo.kicad_pcb>")
        sys.exit(1)
    auditar_pcb(sys.argv[1])
        

🚀 Avance del Proyecto Tesis: Despachador de Gas LP

Objetivo del día: Diseño para la Manufacturabilidad (DFM) y Resiliencia Térmica.

Un ingeniero electrónico inexperto asume que la física dentro de su computadora aplica al mundo exterior. Asigna componentes SMD tamaño 0402 porque "caben mejor", envía los archivos Gerber a China y recibe su placa de control del Despachador de Gas LP. Todo funciona en el laboratorio. Pero tres meses después de la instalación en la gasolinera, la bomba de 5 caballos de fuerza arranca, hace vibrar la carcasa metálica, la placa PCB de fibra de vidrio se flexiona microscópicamente, y el diminuto resistor de 1 milímetro se desprende silenciosamente. La máquina muere sin explicación y el dueño pierde ventas de gas todo el fin de semana.

Al auditar activamente tus Huellas de Componentes, estableciste que **0805** es tu "Línea Base". Sacrificaste el tamaño de la placa (haciéndola ligeramente más grande) a cambio de una robustez sísmica. Tus resistores tienen la masa térmica suficiente para disipar calor, y sus Pads extendidos (HandSolder) tienen suficiente estaño anclado para absorber las tensiones mecánicas de la bomba de gas. Además, tu script de CI/CD impide estadísticamente que cualquier error de diseño frágil llegue jamás a la línea de ensamblaje (Pick & Place) de tu fábrica en Shenzhen.

📝 Resumen del Día