Grupo 06 - Flying Probe Low Cost, com base num kit CNC
Equipa: |
Grupo 06: Filipe Loureiro , Emanuel Pereira , Mariangel Castro , Miguel Silva , Renato Rocha |
Empresa: | Altice Labs |
Orientadores: |
Prof. Telmo Cunha (DETI)
Eng. Hélder Alves (Altice Labs) Eng. Nuno Balseiro (Altice Labs) |
O projeto teve como finalidade encontrar uma solução para o desafio proposto pela Altice Labs, no plano de criação de um autómato para a medição de sinais em placas de circuitos eletrónicos impressos. A solução apresentada contempla o uso de um kit CNC para a movimentação da ponta de teste adaptada, um multímetro para obter as leituras desejadas e um computador como elemento central. Existe também uma User Interface (UI) que contém uma API para fazer a conexão com a base de dados.
Desafio
A Altice Labs é responsável pela criação, desenvolvimento, testagem e validação de vários equipamentos, tais como routers e gateways. Atualmente, todos os testes necesssários realizar nas placas de circuitos impressos são feitos de uma forma manual pelo operador, tornando o processo demorado e extremamente repetitivo. Foi lançado o desafio de tornar este processo automatizado e com pouca interação humana. A solução de utilizar um kit CNC adaptado, um multímetro e um computador permite reduzir o tempo de teste, diminuir os possíveis erros associados à repetição dos testes, bem como a possível inclusão do sistema no final da cadeia de validação dos PCBs.
</br>
Resultados
No final do projeto é possível realizar testes a uma PCB de forma automática, em que o operador apenas tem de fornecer o ficheiro com as coordenadas dos pontos de teste e os valores esperados ler, bem como introduzir a PCB na mesa de testes. O funcionamento do sistema pode ser dividido no funcionamento dos seguintes componentes: Controlo da CNC - Capacidade de enviar a ponta de teste adaptada para as várias coordenadas de teste. Leitura do multímetro - Capacidade de obter a leitura dos pontos de teste. Estes valores vão sendo adicionados ao relatório de teste que será enviado no final para a API. API e Base de Dados - Existe uma API que permite a conexão com a base de dados, possibilitando ao operador introduzir os dados necessários para iniciar e executar o teste. Também é disponibilizado o relatório de teste, podendo consultar os seus detalhes. A base de dados permite guardar a informação de vários testes executados para consula futura.
</br>
Mais informação
Este diagrama apresenta uma visão geral do funcionamento do sistema. Através do mesmo podemos observar os inputs e outputs globais que correspondem aos valores introduzidos, para dar início ao sistema, e os recebidos, que são o resultado da execução de todos os módulos internos. Os inputs nesta fase resumem-se a: Coordinates file (ficheiro de coordenadas): esta entrada corresponde a um documento .csv que possui as coordenadas dos pontos de teste da PCB que serão entregues à CNC para deslocar a ponta de prova. Expected measurements file (ficheiro de valores esperados): este documento contém os valores que devem ser comparados aos dados obtidos pelo multímetro na medição da placa de teste. Physical board (placa de teste): para dar início ao funcionamento do sistema, é necessário introduzir uma PCB na qual serão praticados os testes. Por outro lado, o output é dado pelo report file (relatório), que contém a avaliação dos testes efetuados à PCB. É necessário destacar que todos os dados introduzidos serão recebidos e transportados pela API e armazenados na base de dados, representado no diagrama através de uma área verde.
</br>
</br>
O diagrama seguinte apresenta uma visão geral da arquitetura do software a desenvolver. Entre todos os módulos compostos por este esquema, é necessário destacar os seguintes: Database (Base de dados): este módulo representa a base de dados do sistema, responsável pelo armazenamento dos valores necessários para a operação da CNC e para a redação do relatório. A base de dados irá também armazenar os dados relativos ao relatório. Módulos verdes (dbcom e nodejs): o módulo dbcom irá comportar-se como uma API, pelo que permitirá a troca de informação entre a base de dados e o nodejs. O nodejs irá ser responsável por selecionar os dados que será necessário enviar ou receber da base de dados e fazer a interligação entre os restantes módulos. Módulos azuis (filecom, route, serialcom, board e cnc): estes módulos são responsáveis por ler um ficheiro .csv, traduzi-lo em código gcode para, posteriormente, formular e enviar instruções GRBL para a CNC. De notar que o sistema sofreu uma atualização proveniente da necessidade de acrescentar uma camada de segurança ao manuseamento da CNC. Isto é possível devido à abstração entre o módulo board e o módulo cnc. Módulos vermelhos (filecom, report, multimeter, serialcom): são responsáveis por ler os valores do multímetro e escrevê-los num ficheiro.
</br>
</br>
A UI permite ao utilizador navegar entre as várias funcionalidades do sistema:
</br>
Imagens do Produto Final:
</br>