Hola a todos, en esta práctica vamos a enseñaros como
realizar mediante estados y basándonos en unas cuantas funciones, el proceso de
chequeo de pines de un chip. Su método de chequeo va en función de la distancia
entre pines.
Algunos se presentará inclinados y demás, de tal manera que nos
dará fallo en ese caso.
Es importante deciros que este programa es muy sensible, es
decir trabaja con mucha precisión por lo que no habrá muchos que nos den bien
aunque aparentemente lo estén.
Como en el anterior caso lo que vamos a hacer es realizar
este proyecto por estados, de tal manera que lo que os iré mostrando cada
estado y diciendo qué funciones son las que he metido.
Este será el diagrama de estados visto de un modo general.
Por lo que empezamos el programa. En el estado de inspect
metemos las siguientes funciones.
En primer lugar, y como los proyectos de tutorial en los que
nos basamos en imágenes de carpeta, pondremos la función y pondremos la ruta de
la carpeta que contiene la secuencia de imágenes, que es la siguiente.
Ponemos el nombre de la función y listo.
El siguiente paso será una de las funciones más importantes
ya que será la que haga el chequeo de los pines.
Es muy importante que esta función esté bien calibrada, ya
que sino, el programa nos dará problemas
y nos reconocerá como buenas las cosas que están mal.
Pondremos en el mismo estado de “inspect” la función
siguiente.
Y la configuraremos de la siguiente manera. En primer lugar
pondremos su nombre. En primer lugar en settings, pondremos que pretendemos
buscar todos los filos, y en segundo lugar le diremos que la traza será de
claro a oscuro.
Y después en la ventana de “limits” ponemos un mínimo y un
máximo de 7. Puesto que queremos localizar siempre 7 y, de tal manera, si aparecen
menos, está claro que el chip está roto.
Y el siguiente paso es crear una variable:
Creamos un contador con una constante, con esta podremos hacer
un conteo de cada pin, de tal manera que esa variable será incrementativa, si
no llega a 7, estará mal.
Ahora lo que haremos será irnos, en caso de que no halla 7
pines, es decir, que el contador no llegue a los 7, que nos pase a un estado,
que determinaremos como “fallo”.
En el interior de ese estado meteremos lo siguiente.
En primer lugar meteremos un semáforo para coordinar la
acción y lo configuraremos de la siguiente manera.
Y después pondremos un overlay con las siguientes
características.
De tal manera que nos aparezca fallo cuando no estén bien
los pines.
Una vez tengamos esto es el momento de pasar al estado que
se encuentra al lado, el cual he llamado “chequeo de pines”.
Y en su interior vamos a meter el siguiente conjunto de
funciones.
Vamos a ir con la primera, cuando la introduzcamos tendremos
que configurarla de la siguiente manera.
Esta indexación va en función de la variable que pusimos en
el anterior estado, de tal manera que, cada vez que encuentre un flanco, se va
incrementando, y pasa al siguiente.
Después ponemos un eje de coordenadas que le adaptamos a la
función de “caliper” de tal manera que,
cada vez que detecte un flanco, se oriente en el eje x e y.
Ahora vamos a la tercera función que va a ser otro caliper. Este determinará si
los pines están a la distancia adecuada, y por tanto nos dirá si pasa o no. Le
ponemos nombre, y configuramos las settings de la siguiente manera.
Ponemos el “gap” a 5, éste determina el interlineado, no
necesitamos que sea muy alto, cuanto más líneas, más recurso comerá el
programa.
El edge strength, determina el “score” para aceptar lo que
es el flanco.
Después ponemos como límites el 30 y el 46, si se sale de
ese rango, dará fallo.
Ya solo nos quedará crear el último estado, el que determina
que está bien.
Creamos el siguiente estado.
En el vamos a colocar exactamente lo que pusimos en el
estado de “fallo” estas son las funciones.
Una copiamos exactamente lo mismo que el anterior, solo que
esta vez cambiamos el texto por “correcto” y con esto, tiraremos una transición
a “stop” y acabaremos nuestro programa.
Con esto acabaríamos nuestro programa de chequeo de pines.
Espero que os sirviera de ayuda un saludo!
No hay comentarios:
Publicar un comentario