Mudanças entre as edições de "Sistema Automatizado de Inspeção de Dutos de Sistemas de Condicionamento de Ar (Parte II)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
Linha 97: Linha 97:
 
=Software=
 
=Software=
 
*'''Controlador: ''' Responsável por capturar e transmitir os comandos do usuário.
 
*'''Controlador: ''' Responsável por capturar e transmitir os comandos do usuário.
https://github.com/bruno-antonio-pinho/Controlador
+
[[Arquivo:Robo_dutos-master.zip]]
  
 
*'''Controle dos Servos e motores em C++:''' https://github.com/bruno-antonio-pinho/PWM_Controler
 
*'''Controle dos Servos e motores em C++:''' https://github.com/bruno-antonio-pinho/PWM_Controler

Edição atual tal como às 19h42min de 1 de novembro de 2017

Horário do Bolsista (Andrey Gonçalves)=

  • Local de desenvolvimento (LabIC)
    • Segunda: 07:30 ~ 09:30 // SEMANA B 09:30 ~ 11:30
    • Terça : 07:30 ~ 09:30 // 13:30 ~ 15:30 // SEMANA A 15:30 ~ 17:30
    • Quarta : 07:30 ~ 11:30 // 13:30 ~ 15:30
    • Quinta : 09:30 ~ 11:30 // 13:30 ~ 15:30
    • Sexta : 07:30 ~ 09:30
HORARIOANDREY.JPG






Relatório do dia 05/09/2016 até 23/09/2016
  • Objetivos:

As duas primeiras semanas tiveram como objetivo o apropriamento do Sistema Automatizado de Inspeção de Dutos de Sistemas de Condicionamento de Ar (Parte I).

Protótipo Parte I

Robo Prototipo.jpg

Controle de Motores

O controle é feito através de um circuito chamado ponte H, o mesmo controla um motor DC a partir de sinais gerados por um microcontrolador. Os links abaixo foram mencionados pelos bolsistas Lucas e Bruno de onde tomaram partida para projetar uma ponte H.


O CI L293D faz a função de uma ponte H e embora ele consiga controlar dois motores com ele o mesmo suporta no máximo uma corrente de 600 mA constante e uma corrente de pico de 1,2 A.


O uso do raspberry pi para controle de motores DC é bastante comum e portanto é fácil encontrar alguns programas prontos para isso, sendo os mesmos geralmente escritos em python.

Processamento de imagens com o BeagleBone

O link abaixo explica como a câmera utilizada pode afetar o desempenho da transmissão de video e o consumo de recursos do sistema.

O link a seguir é uma introdução ao processamento de imagens com o OpenCV no BeagleBone.

O link abaixo explica como é feito o processamento de streaming de video no BeagleBone.


Novas alterações no protótipo:

No novo protótipo pensamos em modificar algumas coisas para melhorar nosso sistema:

  • A tensão de entrada do Robô parte II será modificada para 24V (o primeiro protótipo era alimentado com 48V).
  • Movimento da Câmera: Como acharam mais conveniente que o sistema de câmera se movimente apenas no (sentido horizontal, esquerda/direita). No protótipo parte II usaremos apenas um servo motor para esse movimento.
  • Placa de acionamento e controle: Vamos ter que refazer o layout da placa atual adicionando o sistema de proteção do Circuito, assim eliminando fios.
  • Adicionaremos um motor DC na parte frontal do protótipo para fim da limpeza do duto.
  • Os reguladores de tensão 24V/5V e 24V/12V será projetado pelo bolsista pois precisaremos de uma corrente de 3A.
Lista de itens necessários para o projeto


    • 1x Servo motor: O servo motor será responsável pela movimentação da câmera, somente no sentido horizontal.
           servo:  http://www.filipeflop.com/pd-6b803-servo-motor-sm-s4306r-360-graus-acessorios.html
  • Câmera: Será utilizada para visualizar o caminho do robo.
           câmera logitech C920: http://informatica.mercadolivre.com.br/acessorios-pc-webcams/com-microfone/logitech/logitech-c920
  • Sistema PoE: Irá utilizar a energia enviada pelos cabos de rede para alimentar o robô.
           injeto + divisor: http://produto.mercadolivre.com.br/MLB-655487154-poe-separador-injetor-_JM
  • Conversores de tensão DC/DC: Irão converter a tensão e aumentar a corrente. Vamos montar os reguladores de tensão para as tensões desejadas.
           CI LM338T:http://produto.mercadolivre.com.br/MLB-764694926-10-pecas-ci-lm338t-to-220-nsc-_JM
           
  • Fonte de tensão: : 220V para 24V.
           Fonte de tensão 24V 3A:http://produto.mercadolivre.com.br/MLB-704399927-fonte-24v-3a-2a-1a-24-volts-3-amperes-router-board-wireless-_JM
  • Motor DC 12v / 18200rpm : : Esse motor será usado para limpeza do duto.
           http://produto.mercadolivre.com.br/MLB-729318274-micro-motor-dc-12v-18200rpm-_JM
  • Iluminação: Para melhor iluminação do duto leds serão colocados juntamente com a câmera.
           Led smd 5730:http://produto.mercadolivre.com.br/MLB-772162006-barra-de-led-regua-de-led-smd-5730-dc-12v-_JM

Diagrama de funcionamento do Sistema

Diagrama.jpeg

Software

  • Controlador: Responsável por capturar e transmitir os comandos do usuário.

Arquivo:Robo dutos-master.zip

  • Transmissão de video: Para a transmissão de video esta sendo utilizado o MJPG-Streamer devido a sua eficiência.

O Sistema é formado por duas partes:

  • Controlador: O controlador é composto por um computador rodando um software o qual interpreta e envia comandos recebidos por um controle USB.
  • Robô: O robô é composto por 2 conversores DC/DC responsáveis por reduzir a tensão de entrada 24V/12V e 24V/5V. Uma Ponte H responsável por fazer o chaveamento de tensões dos motores DC, M1 e M2, a ponte H está conectada à três portas PWM do BegleBone, os polos negativos de ambos os motores são alimentados pelo mesmo sinal PWM. O C.I. 74LS08 é responsável pela ativação do servo S1 o C.I está conectado a duas portas digitais e duas portas PWM do BeagleBone. O C.I. HEF4050BP é responsável por aumentar o nível dos sinais PWM que chegam aos servos e proteção do Beaglebone. O BeagleBone além das funções já descritas ainda deve mandar uma stream de video, capturada através de uma câmera conectada via USB em um suporte movimentado pelo servo.

O robô e controlador são interligados através de um sistema PoE.

Controlador

O software do controlador tem como função e enviar os comandos do usuário para o robô. Tanto os comandos de movimentação do robô quanto ao servo motor são enviados como um valor entre 0 e 3 em quanto o valor da velocidade varia entre 1 e 100, esses três valores são alocados em uma lista, transformados em string através da biblioteca simpleJSON e enviados ao robô via UDP. O código do controlador se encontra em um repositório do github citado anteriormente.

Controle

Para o controlar os movimentos do robô e do servo motor vamos utilizar um controle modelo dualshock 2 USB. A integração do controle com o resto do software do controlador se deu através da biblioteca PyGame. O botões reconhecidos pelo controlador e suas funções são:

  • Analógico esquerdo: Movimentação do robô.
  • Analógico direito: Movimentação do sistema servo motor.
  • L1: Diminui a velocidade dos motores.
  • R1: Aumenta a velocidade dos motores.
  • Select: Aciona o motor de limpeza.
  • Start: Gravação em disco da stream de video(função ainda não implementada).

Interface Gráfica

Tela Principal.png

A interface gráfica, imagem acima, foi feita em Qt e é bastante simples consistindo de:

  • Display: O display mostra o valor numérico da "velocidade", a velocidade é o valor em porcentagem do duty cycle do sinal pwm dos motores ou quanto porcento do periodo o sinal fica em estado alto.
  • Botão de configuração: A interface gráfica permite que o robô além de ser controlado pelo controle ainda seja controlado pelo teclado, o botão de configuração permite que as teclas de comando sejam alteradas. As configurações são alteradas através de uma nova janela mostrada na imagem abaixo.
Tela conf.png
  • Botão gravar: O botão gravar permitira gravar a stream de video em um arquivo em disco.

Robô

Chassi robo duto.jpg
Chassi robo duto tras.jpg

O Robô criado neste projeto é composto por um chassi(imagem acima), 2 motores DC, uma placa beaglebone Rev. C, um servo motor para o movimento horizontal da câmera, uma câmera Logitech C920, e um circuito de alimentação.

BeagleBone

Beaglebone-black-pinout.jpg

A imagem acima mostra os pinos do beaglebone e a sua utilização, para o controle do robô foram utilizados 5 portas PWM e 2 portas digitais.

  • 3 portas PwM (P8_13, P9_14 e P9_42) para controle dos motores DC, foram usadas portas PWM ao invés de portas digitais a fim de ser possível controlar a velocidade do robô, sendo dois sinais PWM ligados ao positivo dos motores e um sinal PWM ligado ao negativo de ambos os motores.
  • 1 portas PWM (P9_22) usada para controlar o sistema usado no controle da movimentação da câmera.

Alimentação

A alimentação será feita através de um sistema PoE(Power over Ethernet) até a entrada do circuito onde será distribuída para 2 conversores DC/DC regulará duas tensões 12V e 5V.

  • Conversor DC/DC para 12V: É responsável por alimentar os motores DC, a saída será conectada a uma ponte-H que é ativada através das portas PWM.
  • Conversor DC/DC para 5V: É responsável por alimentar o o beaglebone e os servos. Os servos são ativados através de pulsos com amplitude de 5V porém a amplitude dos pulsos Pwm do beaglebone são de 3.3V, para resolver isso os pulsos passaram por circuito composto pelo CI 74LS08.

L298N

O L298N é um C.I. que atua como uma ponte-H. vamos utilizar um driver pronto que utiliza o L298N para controlar os motores DC.

L28N G.jpg
L298N inputs.jpg

O driver possui 2 entradas de tensão, sendo uma de 6V a 35V e a outra até 5V. 4 entradas que permitem a passagem da tensão de entrada na saída correspondente e 4 saídas. As saídas estão associadas em dois grupos habilitado por dois jumpers, o jumper ENA habilita as saídas 1 e 2 enquanto o jumper ENB habilita as saídas 3 e 4. A imagem abaixo mostra a posição de todos os elementos, sendo os jumper Ativa MB e MA o mesmo que ENA e ENB respectivamente, MotorA saídas 1 e 2 e MotorB saidas 3 e 4. e o jumper Ativa 5v quando ativado torna a entrada de 5v em uma saída de 5v.

L298N.jpg

PCB - Placa de circuito impresso

A placa dos reguladores de tensões e circuitos utilizados no sistema foi projetada no Software Proteus, segue link para download.


Img1.PNG

A imagem da esquerda mostra os furos dos componente e trilhas do circuito projetado. A da direita é uma imagem 3D que o Software Proteus produz.

Após projetar a placa enviamos a placa para o professor Cassiano para ele fazer o processo de furos na placa, depois de furada fizemos a soldagem dos componentes na placa com auxílio do professor Jorge H. B. Casagrande. Podemos ver na figura a seguir a placa finalizada.

Protótipo parte II