domingo, 6 de junio de 2021

Fabricación de PCB con CNC

 Se recuerda que este Blog esta realizado con fines educativos y, a medida que vaya creciendo, se explicará con más detalle los pasos realizados por medio de guías dedicadas, actualizaciones y nuevas entradas.

Todos programas realizados pueden ser descargados y compartidos con referencia al autor.

Objetivo:

Mostrar como poder fabricar una PCB utilizando una CNC “LPKF ProtoMat S62”.

Programas utilizados:

- Python3 (Enlace de descarga)
- Proteus 8.9 Proffesional
- CircuitCAM 6.0
- BoardMaster 5.1.214

Guía de fabricación de la PCB:

Para la fabricación de una PCB utilizando la CNC “LPKF ProtoMat S62” mostrada en la Figura 1 se deben seguir los siguientes pasos mostrados en esta entrada. Se debe tener comunicación entre la CNC y el ordenador empleado por USB a puerto serie a partir del paso 2 de este apartado.


Figura 1: “LPKF ProtoMat S62”

Paso 1: Generar los archivos Gerber y Excellon

Generar los archivos Gerber y Excellon con Proteus; estos son documentos con la información CADCAM que se emplearán para generar el programa de fabricación. Para extraerlos, se debe haber llegado al punto de tener la PCB ya diseñada como las descargas de los diseños de este blog.

Una vez llegado a este punto, se seleccionará la generación de archivos Gerber y Excellon en Proteus como se muestra en la Figura 2 remarcado en rojo.


Figura 2: "Ubicación del menú de generar Gerber/Excellon"


Si no hay errores grabes en la configuración de la PCB (pistas mal conectadas o errores en la net), se continúa escogiendo las siguientes capas y rellenado la información remarcada en rojo en la Figura 3.


Figura 3: "Selección de capas"


En primer lugar, se selecciona el nombre el archivo y la ruta donde almacenar el archivo en el ordenador. Se escoge, además que la salida sea en forma de un archivo comprimido en ZIP.
Las zonas remarcadas en rojo, son las capas que exportaremos para la fabricación, esta selección representa la cara Top, Bottom, el borde, los taladros a realizar y la capa “Mech 1”, la cual se configura en “Layers” como se muestra a la izquierda de la Figura anterior.
Por último, antes de pulsar “Ok” se debe escoger el formato Gerber X2; remarcado en azul, para ahorrar posibles problemas más adelante con el software CircuitCAM 6.0.

Paso 2: Configurar la fabricación con CircuitCAM

El archivo comprimido obtenidos se llevan hasta el ordenador conectado a la CNC donde se encuentran los programas mostrados en la Figura 4, CircuitCAM 6.0 y BoardMaster 5.1.214. Una vez allí, se descomprime su información.


Figura 4: “CircuitCAM 6.0 y BoardMaster 5.1.214”

Ejecutando el programa CircuitCAM, se seguirán las siguientes indicaciones:

Figura 5: Selección de capas, se seleccionan los 4 archivos “.GBR” remarcados.


Figura 5: “Selección de capas”

Figura 6: Asignación de capas. Se asigna a cada capa la
correspondiente para la fabricación


Figura 6: "Asignación de capas"

Figura 7: Corte de contorno. Se ajusta el corte de contorno a 0,2 mm para poder así una vez halla sido fabricada la PCB, se pueda galletear.


Figura 7: "Corte de contorno"

Figura 8: Ajustes de aislamiento. Se accede al menú de aislamiento. Es recomendable guardar el proceso en todo momento ya que, el programa es muy susceptible a los bugs o fallos de programación.


Figura 8: "Menú de ajustes de aislamiento"

Figura 9: Establecer ajustes de aislamiento de caras. Se
aísla toda la imagen diseñada en el Layout a 2 mm de distancia. Se debe configurar y ejecutar tanto en la cara top como la cara Bottom.


Figura 9: "Establecer ajustes de aislamiento de caras"

Figura 10: Aspecto final del proceso de configuración. Este será el archivo que se exportará a BoardMaster 5.1.214 una vez este ya esté abierto. Para ello, solo se debe seleccionar el botón del menú izquierdo con el mismo icono que el programa.


Figura 10: "Aspecto final con CIRCUITCAM"

Paso 3: Fabricación de la PCB con BoardMaster.

Se comprueba que se haya exportado correctamente la información y se situará la pieza usando el botón de desplazar remarcado en azul hacia una zona de cobre libre. Después, con la máquina en “Parking” (zona amarilla) se ajustan las herramientas que solicita la fabricación de la pieza activando el botón remarcado en rojo en la Figura 11.


Figura 11: "Comprobación de la exportación del archivo"

Figura 12: "Selección de las herramientas"

En la Figura 12 anterior, se puede ver como la asignación de las herramientas de la zona remarcada en rojo se configura en la zona remarcada en azul.
Estas herramientas, corresponden a las mostradas en la Figura 13 que por orden son:
- Universal Cutter 0,2 mm: Herramienta (fresa) que realizará el corte del cobre para formar el circuito impreso.
- End mil 1 mm: Herramienta (fresa) que realiza el desbaste y corte de las zonas de contorno, es más grueso el corte y, por lo tanto, más rápido, pero menos preciso. La combinación de ambas herramientas con la configuración realizada; combinarán ambas características, haciendo un corte más rápido y preciso.
- Broca 1 mm: Herramienta (Broca) usada para realizar los taladros o agujeros. Esta se emplea en sustitución de la broca de 0,8 configurada y siguiente mostrada en la figura.
- Contour Router 2 mm: Herramienta (fresa) usada para realizar el corte exterior de la PCB y separarla de la placa a falta de galletear.
- Contour Router 1 mm: Herramienta (fresa) usada para realizar los agujeros de M3 configurados en el Layout


Figura 13: "Herramientas de fabricación"

Estas herramientas se colocan ordenadamente sobre el portaherramientas según la configuración escogida. Ya habiendo situado la pieza en el programa en una zona de cobre limpio preparado se puede comenzar la fabricación. En la Figura 14 se distingue:
- Zona roja: Portaherramientas
- Zona verde: Zona de cobre limpio (la de mecanizado)
- Zona amarilla: Agujeros fiduciales para el volteo de la placa controlado.


Figura 14: “Configuración para la mecanización”

Se puede ver que en el portaherramientas no se ha colocado la “Universal Cutter 0,2 mm marking” ya que no se empleará en esta fabricación. Esta sirve para marcar las zonas de taladrado con más precisión la cual, no necesitamos.

Una vez realizado este paso, se baja la tapa de la CNC y se comienza la fabricación realizando el taladrado seleccionando previamente la secuencia mostrada en la Figura 15:
- Seleccionar capa “DrillingPlated” en la zona remarcada en rojo.
- Seleccionar todos “All +” en la zona remarcada en azul.
- Seleccionar “START” situado a la derecha del botón anterior.


Figura 15: "Fabricación de los agujeros"

Esta secuencia comienza usando las brocas de 1 mm para realizar los agujeros más finos mostrados en la Figura 16 y después, con la Contour Router 1 mm, realizará los agujeros más gruesos.


Figura 16: "Proceso de fabricación, taladrado"

El siguiente paso, es realizar el corte de la cara Bottom, para ello, lo primero que hay que realizar, es un ajuste de la altura del cabezal a la máquina. Para ello, se escoge la capa “MillingBottom” al igual que el paso anterior se seleccionó “DrillingPlated” y se escoge una sola pista. Para esto, se usa el botón “seleccionar” y se escoge un solo segmento. Tras la selección, se pulsa el botón “+” y se comienza a mecanizar.
Esta comprobación es necesaria para que se tenga un corte igual al programado. En la Figura 17 se muestra la distinción de la profundidad de corte antes y después de la calibración.
La calibración se realiza en esta ocasión subiendo el cabezal para obtener un corte más fino, para ello, solo se debe girar la ruleta hacia la derecha con la serigrafía “subir”.

Figura 17: “Calibración de la CNC”

Una vez comprobado el correcto corte, se seleccionan todas las pistas con “All +” y se comienza el mecanizado con “START”. Se muestra en la Figura 18 el resultado tras la mecanización de la cara Bottom.


Figura 18: "Proceso de fabricación, cara Bottom"

El próximo paso, es realizar el corte de la cara Top, para ello, lo primero que hay que realizar, llevar a la máchina al “Parking” y dar la vuelta a la placa sobre los fiduciales. Para el mecanizado de esta capa, se cierra la tapa de la CNC, se escoge la capa “MillingTop”, “All +” y se comienza el mecanizado con “START”. Se muestra en la Figura 19 el resultado tras la mecanización de la cara Top.


Figura 19: "Proceso de fabricación, cara Bottom"

El último paso para el mecanizado de la PCB usando la CNC, es hacer la última capa; “CuttingOutside”. De forma análoga a los pasos previos, se escoge la capa “CuttingOutside”, “All +” y se comienza el mecanizado con “START”. Se muestra en la Figura 20 el resultado final de la mecanización con la CNC.


Figura 20: "Proceso de fabricación, borde"

Después de realizar cualquier trabajo que haya podido manchar la zona de trabajo, se recuerda con la Figura 21 que se debe limpiar y desinfectar.


Figura 21: "Limpieza y desinfección de la zona de trabajo"

Paso 4: Montaje de la PCB

Una vez se ha finalizado la mecanización con la CNC de la PCB, se debe realizar el montaje; para ello, se seguirán los siguientes pasos:

1: Lijado de los bordes de la placa

Una lija fina se pasará por los cantos evitando cualquier superficie punzante. Se debe tener cuidado en la manipulación de la placa, el tocarla con los dedos, ya que nuestro acido de nuestras manos, fomentará el deterioro por corrosión de las zonas tocada (puede evitarse utilizando guantes).

2: Limpieza de la placa

Se debe limpiar la placa con una goma para cobre. El movimiento debe realizarse con suavidad y a poder ser, en la misma dirección. Recuerda quitar los restos de goma del interior de las cavidades.
Se muestra en la Figura 22 los elementos utilizados en los pasos 1 y 2 en conjunto con los conectores a soldar más adelante empleados también, para la limpieza de las cavidades.


Figura 22: "Elementos utilizados para la limpieza de la PCB"

3: Capa de imprimación aislante

Utilizando un spay aislante para circuitos electrónicos, como el mostrado en la Figura 23 se recubre ambas caras de la PCB para evitar su futuro deterioro. Esta capa de debe dejar secar durante unas horas o minutos dependiendo el ambiente. Una forma de acelerar el proceso, es el uso de un secador de pelo, sin mucha potencia para no calentar la placa y fomentar las reacciones químicas.


Figura 23: "Spay aislante"

4: Soldar los componentes

Una vez ha secado, solo falta soldar los componentes comenzando por las resistencias SMD y continuando por el resto de componentes “Thru hole” o pasantes. Se puede observar en las Figuras 24 y 25 el resultado final de la PCB tras la soldadura de los componentes de la cara Bottom y Top respectivamente.


Figura 24: "PCB Cara Bottom"


Figura 25: "PCB Cara Top"



Ultima revisión 06/06/2021

sábado, 29 de mayo de 2021

Enviar correos con archivos adjuntos con python3

Se recuerda que este Blog esta realizado con fines educativos y, a medida que vaya creciendo, se explicará con más detalle los pasos realizados por medio de guías dedicadas, actualizaciones y nuevas entradas.

Todos programas realizados pueden ser descargados y compartidos con referencia al autor.

Pincha AQUÍ para descargar todos los programas de esta entrada.

Objetivo:

Mostrar como poder enviar un email con archivos adjuntos utilizando python3. 

Programas utilizados:

- Python3 (Enlace de descarga)

Principio de funcionamiento:

La utilidad de este programa es muy elevada, ya que actualmente ya esta siendo integrada en varios sistemas automatizados de visión artificial enviando archivos adjuntos con las imágenes captadas. Para poder utilizarlo, se deben configurar las siguientes líneas:
  • Línea 8: coloque la dirección del remitente.
  • Línea 9: coloque la dirección de los destinatarios o destinatario en la lista.
  • Línea 10: Escriba el asunto del email
  • Línea 11: Escriba el cuerpo del mensaje, recuerda que aquí podrás introducir todo el contenido escrito del email.
  • Línea 12: coloque la ruta del archivo adjunto.
  • Línea 13: Nombre asignado al archivo adjunto, no con el que se ha guardado aunque puede poner el mismo.
  • Línea 47: coloque su email y su contraseña.
Recuerda si utiliza este programa, modificar la contraseña antes de enviárselo a otro usuario; proteja su información confidencial.


Figura 1: "Mantenga la seguridad en sus programas"

Para poder enviar email desde Gmail, antes deberá activar el acceso a aplicaciones poco seguras por medio del enlace mostrado a continuación. 
Usa con criterio este programa para evitar hacer spam, Gmail lo detectará.

Active el acceso a aplicaciones poco seguras pinchando AQUÍ

Ultima revisión 30/05/2021

Algoritmo de la división

Se recuerda que este Blog esta realizado con fines educativos y, a medida que vaya creciendo, se explicará con más detalle los pasos realizados por medio de guías dedicadas, actualizaciones y nuevas entradas.

Todos programas realizados pueden ser descargados y compartidos con referencia al autor.

Pincha AQUÍ para descargar todos los programas de esta entrada.

Objetivo:

Mostrar como poder realizar divisiones utilizando Python3 y Arduino IDE empleando únicamente sumas y restas.

Programas utilizados:

- Arduino IDE 1.8.12 (Enlace de descarga)
- Python3 (Enlace de descarga)

Principio de funcionamiento:

Como se muestra en la Figura 1, se emplea la base matemática de la división para realizar los programas en donde; se define la división entre dos números como las veces que entra el divisor en el dividendo.


Figura 1: "Fragmento del código de la división"


Tanto en el código realizado en Python3 como en Arduino IDE continúan realizando el proceso de división mas veces si el resto es distinto de 0. Únicamente se va multiplicando el resto por 10 cuando es distinto de 0 y se obtiene un nuevo decimal de la división.

Seguramente cada código realizado por cada programador será distinto y mas o menos pesado; estos ejemplos no son la mejor forma, pero cumplen con el objetivo.

Ultima modificación 29/05/2021

Detector de nivel de CO2

Se recuerda que este Blog esta realizado con fines educativos y, a medida que vaya creciendo, se explicará con más detalle los pasos realizados por medio de guías dedicadas, actualizaciones y nuevas entradas.

Todos programas realizados pueden ser descargados y compartidos con referencia al autor.

Pincha AQUÍ para descargar todos los programas de esta entrada.

Objetivo:

Desarrollo de un dispositivo de control del nivel de CO2 y registro en un aula mediante, un sensor MG811 y un ESP32 con Node-RED


Materiales necesarios:

- Sensor MG-811 CO2 sensor V1.2 (Mostrado en la Figura 1)


Figura 1: "Sensor MG-811"

- ESP32 MINI D1 (Ambas caras mostradas en la Figura 2)


Figura 2: "ESP32 MINI D1"

- Fuente de alimentación +5V DC (Mostrado en Figura 3)


Figura 3: "Fuente de alimentación +5V"

- PCB CO2 (PCB dedicada Figura 4 cara Botton y Figura 5 Cara Top)


Figura 4: "PCB CO2cara Botton"


Figura 5: "PCB CO2 cara Top"

- Módulo zumbador Arduino (Mostrado en Figura 6)

Figura 6: "Módulo zumbador Arduino"

Programas utilizados:

- Arduino IDE 1.8.12 (Enlace de descarga)
- Proteus 8 Professional 

Proceso de diseño y fabricación:

Paso 1: Programación del ESP32

Para la programación del ESP32 se empleará el entorno de programación Arduino IDE 1.8.12. Se llevarán a cabo en el las lecturas del sensor y el envió de la información a Node-RED para ser tratada. También se encargará de enviar las señales al zumbador para que se emita una señal acústica ("Escapa" en morse) y led de información de estado.

El programa "co2.ino" ha sido realizado bajo un ajuste de los datos proporcionados por el fabricante y las mediciones empíricas obtenidas.
Se muestra en la Figuras 7 la gráfica de respuesta del sensor, cabe destacar que esta señal se interpretará aumentada 8,5 veces debido a su amplificador de señal incorporado.


Figura 7: "Gráfica de respuesta del MG811"


Conocida la gráfica de respuesta, se debe obtener la ecuación de funcionamiento que más se aproxima a la mostrada previamente. Esta labor de puede realizar utilizando Excel y midiendo los pixeles de la imagen para obtener reglas de 3. La tabla Excel adjunta en las descargas de esta entrada, alberga varias pruebas de aproximación hasta encontrar la más fiel a la realidad obtenida. Se muestra en la Figura 8 el fragmento de código empleado para realizar el ajuste junto a varias alternativas más inestables.

Figura 8: "Fragmento del código empleado"

La ecuación de ajuste, responde correctamente tras las 2 horas de funcionamiento siempre y cuando no se encuentre en una zona muy aireada.


Paso 2: Fabricación de PCB CO2 (PCB dedicada)

La fabricación de la PCB CO2 consiste en el diseño de una placa de circuito impreso (PCB) a doble cara (cara Top solo para serigrafia mecanizada, cara Botton conexiones) la cual, agrupará el ESP32, el sensor MG-811, 3 tipos distintos de conexión de alimentación, 3 LEDs y un módulo de zumbador.

El esquema eléctrico, el Layout, los archivos CADCAM de fabricación y las librerías empleadas se pueden descargar AQUÍ

Se dejará para otras entradas posteriores las siguientes guías: (Esté atento)
- Guía de diseño de componentes en Proteus
- Guía de diseño de PCB en Proteus

Se muestra en la Figura 9 el esquema eléctrico realizado para la fabricación de la PCB.


Figura 9: "Esquema eléctrico"

Siguiendo este esquema, se realiza el diseño de la PCB como se muestra en la Figura 10.


Figura 10: "Layout de la PCB"

Toda la información mostrada, es obtenida del archivo Proteus adjunto a la descarga de esta entrada. Tanto en este programa como en el resto de los añadidos en este blog, tienen desarrollada las pestañas de plano esquemático, layout, costes y diseño 3D (Schematic Capture, PCB Layout, Bill of Materials y 3D Visualizer). Se muestra en la Figura 11 el coste de materiales de esta PCB.

Figura 11: "Presupuesto de la PCB"

Paso 3: Programación de Node-RED

El flujo empleado para monitorizar y registrar en una base de datos las lecturas de CO2, es complejo debido al diseño personal del sistema de base de datos empleada. Existen otros métodos para realizar una base de datos como SQL o empleando la librería csv en Python3, pero el objetivo que se pretende es estudiar la forma de crear una base de datos.

Se expone a continuación de forma breve en qué consisten los nodos más importantes de este flujo.

  • Figura 12: Se usan pulsos cada 10 segundos para registrar la hora actual en UTC y desglosar la información de forma que pueda ser mostrada en el Dashboard.
Figura 12: "Obtención de fecha"

  • Figura 13: Se muestra la información del flujo anterior en el Dashboard

Figura 13: "Fecha actual en el Dashboard"

  • Figura 14: En este flujo se realiza el muestreo y registro de los datos actuales de las publicaciones realizadas por el ESP32. Esto se logra gracias a que cada nuevo pulso de tiempo, se lee la última publicación del ESP32 de ambos canales y se unen. Después, estos datos se desfragmentan por tipo de dato y de registran en formato "csv".

Figura 14: "Flujo de registro y muestreo de datos actuales"

  • Figuras 15, 16 y 17: Flujo para el envió de e-mail en caso de alarma. Funciona tras recibir una publicación por su canal y con la programación configurada. Se debe modificar los nodos de la función y de email con el remitente y destinatario que desee.

Figura 15: "Flujo de envió de email"


Figura 16: "Configuración del nodo de función"


Figura 17: "Configuración del nodo de email"

  • Figura 18: Flujo de muestreo de la base de datos. Tras una entrada del día seleccionado en el calendario del Dashboard o por defecto en el día actúa; se actualiza la tabla tomando lecturas de los CSV almacenados y mostrándolos de forma gráfica y en una tabla de datos dinámica. 

Figura 18: "Lectura y muestreo de la base de datos"

  • Figura 19: Aspecto de la tabla de datos en el Dashboard

Figura 19: "Muestreo del registro de datos"

Si desea ver el Dashboard completo, puede descargarse el archivo "Flow_CO2.json" e importarlo a su Node-RED. Después, solo tendrá que activarlo y configurarlo como se ha explicado en esta entrada. Se muestra en las Figuras 20 y 21 el proceso de importación y activación del flujo.


Figura 20: "Importar flujos"


Figura 21: "Selección de archivo a importar"

Finalmente, si desea utilizar el Dashboard, asegúrese de activarlo en las configuraciones de edición como se muestra en la Figura 22.

Figura 22: "Activación del Dashboard"

Última revisión 30/05/2021

Fabricación de PCB con CNC

  Se recuerda que este Blog esta realizado con fines educativos y, a medida que vaya creciendo, se explicará con más detalle los pasos reali...