Pruebas de prototipo - dfigueroa11/bibliotecas_autoprestamo_UNAL GitHub Wiki

Pruebas Físicas

Un producto electrónico, en su etapa de prototipado, debe pasar por una serie de pruebas que demuestren su correcto funcionamiento. Estas pruebas funcionales comprenden una gran gama de revisiones, desde la comprobación de señales hasta la de corto circuitos.

Dentro de la industria puede ser necesario realizar cambios al propio diseño para realizar las comprobaciones requeridas; esto implica acoplar o añadir secciones o módulos de prueba, despejar áreas de los elementos, entre otras acciones.

¿Cuáles son las pruebas funcionales?

El objetivo de estas pruebas es el de conocer o identificar el estado del pcb, así como los efectos que puedan llegar a afectar la funcionalidad del mismo, como por ejemplo defectos en la manufactura, partes defectuosas o cortocircuitos en las redes. Algunos de estos desperfectos pueden generar:

  • Problemas de integridad de energía: Fluctuación de voltajes, existencia de ruido de baja frecuencia, entre otros efectos.
  • Distorsión de señales: Existencia de grandes distorsiones en varias redes, sesgo en señales o comportamientos anómalos.
  • Voltaje o corrientes incorrectos: Si se emplean elementos incorrectos o en mal estado, se pueden producir tensiones o corrientes destructivas para el dispositivo.

Existen entonces distintos tipos de pruebas disponibles para las comprobaciones dentro de las PCB, algunas de estas son:

In-Circuit Testing

El testeo interno del circuito, o por sus siglas en inglés ICT, es el tipo de prueba más robusto disponible. También es conocido como bed-of-nails test (prueba de cama de agujas). En este, una serie de brazos robóticos colocados para simular el diseño de la PCB, energiza y comprueba alimentando distintas secciones de la placa, que corresponden a distintos circuitos de la misma. El proceso ayuda a verificar la integridad de las soldaduras, mientras que la "cama de clavos" empuja a la cama de sondas para iniciar el test.

Para esta prueba puede ser necesaria la implementación de puntos de acceso prediseñados que permitan a las sondas de la ICT hacer las conexiones del circuito. Esta prueba tiene ventajas en cuanto a que puede tener una cobertura superior al 90% de la placa, siendo que cerca del 85% de la prueba está libre de error humano. Todo ello a expensas del alto precio que posee la prueba. A continuación se presenta una imagen de como luce esta prueba:

Esta prueba generalmente es empleada para productos que se encuentran en una fase "madura" de su desarrollo, por lo que se espera que no sean necesarias nuevas revisiones, o que estas no impliquen un cambio muy significativo en la placa.

Prueba de sondas volantes

La FLying probe Test es una prueba menos costosa que la ya mencionada ICT, salvo que la cantidad de revisiones o comprobaciones que puede realizar es menor dado que esta es no energizada. Algunos de los puntos que esta puede revisar son:

  • Abiertos
  • Corto
  • Resistencia
  • Capacitancia
  • Inductancia
  • Problemas de diodo

Esta prueba funciona mediante una serie de agujas agarradas a una sonda con movilidad en los ejes x-y, que son situadas con el fin de que coincidan con el archivo CAD. Para ciertas aplicaciones, resulta más conveniente y efectivo en temas de costo, únicamente emplear esta prueba en lugar de la ICT, considerando los gastos y la cantidad de precisión requerida en la prueba.

Inspección óptica automática

AOI por sus siglas en inglés para Automated optical inspection, emplea cámaras bien sea en 2D o 3D para realizar una inspección a través de fotos de la PCB. El programa que controla la prueba se encarga de hacer una comparación detallada entre las imágenes capturadas, y un esquemático computarizado detallado.

Este método de prueba puede ser útil para una inspección temprEana de problemas dentro de la placa, sin embargo no ofrece una cobertura completa de los funcionamientos de la placa dado que esta no es energizada durante la prueba. A pesar de la facilidad de la AOI, esta no debe ser empleada como única prueba de rectificación de funcionamiento, sino que se sugiere que sea empleada en combo como:

  • AOI y sonda flotante
  • AOI e ICT

Prueba de quemado (Burn-in test)

Este tipo de prueba es de las más exigentes dentro de la gama de comprobaciones a las que se puede someter una PCB, y generalmente resulta en la destrucción del prototipo. El fin de esta prueba es determinar los límites máximos de funcionamiento de la placa, así como la capacidad de carga con el fin de detectar fallas tempranas.

El Burn-in test consiste en mantener energizada la placa en sus máximos limites de funcionamiento durante un periodo de 48 a 168 horas. Si la placa falla, se conoce como "fallo temprano" y especialmente problemático en aplicaciones militares o médicas.

Inspección de Rayos X

Más que una prueba, este método se emplea como herramienta de inspección en la cual un técnico de rayos x se encarga de revisar la placa para localizar defectos dentro de:

  • Conexiones soldadas
  • Trazas internas
  • Caminos true-hole

Las inspecciones se pueden realizar tanto en 2D como en 3D, siendo esta segunda más beneficiosa en términos de velocidad de la revisión. Este tipo de prueba permite captar efectos no visibles a simple vista y que pueden estar "escondidos", como por ejemplo las uniones de soldadura generadas en los arreglos de esferas de estaño que se encuentran debajo de los empaquetados de chips. Aunque es una revisión que puede resultar muy útil, tiene que ser realizada por un técnico experimentado.

Prueba funcional

Es el tipo de prueba más clásico y sencillo, en donde el diseñador o la empresa encarga del montaje completo del dispositivo, y se comprueba si este funciona y enciende según lo esperado. Se considera una prueba preliminar ya que no ofrece más información más que el encendido del propio dispositivo.

Otras pruebas

Existen además otro tipo de pruebas físicas que se le pueden realizar a un circuito impreso, que buscan probar funcionamiento de la placa dentro de un entorno similar al que se encontrará como producto final. Algunas de estas pruebas son:

  • Prueba de soldabilidad: Asegura la rigidez de la superficie para incrementar las posibilidades de puntos de soldadura óptimos.
  • Prueba de contaminación de la PCB: Detecta la presencia de partículas y elementos no deseados en la placa, que puedan ocasionar corrosión u otros problemas a largo plazo.
  • Pruebas de micro seccionamiento: Esta prueba busca por cortos, abiertos, defectos de manufactura y otros problemas.
  • Time-domain reflectometer (TDR): Dentro de las PCB de altas frecuencias, debido a la importancia de las impedancias, los acoples y demás parámetros, se realiza esta prueba para conocer las características de las líneas de transmisión mediante la detección de ondas reflejadas.
  • Prueba de pelado: Mide la fuerza necesaria para desprender a una placa de circuito impreso de las trazas que la componen.
  • Solder float test: Determina el nivel de estrés térmico máximo que pueden soportar los huecos de una PCB.

Todas estas pruebas poseen ventajas y desventajas en términos de cobertura, precisión, cantidad de error humano y precio. Por ello una sola PCB no es sometida a todas ellos, sino aquellas que el diseñador haya considerado convenientes para verificar el funcionamiento de su dispositivo. Así mismo, estas no son realizadas por el propio diseñador, más son llevadas a cabo por compañías especializadas en el montaje de circuitos impresos, conocidas como Electronic contract manufacturers (ECM).

Pruebas físicas a realizar

Habiendo hecho la investigación de cuales son las pruebas físicas presentes en la industria, y contrastado con las capacidades presentes en el curso, se optó por realizar las siguientes pruebas físicas para el proyecto:

  • Revisión visual preliminar: Como primera verificación, siempre es valido realizar una revisión visual del estado de la placa, donde se pretende buscar posibles desperfectos tanto en el trazado de las pistas, como en la colocación y soldadura de los elementos. En caso de que exista algún desperfecto se busca corregir antes de la energización.
  • Prueba de alimentación: Como prueba preliminar es necesario conocer si la placa diseñada realmente recibe energía al momento de ser encendida, y no existen cortos o señales visibles de desperfectos (por ejemplo humo o quemaduras en la placa).
  • Medición de voltajes: Luego de pasar la prueba anterior, se realiza medición de voltajes de alimentación tanto a las secciones de potencia como digitales, en donde se busca que existan 12V para la sección de potencia y 3.3 de alimentación en el microcontrolador.
  • Prueba de tipeo en el teclado: Dado que el teclado es una parte vital para el funcionamiento del dispositivo, se busca probar el correcto funcionamiento de cada una de las teclas del mismo. Una prueba más exhaustiva buscaría que tanta probabilidad de fallo hay después de X accionamientos de las teclas, pero este dato viene ya expresado por parte del fabricante del teclado.
  • Prueba de alimentación continua: Como se observó en las pruebas presentes en la industria, una de las más comunes es la de Burn-in, por lo que se propone realizar una prueba similar, en donde se mantenga alimentado el circuito durante un periodo superior a 48 horas, para así asegurar que este no falla después de determinado tiempo.
  • Prueba de continuidad conexiones entre placas: Puesto que el control de la PCB de la zona de potencia depende de aquella que posee el microprocesador, se debe realizar una prueba de continuidad entre las conexiones de ambas.
  • Medición de corriente: Como parámetro necesario dentro de la zona del desmagnetizador, resulta útil la medición de la corriente que se emplea para este fin, y con ello obtener una idea del campo magnético generado. Esta prueba podría ser realizada con una pinza amperimétrica.
  • Prueba de magnetización y desmagnetización de bandas de seguridad: Finalmente, como parte esencial del proyecto, este debe ser capaz de magnetizar y/o desmagnetizar una banda de seguridad para libros de biblioteca. Por lo tanto, se espera realizar una sensibilización y des sensibilización de una cinta de seguridad de prueba para corroborar el funcionamiento de esta sección del proyecto. De manera intensiva, se propondría realizar múltiples ciclos de seguridad, para verificar la robustez del circuito.

Pruebas de Software [1]

Es importante decidir si se realizan pruebas manuales o automatizadas, ya que dependiendo del nivel en donde se realice la prueba, su costo puede ser determinante a la hora de realizar un proyecto.

Las pruebas manuales son realizadas personalmente, interactuando con el software y las API con las herramientas adecuadas. Pueden ser muy costosas, ya que requieren que alguien configure un entorno y ejecute las pruebas, y además son propensas a errores humanos.

Por otro lado, las pruebas automatizadas se realizan a través de una máquina que ejecuta un script de prueba escrito con antelación. Estas pruebas pueden variar mucho en cuanto a complejidad, desde comprobar un único método en una clase hasta comprobar que al realizar una secuencia de acciones complejas en la IU se generan los mismos resultados. Las pruebas automatizadas son mucho más potentes y fiables que las manuales, pero su calidad depende de lo bien que se hayan escrito los scripts de las pruebas.

Tipos de pruebas de Software

  • Pruebas unitarias: Las pruebas unitarias son de muy bajo nivel. Están compuestas de pruebas de métodos y funciones individuales de las clases, componentes o módulos que usa el software. En general, las pruebas unitarias son bastante baratas de automatizar.

  • Pruebas de integración: Las pruebas de integración verifican que los distintos módulos o servicios utilizados por tu aplicación funcionan bien en conjunto. Por ejemplo, se puede probar la interacción con la base de datos o asegurarse de que los microservicios funcionan bien en conjunto y según lo esperado. Estos tipos de pruebas son más costosos de ejecutar, ya que requieren que varias partes de la aplicación estén en marcha.

  • Pruebas funcionales: Las pruebas funcionales se centran en los requisitos empresariales de una aplicación. Solo verifican el resultado de una acción y no comprueban los estados intermedios del sistema al realizar dicha acción.

  • Pruebas integrales: Las pruebas integrales replican el comportamiento de un usuario con el software en un entorno de aplicación completo. Además, verifican que diversos flujos de usuario funcionen según lo previsto, y pueden ser tan sencillos como cargar una página web o iniciar sesión. Las pruebas integrales son muy útiles, pero son costosas de llevar a cabo y pueden resultar difíciles de mantener cuando están automatizadas.

  • Pruebas de rendimiento: Las pruebas de rendimiento comprueban el comportamiento del sistema cuando está sometido a una carga importante. Estas pruebas no son funcionales y pueden tener la forma variada de entender la fiabilidad, la estabilidad y la disponibilidad de la plataforma; por ejemplo, puede estar observando tiempos de respuesta al ejecutar un gran número de solicitudes, o cómo se comporta el sistema con una cantidad significativa de datos.

Pruebas físicas sobre la carcasa

Para realizar la pruebas necesarias para certificar algún producto con las normas IP se realizan 2 pruebas, una para examinar la protección contra polvo y otra para la protección contra agua. Cada una de las pruebas está compuesta por 2 etapas, una etapa de exposición y una etapa de evaluación del funcionamiento del equipo.

En cuanto a la prueba para determinar la protección contra polvo, los productos a certificar son ingresados a una cámara especializada que arroja polvo y arena al producto, además esta cámara está especialmente calibrada para medir ciertas condiciones como la humedad, la temperatura y la velocidad del viento y concentración de partículas de polvo en el aire[2].

En cuanto a las pruebas de protección contra agua existen distintas pruebas que se pueden realizar, por ejemplo pruebas en las que se sumerge el dispositivo hasta una cierta profundidad, rociado de agua y exposición a un chorro continuo de agua [3].

Pruebas sobre la carcasa que podemos realizar

Claramente como nosotros no contamos con los equipos necesarios para hacer pruebas de protección contra polvo nos es imposible realizar una prueba medianamente similar a la realizada por laboratorios certificados, sin embargo para probar la protección contra polvo de nuestro prototipo se podría dejar el dispositivo durante un dia en un lugar en el que esté expuesto al polvo, y luego revisar que tanto polvo logra entrar al interior de la carcasa.

En cuanto a la protección contra líquidos, dado que nuestro producto no requiere tener un alto grado de protección, se propone realizar una pequeña prueba para evaluar la protección contra un rociado leve. Para ello se puede utilizar un aspersor de agua y rociar el la carcasa desde una distancia de 1m, y luego evaluar el funcionamiento del equipo.

Además es posible realizar otras pruebas más específicas para nuestro producto en particular, por ejemplo en vista de que los usuarios pondrán libros sobre la carcasa para hacer el proceso de identificación del libro y desmagnetización, se puede probar la rigidez de la carcasa y su capacidad de soportar peso, en particular se puede probar la resistencia a una carga de 5Kg que es mucho más de lo que pesa cualquier libro promedio.

También se puede probar la resistencia contra impactos, pues de pronto un usuario puede dejar caer accidentalmente un libro sobre la carcaza en vez de ponerlo sobre ella delicadamente, en ese sentido se puede probar la integridad de la carcasa frente al impacto generado por un libro que se deja caer desde una altura de 50cm.

Por último es posible realizar una prueba destructiva para determinar la resistencia de la carcasa a caídas, esto debido a que la máquina será diseñada para que sea colocada sobre una mesa y sea usada desde ahí, pero frente a un uso extremadamente descuidado es posible que un usuario la tire de la mesa, o que el personal de la biblioteca la deje caer mientras la instala. por eso se puede examinar el resultado de dejar caer la carcasa desde una altura de 1m.

Referencias

[1]Los distintos tipos de pruebas de software. PITTET S. [En línea]. Disponible en: https://www.atlassian.com/es/continuous-delivery/software-testing/types-of-software-testing

[2] Sand and Dust testing. Element. [online] available on: https://www.element.com/product-qualification-testing-services/sand-and-dust-testing

[3] Ingres Protection (IP) Testing. Element. [online] available on: https://www.element.com/product-qualification-testing-services/ip-ingress-protection-testing