Na décima primeira semana foi finalizado o projeto, com o ajuste de parâmetros do tratamento de imagem. Segue abaixo um vídeo demonstrando o funcionamento do Manutentor de Trilhos de NASSU.
Semana 10
Na décima semana, foi desenvolvido o sistema de comunicação do microcontrolador. Dessa forma, há uma aplicação cliente que pode ser executada e receber os dados enviados pelo servidor, como o número de parafusos detectados, a posição e o ângulo de cada parafuso, distância percorrida pelo AGV, etc.
Além disso, foi dado prosseguimento no desenvolvimento dos sistemas de controle do servo motor e do reconhecimento e tratamento de imagem.
Para o sistema do servo motor, foi utilizado o protocolo de comunicação I2C com o objetivo de ajustar a precisão com que o servo motor rotaciona. Ao ser implementado porém, houve problemas, e assim o protocolo não pode ser integrado ao sistema.
Para o sistema de tratamento de imagem, foram ajustados alguns parâmetros a fim de otimizar o reconhecimento dos parafusos. Apesar dos ajustes realizados, o sistema ainda necessita mais ajustes para que possa funcionar independente do ambiente a que o AGV é exposto.
Nos vídeos abaixo é possível observar a movimentação do AGV, realizando a detecção do parafuso e parafusando o mesmo.
Semana 9
Na nona semana, foi continuado o desenvolvimento do software. Foi desenvolvido o algoritmo para template matching e para reconhecimento da angulação do parafuso com relação à base. Após isso, foi desenvolvido o sistema da câmera/processamento de imagem e integrado aos outros. O único porém é que o sistema toma um tempo considerável para processar a imagem, fazendo com que o carrinho fiquei um tempo parado.
Também foi arrumado um problema mecânico na parafusadeira, o qual fazia com que a movimentação não fosse uniforme, com ela ficando mais lenta na parte de baixo. As threads também foram melhoradas, para melhor desempenho do programa.
Por fim, foi fixado o trilho na base, pois ele estava frouxo, fazendo com que o carrinho por vezes não acertasse o parafuso.
Semana 8
Na oitava semana foi iniciada a produção do código para a integração dos módulos de teste feitos previamente. Para isso viu-se necessário a utilização de threads para evitar o uso de polling, tornando assíncrona a verificação e atuação dos sensores e atuadores. O código está disponível no GitLab, a partir desse link.
Além disso, percebeu-se um desalinhamento do motor vertical da parafusadeira, o que acabava diminuindo drasticamente a velocidade em partes mais baixas. Portanto foi feito um reparo na parte mecânica do motor, ajustando sua posição e deixando-o mais firmemente acoplado.
Por fim, para melhor organização, foram melhores documentados os pinos de GPIOs utilizados por cada sensor e atuador.
Semana 7
Na sétima semana foram finalizadas as atividades referentes à entrega 2 do projeto. Dessa forma, foram finalizadas a integração do microcontrolador ao AGV e a integração dos motores ao driver do motor. Além disso, foi finalizada a integração do sistema de luminosidade/alerta/distância do AGV assim como o sensor de fim de curso do microcontrolador. Nessa semana também foram adicionadas as marcações na cor preta para identificação da posição do parafuso.
Nos vídeos abaixo, é possível visualizar o funcionamento de cada sensor e atuador de forma conjunta.
Semana 6
Na sexta semana, a estrutura da base dos trilhos foi finalizada. Para isso foram colocados os batentes, um para cada parafuso, de forma que o AGV pare exatamente no local onde os parafusos estão. Além disso, foi colocada uma estrutura de parafusos e porcas para reforçar a sustentação de cada batente. Por último, as duas estruturas de madeira da base foram unidas e fixadas.
Semana 5
Na quinta semana, foi iniciada a integração dos sensores ao AGV. Primeiro foram testados os motores com intgração ao driver da ponte H, além do funcionamento do servo motor da parafusadeira. Após isso, foi adicionada uma chave de liga/desliga ao AGV e também fixado nele o microcontrolador e os demais sensores e drivers, como encoder, driver LDR e sensor de distância.
Após a fixação, foram conectados todos os componentes ao microcontrolador. Foi feito um teste bem sucedido com o acendimento de um led, porém o teste dos motores falhou. Na tentativa de depurar o circuito, medindo tensões de saída do microcontrolador, acabamos fechando algum curto que fez com que a Raspberry Pi queimasse. Após seu velório, foi comprado outro produto do mesmo modelo previsto para chegada dentro de uma semana.
Isso acabou afetando o cronograma do projeto, impedindo que os sistemas fossem testados ou produzidos enquanto o novo microcontrolador não chegasse. Então foram continuadas as partes mecânicas que restavam, feita a organização dos sistemas do AGV, além da criação de um esquemático com todos os componentes.
Foram acopladas quatro rodas de apoio ao AGV, para ajudar em seu balanceamento. Os fios foram organizados e rotolados, foi adicionada uma chave liga/desliga e um driver de controle de tensão para alimentação da Raspberry Pi . Além disso, foi feito mapeamento de todos os pinos dos sensores e atuadores para o microcontrolador.
Por fim, foi testada a alimentação da Raspberry Pi e dos demais sensores (apesar de queimada, ela ainda liga um led e fornece tensão de 5V), o qual apresentou uma diferença de potencial relativamente grande entre diferentes pontos do terra do circuito (perto de 0.8V). Para contornar isso, foi adicionado um capacitor entre o GND e a alimentação de 5V (saída do drive de controle de tensão), o qual abaixou consideravelmente a diferença (perto de 0.2V). Ainda assim, o circuito apresenta certas oscilações de tensão entre alguns terras após certo tempo ligado.
Semana 4
Na quarta semana foi iniciado a construção da primitiva dos sistemas da Raspberry Pi, para controle de pinos de saída e leitura de sensores. O microcontrolador também foi configurado para permitir seu acesso remoto.
Antes do início da construção da base do AGV, a bateria foi fixada nele e também foi adicionada uma guia para a parafusadeira, a qual indicará a posição que o veículo deverá parar para parafusar. A guia consiste em uma espécie de trilho de gaveta que desce junto com a parafusadeira e que deve bater em um obstáculo na base, fazendo com que o carrinho pare e a posição do carrinho seja aquela desejada para parafusar.
Após isso, foi iniciada a construção do trilho. Para isso foram pegos dois pedaços de madeira e em um fixado o trilho do trem e no outro feito os furos e colocados os parafusos. Os obstáculos para a guia ainda não foram adicionados.
Por fim foram feitos testes em conjunto da parafusadeira, trilho, AGV e o parafuso, para checar se o acoplamento e as medidas, a quais se provaram corretas.
Semana 3
Na terceira semana a nossa Raspberry Pi 3B+ chegou dos correios. Foi feita a sua configuração e instalação do sistema operacional Raspbian, uma versão do Debian para Raspberry.
Foram comprados componentes mecânicos como o bit da parafusadeira e definido qual parafuso será utilizado no trilho. Também foram definidas as características da bateria a ser utilizada e feita uma revisão do cronograma e dos riscos do projeto.
Semana 2
Durante a segunda semana, foi continuada a produção da parte mecânica, com a adição das partes faltantes da parafusadeira e toda sua integração. Também foram feitos vários ajustes ao blog.
Após o término de toda parafusadeira, ela foi acoplada ao AGV e então foram feitos testes da movimentação do carrinho sobre o trilho e do movimento vertical da parafusadeira, ambos um sucesso. Assim foram finalizados os primeiros entregáveis do projeto.