lunes, 5 de marzo de 2012

Detección de pines


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