[3/3] Del hardware a la nube: Diseñando una PCB
En el artículo anterior , describí la prueba realizada con el sensor magnético MMC5883MA y expliqué los resultados obtenidos al medir el campo magnético con y sin la presencia de un vehículo. Sin embargo, antes de probar los demás sensores (como ya había planeado), decidí aventurarme en un reto al que todo desarrollador de hardware se enfrenta en algún momento: diseñar y producir una placa de circuito impreso (PCB) .
Las placas de pruebas son herramientas fundamentales para el prototipado de hardware. Permiten modificar y probar el diseño del circuito tantas veces como sea necesario hasta obtener la composición óptima. Sin embargo, este tipo de circuitos no están diseñados para desarrollar productos finales. Las conexiones eléctricas que proporcionan las placas de pruebas son temporales por naturaleza, lo que las hace débiles y poco fiables. Además, suelen ocupar más espacio del necesario.
Mediante el uso de PCBs, podemos implementar el diseño final de un proyecto hardware con conexiones confiables y mayor robustez, además de reducir el espacio necesario al permitir el uso de componentes más pequeños, que generalmente son de tecnología Surface-mount (SMT) .
Hoy en día, existe una gran variedad de software para el diseño de PCB . Decidí usar Eagle , uno de los más populares. El prototipo que se implementará en la PCB se basa en el circuito creado en el artículo anterior , diseñado para probar el sensor magnético MMC5883MA . Sin embargo, en esta ocasión, utilicé la SODAQ ONE en lugar del NodeMCU ESP8266 para probar fácilmente el sensor magnético LSM303AGR , actualmente integrado en esta placa.
Además, había comprado previamente un sensor infrarrojo de montaje superficial, con la IS31SE5000 , que no pude probar antes en el prototipo de placa de pruebas debido a su embalaje. Así que quise aprovechar este diseño e incluir también el circuito de aplicación típico de este sensor infrarrojo para poder probar su comportamiento y evaluar su capacidad de detección de vehículos.
En resumen, para esta etapa del proyecto, quería integrar los tres sensores mencionados en una placa de circuito impreso (PCB) sencilla y poder transmitir sus mediciones mediante LoRaWAN utilizando el RN2903 , también integrado en la placa SODAQ ONE. Además, consideré oportuno añadir una etapa de regulación de potencia para regular la tensión de entrada y proteger los componentes.
Diagrama de bloques
Cabe mencionar que la PCB está diseñada para usar un sensor a la vez. Para lograrlo, se añadió al diseño una lógica de selección de sensor, que consiste en un conector macho de una sola fila con 6 pines y dos puentes para seleccionar las entradas SCL y SDA del puerto I²C de la placa SODAQ. Además, se añadió un interruptor DIP para deshabilitar la alimentación del sensor no utilizado y así reducir el consumo. El diagrama de bloques que describe la composición del circuito se muestra a continuación.
La etapa de regulación de potencia se basa en el regulador de voltaje LM317T . El circuito se construyó con la ayuda de la hoja de datos del LM317 y se configuró para suministrar 3,3 V, el voltaje necesario para el SODAQ y los sensores.
Águila
Eagle es un software de automatización de diseño electrónico (EDA), desarrollado por Autodesk, que proporciona herramientas útiles e intuitivas para diseñar PCB. Además, cuenta con una amplia comunidad mundial, lo que facilita la búsqueda de documentación y ejemplos, así como la resolución de preguntas frecuentes.
Un diseño en Eagle se divide en dos partes principales: el esquema y el diseño de la PCB. El esquema es la parte donde se seleccionan los componentes del circuito y se establecen las conexiones entre ellos. El diseño de la PCB se refiere a la distribución y ubicación física de los componentes.
Antes de explicar cómo se realizó el esquema y el layout del PCB para mi proyecto, es necesario explicar uno de los conceptos más importantes en el diseño de Eagle: las librerías.
Bibliotecas
Una biblioteca es la representación completa de un componente electrónico en Eagle. Contiene toda su información, desde los nombres de los pines hasta las medidas físicas. Si desea utilizar un componente en un proyecto de Eagle, es obligatorio tener la biblioteca correspondiente. Por defecto, Eagle incluye una gran cantidad de bibliotecas de los componentes más comunes en circuitos. Sin embargo, en algún momento, podría necesitar un componente que no esté incluido. En este caso, tiene dos opciones: buscar la biblioteca del componente (hay una gran variedad en internet gracias a la comunidad de Eagle) o crearla usted mismo.
En mi caso, necesitaba usar tres componentes específicos que no estaban incluidos en las bibliotecas de Eagle: los dos sensores y la placa SODAQ ONE. Como mi investigación no dio resultados, decidí crearlos yo mismo. Para crear una biblioteca, solo tienes que ir al Panel de Control de Eagle y hacer clic en el menú " Archivo ", luego en " Nuevo " y luego en " Biblioteca ".
Se abrirá una nueva ventana. Allí encontrará cuatro espacios: Dispositivo, Huella, Paquete 3D y Símbolo. El primer paso es crear un " Símbolo ", es decir, el diagrama simbólico que representará el dispositivo en el esquema. Para ello, haga clic en el botón " Añadir Símbolo... " o en el icono superior marcado con un " 1 " en la imagen de abajo.
Después, es necesario crear una " Huella ", que corresponde a la representación física del dispositivo y debe tener las dimensiones precisas del componente, así como la distribución correcta de los pines. Esto se puede hacer haciendo clic en el botón " Añadir Huella... " en la parte inferior, o en el icono " 2 " en la parte superior de la imagen.
El último paso es agregar un " Dispositivo ". Este elemento es una fusión entre el Símbolo y la Huella, donde se debe especificar qué partes del Símbolo corresponden a cada parte física del dispositivo. Para ello, haga clic en el botón " Agregar Dispositivo... " o en el icono superior marcado con un " 3 ".
La vista previa de los resultados se muestra en el panel derecho de la ventana. En mi caso, como la placa SODAQ tenía conectores macho en sus pines para facilitar su instalación en una placa de pruebas, la creación de la biblioteca para el SODAQ ONE fue muy sencilla, ya que solo necesité añadir dos conectores hembra de 12 pines cada uno (quería que la placa SODAQ fuera extraíble). Algo similar ocurrió con el sensor magnético, ya que compré la placa de evaluación MMC5883MA-B, que también tiene conectores macho.
Sin embargo, desarrollar la biblioteca para el sensor infrarrojo me resultó muy difícil, ya que nunca había trabajado con componentes de superficie. Es un componente muy pequeño y necesitaba ser extremadamente preciso con los tamaños y las distancias.
Después de unas horas de trabajo, estas fueron las librerías resultantes:
- SODAQ UNO:
- Sensor magnético (placa de evaluación) MMC5883MA-B:
- Sensor infrarrojo IS31SE5000:
Es importante tener en cuenta que las bibliotecas creadas por el usuario se pueden encontrar en el menú Bibliotecas/bibliotecas del panel izquierdo del Panel de Control de Eagle.
Esquemático
Una vez listas todas las bibliotecas necesarias, es hora de integrar los componentes en un esquema. Para crear un nuevo esquema, vaya al Panel de Control de Eagle y haga clic en el menú " Archivo ", luego en " Nuevo " y finalmente en " Esquema ".
En la ventana del esquema, para agregar un componente, vaya a la barra de herramientas (generalmente a la izquierda) y utilice la herramienta " Agregar pieza " haciendo clic en el icono " 1 " en la imagen a continuación. Para conectar los pines de los componentes, utilice la herramienta " Red " haciendo clic en el icono " 2 ".
Luego de agregar todos los componentes de mi diseño y realizar las conexiones respectivas, este fue el resultado:
tarjeta de circuito impreso
Tras completar el esquema, el siguiente paso es crear una nueva " Placa ". Para ello, haga clic en el icono " Generar/cambiar a placa " en la parte superior de la ventana del esquema (marcado con un cuadrado rojo en la imagen inferior).
Se abrirá una nueva ventana donde encontrará todos los componentes utilizados en el esquema, con pequeñas líneas que los unen y representan las conexiones realizadas. También encontrará un espacio en blanco que representa la placa física de la PCB. Todos los componentes deben organizarse y distribuirse de la mejor manera posible en este espacio. Después, las pequeñas líneas deben convertirse en rutas, que representan las conexiones físicas entre los componentes de la PCB. Para enrutar el circuito, utilice la herramienta " Enrutar Airwire ", ubicada en el panel izquierdo.
Es importante mencionar que el enrutamiento puede realizarse en una o varias capas. Además, hay muchos parámetros que deben tenerse en cuenta durante esta etapa del diseño de la PCB. Algunos de ellos son: el grosor de las rutas, la distancia mínima entre componentes, la distancia mínima entre rutas consecutivas, el ancho de los agujeros, etc. Todos estos parámetros de diseño deben ser compatibles con el fabricante de la PCB que elija. Por último, pero no menos importante, debe tener mucho cuidado con la capa que utiliza.
Tras unas horas más de trabajo, logré mi objetivo de enrutar todos mis componentes en una sola capa. Como estaba trabajando con un componente superficial, tuve que colocarlo en la misma capa de las rutas. Este fue el resultado:
Archivos Gerber
El último paso para producir una PCB es enviar el diseño para su fabricación. Aunque también es posible imprimir el circuito uno mismo, en este caso quise hacerlo de forma más profesional, así que busqué fabricantes locales. Para poder enviar el diseño, es necesario generar los archivos Gerber del circuito. Para aprender a hacerlo, seguí este tutorial. Tras exportar los archivos correspondientes, se los envié al fabricante.
Unos días después recibí seis copias de mi PCB. Debo admitir que me emocioné mucho al ver que lo que había creado cobraba vida poco a poco. Sinceramente, estos avances son los que más te motivan al emprender un proyecto de hardware desde cero.
Estaba ansioso por comprobar si mi diseño era correcto y si el circuito funcionaría. Así que, sin más dilación, comencé a soldar todos los componentes. Desafortunadamente, cuando estaba a punto de soldar el sensor infrarrojo (la parte más difícil), me di cuenta de que había cometido un error con la huella: los pines estaban invertidos. Me preocupaba mi error, pero sabía que esta primera experiencia con componentes superficiales me sería muy útil en futuros diseños. Así se veía la PCB cuando terminé de soldar los componentes:
Finalmente, estaba listo para probar el resto del circuito. Así que añadí una batería y encendí mi gateway . Tras unos segundos, ¡estaba recibiendo datos de las mediciones del campo magnético en mi cuenta Ubidots ! Esto significaba que el comportamiento de la PCB era el esperado.
El diseño de PCB es un mundo amplio donde las técnicas, el software y las herramientas mejoran cada día. En este artículo, intenté describir el proceso básico para llevar tu circuito del prototipo a la PCB, pero aún queda mucho por explorar. Espero que mi experiencia sirva de guía para quienes empiezan. Sin embargo, lo más importante es no rendirse ante el primer error y no dejar de explorar y mejorar tus habilidades para producir circuitos cada vez mejores.
¡Mantente atento a las próximas publicaciones para conocer el resto del proceso!