[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 midiendo el campo magnético con y sin presencia de vehículo. Sin embargo, antes de probar los otros sensores (como había planeado antes), decidí aventurarme en un desafío que todo desarrollador de hardware debe enfrentar en algún momento: diseñar y producir una Placa de Circuito Impreso (PCB) .

Las protoboards son herramientas fundamentales para la creación de prototipos de hardware. Nos permiten cambiar y probar el diseño del circuito tantas veces como sea necesario, hasta tener la mejor composición. A pesar de ello, este tipo de circuitos no están destinados al desarrollo de productos finales. Las conexiones eléctricas proporcionadas por las placas de pruebas son temporales por naturaleza, lo que significa que son débiles y poco confiables. Además, suelen ocupar más espacio del que realmente necesitan.

Mediante el uso de PCB podemos implementar el diseño final de un proyecto de 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 creado para el diseño de PCB . Decidí usar Eagle , que es uno de los más populares. El prototipo a implementar en la PCB está basado en el circuito construido en el artículo anterior , diseñado para probar el sensor magnético MMC5883MA . Sin embargo, en esta oportunidad utilicé la SODAQ ONE en lugar del NodeMCU ESP8266 , con el objetivo de probar fácilmente el sensor magnético LSM303AGR , actualmente integrado en esta placa.

Además, anteriormente había comprado un sensor de infrarrojos de superficie, con la IS31SE5000 , que no pude probar antes en el prototipo de placa debido a su embalaje. Por eso quise aprovechar este diseño e incluir también el circuito de aplicación típico de este sensor de infrarrojos, 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 PCB simple y poder transmitir sus medidas a través de LoRaWAN utilizando el RN2903 , también integrado en la placa SODAQ ONE. Además, encontré apropiado agregar una etapa de regulación de potencia para regular el voltaje de entrada y proteger los componentes.

Diagrama de bloques

Vale la pena mencionar que la PCB está diseñada para utilizar un sensor a la vez. Para lograr esto, se agrega al diseño una “lógica de selección de sensor”, que consta de un cabezal macho de una sola fila con 6 pines y dos jumpers, para seleccionar las entradas SCL y SDA para el puerto I2C de la placa SODAQ. Además, se agregó un interruptor DIP para desactivar la energía del sensor no utilizado, con el fin de consumir menos energía. A continuación se muestra el diagrama de bloques que describe la composición del circuito.

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 entregar 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 enorme comunidad a nivel mundial, lo que implica que podrás encontrar documentación y ejemplos fácilmente, así como preguntas resueltas.

Un diseño en Eagle se puede dividir en dos partes principales: esquemático y diseño de PCB. El esquema es la parte donde se seleccionan los componentes del circuito y se realizan las conexiones entre ellos. El diseño de 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 diseño de PCB de mi proyecto, es necesario explicar uno de los conceptos más importantes en el diseño Eagle: las bibliotecas.

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 Eagle, es obligatorio tener la biblioteca para ese componente. Por defecto, Eagle incluye una gran cantidad de bibliotecas de los componentes más comunes utilizados en los circuitos. Sin embargo, en algún momento, es posible que necesites un componente que no esté incluido. En este caso hay dos opciones: buscar la biblioteca del componente (hay una gran variedad en internet gracias a la comunidad de Eagle) o crearla tú mismo.

En mi caso necesitaba utilizar tres componentes específicos que no estaban incluidos en las bibliotecas de Eagle: los dos sensores y la placa SODAQ ONE. Como hice algunas investigaciones sin éxito, decidí crearlas yo mismo. Para crear una biblioteca, sólo necesitas ir al Panel de Control de Eagle y hacer clic en el menú “ Archivo ”, seguido de “ Nuevo ” y luego “ Biblioteca ”.

Se abrirá una nueva ventana. Allí encontrará cuatro espacios denominados 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, haz clic en el botón " Añadir Símbolo... ", o en el icono de la parte superior marcado con el " 1 " en la imagen de abajo.

Después de eso, es necesario crear una " Huella ", que corresponde a la representación del dispositivo físico, y debe tener las dimensiones precisas del componente así como la correcta distribución de los pines. Esto se puede hacer haciendo clic en el botón " Agregar huella... " en la parte inferior, o en el icono en la parte superior marcado como " 2 " en la imagen a continuación.

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 qué parte física del dispositivo. Para ello, haga clic en el botón " Agregar dispositivo... " o haciendo clic en el icono de la parte superior marcado con el " 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 cabezales macho en sus pines para poder colocarlos fácilmente en una protoboard, la creación de la biblioteca para la SODAQ ONE fue muy sencilla porque solo necesitaba agregar dos cabezales hembra de 12 pines cada uno ( Quería que la placa SODAQ fuera removible). Algo similar pasó con el sensor magnético, ya que compré la placa de evaluación MMC5883MA-B, que también tiene cabezales macho.

Sin embargo, el desarrollo de la biblioteca para el sensor de infrarrojos me resultó muy difícil porque nunca había trabajado con componentes de superficie. Es un componente muy pequeño y necesitaba ser extremadamente preciso con los tamaños y distancias.

Tras unas horas de trabajo, estas fueron las bibliotecas resultantes:

  • SODAQ UNO:
  • Sensor magnético (placa de evaluación) MMC5883MA-B:

  • Sensor infrarrojo IS31SE5000:

Es importante señalar 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

Después de tener 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 después en " Esquema ".

En la ventana del esquema, para agregar un componente, vaya a la barra de herramientas (generalmente a la izquierda), use la herramienta " Agregar pieza " haciendo clic en el icono marcado como " 1 " en la imagen de abajo. Para realizar las conexiones entre los pines de los componentes, utilice la herramienta " Net " haciendo clic en el icono marcado como " 2 ".

Luego de agregar todos los componentes de mi diseño y realizar las respectivas conexiones, este fue el resultado:

tarjeta de circuito impreso

Después de haber terminado el esquema, el siguiente paso es crear un nuevo " Tablero ". Para hacer esto, haga clic en el ícono " Generar/cambiar a tablero " en la parte superior de la ventana del esquema (marcado con el cuadrado rojo en la imagen de abajo).

Esto abrirá una nueva ventana, donde encontrará todos los componentes utilizados en el esquema, con pequeñas líneas uniéndolas que representan las conexiones realizadas en el esquema. Además, encontrará un espacio en blanco que representa la placa física de la PCB. Todos los componentes deben estar organizados y distribuidos lo mejor posible en este espacio en blanco. Luego, las pequeñas líneas deben convertirse en rutas, que son las conexiones físicas entre los componentes del PCB. Para enrutar el circuito es necesario utilizar la herramienta " Route Airwire ", que se encuentra en el panel izquierdo.

Es importante mencionar que el enrutamiento se puede realizar en una o varias capas. Además, hay muchos parámetros que deben tenerse en cuenta cuando se encuentra en esta etapa del diseño de PCB. Algunos de ellos son: el espesor 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 soportados por el fabricante de PCB que elijas. Por último, pero no menos importante, debes tener mucho cuidado con la capa que estás utilizando.

Después de unas horas de más trabajo, logré mi objetivo de enrutar todos mis componentes en una sola capa. Como estaba trabajando con un componente superficial, tuve que ponerlo 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 a fabricar. Aunque también es posible imprimir el circuito tú mismo, en este caso quería hacerlo de forma más profesional, así que busqué fabricantes locales. Para poder enviar tu diseño necesitas generar los archivos Gerber de tu circuito. Para aprender a hacerlo, seguí este tutorial. Después de haber exportado los archivos correspondientes, los envié al fabricante.

Unos días después recibí seis copias de mi PCB. Debo admitir que me emocionó mucho ver que lo que creé iba cobrando vida poco a poco. Sinceramente, estos avances son los que más te podrían motivar a la hora de realizar un proyecto de hardware desde cero.

Estaba ansioso por demostrar si mi diseño era correcto y si el circuito funcionaría o no. Entonces, sin más demoras, comencé a soldar todos los componentes. Desafortunadamente, cuando estaba a punto de soldar el sensor de infrarrojos (la parte más difícil), me di cuenta de que había cometido un error con el Footprint: los pines estaban invertidos. Estaba preocupado por mi error pero sabía que esta primera experiencia con componentes repujados me ayudaría mucho en futuros diseños. Así quedó el PCB cuando terminé de soldar los componentes:

Finalmente estaba listo para probar el resto del circuito. Entonces agregué una batería y encendí mi gateway . ¡Después de unos segundos, estaba recibiendo datos de las mediciones del campo magnético en mi cuenta Ubidots ! Esto significó que el comportamiento de la PCB fue el esperado.

El diseño de PCB es un mundo amplio donde las técnicas, el software y las herramientas se mejoran cada día. En este artículo, intenté describir el proceso básico para llevar su circuito desde el prototipo a la PCB, pero aún queda un largo camino por explorar. Espero que mi experiencia pueda convertirse en una guía para quienes están comenzando. Sin embargo, lo más importante es no rendirse ante el primer error y no dejar de explorar y mejorar tus habilidades para producir cada vez mejores circuitos.

¡Estate atento a las próximas publicaciones para conocer el resto del proceso!