lunes, 25 de marzo de 2013

Magatzem automatitzat II

El projecte de magatzem automatitzat utilitza una placa de control Imagina basada en un PICAXE 20M2. Per editar el programa de control es pot fer servir el BASIC des del Programing Editor de PICAXE, amb Scratch (S4A) o amb LabVIEW. Aquí es mostra la programació amb Scratch.

El programa del magatzem inclou el procés de lectura del codi de barres i la col·locació del paquet a la casella corresponent de la prestatgeria de 3 x 3 caselles. Tot s'inicia quan premem el "Sensor Digital 2" (Polsador S2). A partir d'aquí comença l'animació del paquet, arrossegat per la cinta transportadora a la pantalla de l'ordinador, i la placa "Imagina" es prepara per que els seus dos sensors de infrarojos CNY70 (Analog3 i Analog5) llegeixin el codi de barres. Una vegada llegit el codi de barres el programa li assigna valor a les variables "x" i "y", i amb aquests valors col·loca el paquet a la casella corresponent.

Les diferents imatges utilitzades en el programa d'Scratch són les següents:

L'escenari inclou la prestatgeria, la base i les guies del carro que es mou en horitzontal, a més dels dos trossos de cinta de la cinta transportadora.

La placa "Imagina" està representada pel següent dibuix, i també es manté fixa.

Les dues rodes que giren per simular el moviment de la cinta transportadora tenen aquest aspecte:

El carro horitzontal porta acoblada la columna sobre la que es desplaça, en vertical, la pinça que recull i deixa els paquets al seu lloc.

La pinça es desplaça en vertical sobre la columna fixada al carro horitzontal.

Aquest és el paquet:

Passarem ara a descriure el programa, començant pel corresponent a la placa "Imagina".

Al iniciar el programa (Bandera verda) es posiciona el dibuix corresponent a la placa "Imagina", s'aturen els dos motors, es posen a zero totes les variables i s'inicia un bucle a l'espera de que es premi el polsador S2. Una vegada premut S2 s'inicien els subprogrames "S2" i "linea1".

Amb el subprograma "linea1" comença la lectura del codi de barres. Dins d'un bucle "por siempre" s'espera abans de res a que els dos sensors "Analog3" i "Analog5" detectin un espai en blanc de l'inici del codi de barres i després a que un dels dos sensors detectin negre. "Analog3" representa la referència de posició i "Analog5" el valor del codi. Si els dos detecten negre (Valor 1), s'assigna el valor 2 a la variable "x", si no és així se li assigna el valor 0. Una vegada llegida la primera línia s'inicia el subprograma "linea2" i s'atura el subprograma "linea1".

El subprograma "linea2" llegeix la segona línia del codi de barres, que correspon al segon dígit binari que assigna valor a la variable "x", que indica la coordenada necessària per situar el paquet a la casella corresponent de la prestatgeria. La manera de procedir es similar a la del subprograma "linea1", llevat que el valor que afegeix a la variable "x", en cas que es detecti línia negra es 1. Al finalitzar la lectura de la línia s'inicia el subprograma "linea3" i s'atura el subprograma "linea2".

El subprograma "linea3" llegeix la tercera línia del codi de barres, que correspon al primer dígit binari de la variable "y". Si el sensor "Analog5" detecta negre se li assignarà un valor 2 a la variable "y" i si no és així un 0. Una vegada llegida la tercera línia s'inicia el subprograma "linea4" i s'atura el subprograma "linea3".

El subprograma "linea4" llegeix la quarta línia del codi de barres que correspon al segon dígit binari de la variable "y" i li afegeix un 1 si el sensor detecta negre. Després de llegir la línia li assigna el valor 1 a la variable "s" per deixar constància de que ja s'ha llegit el codi de barres i es pot procedir a col·locar el paquet al seu lloc. A continuació s'atura el subprograma "linea4".

Les dues rodes de la cinta transportadora tenen aspectes i programes similars, llevat del que té relació amb les coordenades de la posició que ocupen. A continuació es mostra el programa de la "Rueda1".

Al iniciar-se el programa, amb la bandera verda, es situa el dibuix a les coordenades corresponents. El subprograma "S2" fa girar la roda fins que el valor de la variable "t" es 1. El valor 1 d'aquesta variable informa de que el paquet ha arribat al final de la cinta transportadora.

A continuació es pot veure el programa de la "Rueda2".

A continuació es mostra el programa corresponent al carro.

Al iniciar-se el programa, amb la bandera verda, es posiciona el dibuix a les seves coordenades d'inici, corresponents al lloc al que s'ha de recollir el paquet, a la cinta transportadora. El subprograma "S2" també posiciona el dibuix a les seves coordenades d'inici. El subprograma "colocar" porta el carro horitzontal fins la casella inferior dreta, que la considerarem com l'inici del sistema de coordenades. El subprograma "coordenadas" desplaça el carro cap a l'esquerra tants espais, a la prestatgeria, com correspongui al valor de la variable "x" menys 1.

A continuació es mostra el programa de la "pinza".

El programa de la "pinza" es similar al del "carro", llevat de que en aquest el subprograma "coordenadas" també desplaça el dibuix cap a dalt tantes caselles com sigui el valor de la variable "y" menys 1.

A continuació s'inicia el programa corresponent al "paquete".

Al iniciar el programa, amb la bandera verda, s'amaga el dibuix del paquet. Al iniciar el subprograma "S2" es mostra el paquet a les coordenades d'inici, a la dreta de la cinta transportadora, se li fa avançar fins al final de la cinta, es fixa el valor de la variable "t" a 1 per informar de que el paquet ha arribat al final de la cinta i s'inicia el subprograma "colocar".

El subprograma "colocar" desplaça el paquet fins la casella inferior dreta de la prestatgeria, seguint el moviment del "carro" i la "pinza". A continuació es comprova que el valor de la variable "s", que indica que el codi de barres ja s'ha llegit, i la variable "t", que indica que el paquet ha arribat al final de la cinta transportadora, valen 1, i si es així inicia el subprograma "coordenadas" i atura el subprograma "colocar".

El subprograma "coordenadas" del "paquete" es similar al subprograma "coordenadas" de la "pinza" i desplaça el dibuix del "paquete" fins la seva casella a la prestatgeria.

A continuació es pot veure un vídeo amb tot el procés de lectura del codi de barres i la col·locació del paquet a la seva casella corresponent. S'ha utilitzat un paquet amb un codi negre-blanc-negre-blanc, corresponent als dígits binaris 1010, que corresponen a valors 2 per les dues variables "x" i "y".

No hay comentarios: