Mudanças entre as edições de "Sistema Automatizado de Inspeção de Dutos de Sistemas de Condicionamento de Ar (Parte II)"
(28 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 17: | Linha 17: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Collapse top |Relatório do dia 05/09/2016 até 23/09/2016}} | {{Collapse top |Relatório do dia 05/09/2016 até 23/09/2016}} | ||
Linha 44: | Linha 24: | ||
===Protótipo Parte I=== | ===Protótipo Parte I=== | ||
[[Arquivo:Robo Prototipo.jpg|800px|thumb|center|]] | [[Arquivo:Robo Prototipo.jpg|800px|thumb|center|]] | ||
− | |||
=Controle de Motores= | =Controle de Motores= | ||
Linha 71: | Linha 50: | ||
O link abaixo explica como é feito o processamento de streaming de video no BeagleBone. | O link abaixo explica como é feito o processamento de streaming de video no BeagleBone. | ||
*https://www.youtube.com/watch?v=-6DBR8PSejw | *https://www.youtube.com/watch?v=-6DBR8PSejw | ||
− | + | {{collapse bottom}} | |
Linha 78: | Linha 57: | ||
No novo protótipo pensamos em modificar algumas coisas para melhorar nosso sistema: | 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. | ||
+ | |||
+ | {{Collapse top |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 | ||
+ | {{collapse bottom}} | ||
+ | =Diagrama de funcionamento do Sistema= | ||
+ | [[Arquivo:diagrama.jpeg|800px|thumb|center|]] | ||
+ | |||
+ | =Software= | ||
+ | *'''Controlador: ''' Responsável por capturar e transmitir os comandos do usuário. | ||
+ | [[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 python:''' https://github.com/bruno-antonio-pinho/Robot_Controler | ||
+ | |||
+ | *'''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=== | ||
+ | [[Arquivo:Tela_Principal.png|500px|thumb|center|]] | ||
+ | |||
+ | 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. | ||
+ | [[Arquivo:Tela_conf.png|500px|thumb|center|]] | ||
+ | |||
+ | *'''Botão gravar: ''' O botão gravar permitira gravar a stream de video em um arquivo em disco. | ||
+ | |||
+ | ==Robô== | ||
+ | |||
+ | {| border="1" | ||
+ | | [[Arquivo:Chassi_robo_duto.jpg|300px|thumb|center|]] || [[Arquivo:Chassi_robo_duto_tras.jpg|300px|thumb|center|]] | ||
+ | |} | ||
+ | |||
+ | 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=== | ||
+ | [[Arquivo:Beaglebone-black-pinout.jpg|500px|thumb|center|]] | ||
+ | |||
+ | 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. | ||
+ | |||
+ | {| border="1" | ||
+ | | [[Arquivo:L28N_G.jpg|300px|thumb|center|]] || [[Arquivo:L298N_inputs.jpg|300px|thumb|center|]] | ||
+ | |} | ||
+ | |||
+ | 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. | ||
+ | |||
+ | [[Arquivo:L298N.jpg|500px|thumb|center|]] | ||
+ | |||
+ | =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. | ||
+ | *'''PCB_Proteus -''' [[Arquivo:PCB_RoboII.rar]] | ||
+ | |||
+ | |||
+ | {| border="1" | ||
+ | | [[Arquivo:img1.PNG|300px|thumb|center|]] | ||
+ | |} | ||
+ | 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. | ||
+ | {| border="1" | ||
+ | | [[Arquivo:FOTO1.PNG |300px|thumb|center|]] | ||
+ | |} | ||
+ | ===Protótipo parte II=== | ||
+ | |||
− | + | [[Categoria:Trabalhos de Alunos]] | |
+ | [[Categoria:Projeto de Pesquisa]] |
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
Relatório do dia 05/09/2016 até 23/09/2016 |
---|
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 IControle de MotoresO 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.
Processamento de imagens com o BeagleBoneO 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 |
---|
servo: http://www.filipeflop.com/pd-6b803-servo-motor-sm-s4306r-360-graus-acessorios.html
câmera logitech C920: http://informatica.mercadolivre.com.br/acessorios-pc-webcams/com-microfone/logitech/logitech-c920
injeto + divisor: http://produto.mercadolivre.com.br/MLB-655487154-poe-separador-injetor-_JM
CI LM338T:http://produto.mercadolivre.com.br/MLB-764694926-10-pecas-ci-lm338t-to-220-nsc-_JM
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
http://produto.mercadolivre.com.br/MLB-729318274-micro-motor-dc-12v-18200rpm-_JM
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
Software
- Controlador: Responsável por capturar e transmitir os comandos do usuário.
- Controle dos Servos e motores em C++: https://github.com/bruno-antonio-pinho/PWM_Controler
- Controle dos Servos e motores em python: https://github.com/bruno-antonio-pinho/Robot_Controler
- 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
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.
- Botão gravar: O botão gravar permitira gravar a stream de video em um arquivo em disco.
Robô
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
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.
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.
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.
- PCB_Proteus - Arquivo:PCB RoboII.rar
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.