Grupo 11 - PIC Pick&Place
| Equipa: | Grupo 11: Vitória Cruz Laura Cabete João Alegria Raúl Viana Yulianna Goncharova |
| Empresa | PICadvanced |
| Orientadores: | Eng. Francisco Rodrigues (PICadvanced) e Prof. João Peixoto (DETI) |
Desafio
Um PIC (Photonic Integrated Circuit) é uma placa de circuito com dimensões extremamente reduzidas, que, para ser integrado num circuito mais complexo é fixado num _Holde_r utilizando como cola, resina de epoxy. Antes deste projeto, a empresa PIC Advanced para poder assemblar este circuito, analisá-lo (ver se este está danificado ou com alguma anomalia) e guardar a informação da análise numa base de dados tinha que o fazer manualmente. Depois deste, a empresa obteve uma PIC PICK & PLACE que possibilita automatizar um bocado todo este processo.

#### Material Fornecido Neste desafio de criar uma PIC PICK & PLACE foi nos fornecido:
- uma impressora 3D, para poder interagir com um PIC num espaço 3D;
- um dispensador de cola, com o intuito de colocar cola no Holder;
- uma câmara, para poder analizar um PIC e um Holder;
- uma cabeça de vácuo, de modo a agarrar um PIC e movimentá-lo no espaço;
- placa controladora (Arduino Mega com uma RAMPS 1.4), de forma a poder controlar a impressora 3D.
#### Tarefas Para poder criar a PIC PICK & PLACE tivemos que:
- Desenvolver algoritmos de processamento de imagem para poder extrair informação sobre um PIC e um Holder (contorno, centro geométrico, comprimento e largura, etc…);
- Adaptar a impressora 3D:
- Adaptar as ferramentas (câmara, dispensador de cola e cabeça de vácuo) a cabeça da impressora;
- Alterar o firmware de forma a moldar a impressora 3D as necessidades deste projeto.
- Desenvolver uma biblioteca para interagir com a impressora 3D/placa controladora e as ferramentas através de uma linguagem de alto nível;
- Criar suportes para a cabeça da impressora para acomodar as ferramentas;
- Desenvolver código para aceder a base de dados;
- Elaborar uma GUI (Graphical User Interface) com a capacidade de mover a cabeça da impressora, analizar e manusear PICs e Holders e dispensar cola;
- E finalmente, assemblar todo os componentes num só.
Resultados
O produto que conseguimos obter no final e entregar à empresa consiste numa Pick & Place que tem um suporte na cabeça da impressora no qual é possível colocar uma das 3 ferramentas de cada vez. Conseguimos, usando a GUI ou com comandos no terminal, tirar fotografias através da câmera, conseguimos também ligar e desligar a cabeça de vácuo e o dispensador de cola e movimentar a cabeça da impressora no espaço 3D.
Em termos do processamento de imagem, os algoritmos desenvolvidos conseguem detetar o contorno e centro geométrico dos Pics e dos Holders, e também conseguem detetar a arquitetura dos PICs. As taxas de sucesso destes algoritmos são entre 85% e 89%.
Foi também iniciado o desenvolvimento de um algoritmo de deteção de defeitos nos PICs, embora tenha devolvido alguns resultados, é por agora um protótipo.
Em relação às ferramentas, estas funcionam como devido, o problema da sua utilização advém de que não conseguimos transformar os centros geométricos encontrados pelo processamento de imagem em coordenadas reais, e por isso o processo de colocar cola nos Holders e transportar os PICs terá de ser controlado manualmente através da GUI.
A conclusão que tiramos dos nossos resultados é que conseguimos com este projeto atingir todos os objetivos inicialmente delineados para o produto, embora com menos autonomia que a esperada.
Solução
Com vista a desenvolver uma solução, foi adotado um desenvolvimento modular, assim cada componente, tanto de hardware como de software é capaz de funcionar por si só.
Impressora Começando pelo corpo da impressora 3D, esta teve que ser adaptada juntamente com as ferramentas. Foi desenvolvido um suporte para colocar as ferramentas diretamente na impressora. Este suporte é aplicado onde se encontrava a cabeça da impressora 3D. Ferramentas Ambas as ferramentas tiveram que ser adaptadas às necessidades do projeto sendo que, como estas são ferramentas de uso manual pelos colaboradores da empresa, foi necessário desenvolver algo que simulasse a utilização da ferramenta mas de forma digital. Como tal, foram utilizados relés para simular o ligar/desligar das ferramentas. Software Para controlar a impressora e as ferramentas foi utilizado python. Visto que o firmware presente na impressora é Marlin foi necessário criar uma ponte entre a impressora e o utilizador. Para tal foi utilizada uma biblioteca denominada de printrun. Para obter vídeo e imagem da câmara é utilizado python juntamente com a biblioteca de OpenCV. Para controlar parâmetros como exposição e ativação/desativação dos LEDs embutidos da câmara é utilizada a GUI do fabricante da câmara. Algoritmos de processamento O algoritmo de deteção de PICs tem a capacidade de indicar qual a arquitetura do PIC detetado, as suas dimensões e se a arquitetura tem ou não defeitos. A deteção segue a seguinte ordem:
- É tirada uma foto ao background do gelpack
- É tirada uma foto ao PIC que se quer analisar
- É detetado o contorno do PIC
- É extraido o centro geométrico, dimensões, arquitetura e se apresenta defeitos
Este algoritmo tem também a capacidade de detetar Holders, permitindo apenas assinalar o contorno e o centro geométrico do mesmo. Interface gráfica De maneira a facilitar a interação do utilizador com a impressora, foi desenvolvida um interface gráfica, que permite ao utilizador movimentar os diferente eixos da impressora assim como selecionar qual a ferramenta em uso, podendo assim ter ao seu dispor as diferentes funcionalidades de cada ferramenta. É também possível visualizar em tempo real o feed da câmara bem como os resultados da análise do PIC. Por fim, após analisar o PIC e obter as características do mesmo, é possível submete-las para a base de dados.