• Nenhum resultado encontrado

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ESCOLA POLITÉCNICA ENGENHARIA DE COMPUTAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ESCOLA POLITÉCNICA ENGENHARIA DE COMPUTAÇÃO"

Copied!
24
0
0

Texto

(1)

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ESCOLA POLITÉCNICA

ENGENHARIA DE COMPUTAÇÃO

FELIPE SIELSKI ROMUALDO DE OLIVEIRA GUSTAVO COELHO ARANTES

LUCAS BREHM RONNAU PAULO GUSTAVO ZANESE

PROJETO TUDO SECO

CURITIBA 2013

(2)

ENG. COMPUTAÇÃO TUDO SECO 2 | P á g i n a FELIPE SIELSKI ROMUALDO DE OLIVEIRA

GUSTAVO COELHO ARANTES LUCAS BREHM RONNAU PAULO GUSTAVO ZANESE

PROJETO TUDO SECO

Trabalho apresentado ao Curso de engenharia de computação, Referente à disciplina de Resolução de problemas de engenharia, da Pontifícia

Universidade Católica do Paraná.

Orientador: Profº.: Afonso Ferreira Miguel.

CURITIBA 2013

(3)

ENG. COMPUTAÇÃO TUDO SECO 3 | P á g i n a 1. Introdução

A disciplina de Resolução de problemas em engenharia tem como finalidade o desenvolvimento de projetos, fazendo parte deste, sua documentação completa, cronogramas, apresentações para classe e suas conclusões. Sendo assim o projeto prepara os alunos para o futuro mercado de trabalho.

O projeto tudo seco tem o objetivo de facilitar o serviço doméstico e cotidiano das pessoas. É muito frustrante quando chove e acaba molhando todas as roupas que estavam no varal, e que por alguma razão, não houve tempo hábil para recolhê-las. Entretanto, foi em um dia que ocorreu uma chuva inesperada, que o aluno Gustavo Coelho Arantes teve a inspiração de fazer, como um projeto integrador, um toldo, que cobrisse as roupas do varal, ao perceber a presença da chuva.

No mercado existem toldos que funcionam automaticamente, através de um controle. Porém a diferença desse projeto é que, ele funcionará através de um sensor, possibilitando proteger as roupas sem mesmo que haja uma pessoa em casa para acioná-lo. Isso faz com que as pessoas possam dar continuidade aos seus afazeres, deixando de lado a preocupação com as roupas que estão secando no varal.

(4)

ENG. COMPUTAÇÃO TUDO SECO 4 | P á g i n a 2. Sumário 1.Introdução _______________________________________________________________ 3 2.Sumário _________________________________________________________________ 4 3.Os objetivos ______________________________________________________________ 5 4.Materiais utilizados _______________________________________________________ 5 5.A equipe de desenvolvimento _______________________________________________ 6 6.Os requisitos _____________________________________________________________ 6 7.O projeto ________________________________________________________________ 7 7.1.Diagrama de Módulos _________________________________________________________ 7 7.2.Diagrama Comportamental ____________________________________________________ 7 8.Não está incluso no escopo deste projeto ______________________________________ 8 9.Tabelas _________________________________________________________________ 8 9.1.Problemas Encontrados _______________________________________________________ 8 9.2.Custo do Projeto _____________________________________________________________ 8 10.Conclusão ______________________________________________________________ 9 11.Referência _____________________________________________________________ 10 12.Glossário ______________________________________________________________ 11 13.Anexos ________________________________________________________________ 12 13.1.Imagens __________________________________________________________________ 12 13.2.Código Fonte ______________________________________________________________ 14 14.Maiores Informações ____________________________________________________ 24

(5)

ENG. COMPUTAÇÃO TUDO SECO 5 | P á g i n a 3. Os objetivos

A intenção do projeto é facilitar a rotina das pessoas, fazendo com que elas não se preocupem com as roupas do varal. Com isso, o toldo terá que obedecer a um comando de movimento para fechar, assim que o sensor perceber a presença de água, e quando esse sensor ficar por um intervalo de tempo sem sentir a água, consequentemente o toldo volta a abrir.

Esse sistema terá a opção de liga/desliga, fazendo com que não haja nenhum tipo de funcionamento para o toldo, haverá liga/desliga para os sensores, impossibilitando a ação de fechamento ao sentir a presença da chuva. Tudo isso será controlado por um controle remoto.

O display LCD será usado para demonstrar o estado que o sistema se encontra, se ele estiver no manual um LED ficará aceso, no modo automático outro LED ficará ligado, porém se ele estiver totalmente desligado, nenhum LED ficará aceso. Um display de LCD também será utilizado para mostrar em qual modo o projeto está sendo executado. Ainda, um sinal sonoro que será acionado no momento em que o toldo estiver em movimento, evitando que ocorra algum tipo de acidente.

4. Materiais utilizados

 1 Arduino UNO;  Madeira;

 1 Sensor de chuva;  PVC;

 1 Motor de passo;  Trilhos;

 1 Display LCD 16x2;  Pregos;

 1 Sensor fim-de-curso (Sensor de toque);  Parafusos;

 1 Buzzer;  1 Resistor 10 KΩ;

 2 Leds de 5mm; 2 Resistor 330 Ω;

 1 Sensor Infravermelho; 1 Resistor 220 Ω;

 1 Controle remoto;  1 CI ULN 2003;

(6)

ENG. COMPUTAÇÃO TUDO SECO 6 | P á g i n a 5. A equipe de desenvolvimento

Foram atribuídas atividades para cada integrante do grupo, cada qual ficou responsável por:

Felipe Sielski: Controle remoto com Arduino - Explicar funcionamento; Testar Arduino recebendo controle remoto; Controle remoto funcionando; Integrar controle com display; Telhado mexendo pelo motor, Implementar o toldo PVC, Concluir o trilho do toldo.

Gustavo Coelho: Comprar Scanner na Big Alves + Arduino; Testar motor passo scanner com Arduino; Motor de passo funcionando com Arduino; Motor controlado pelo sensor de chuva e fim de curso, Implementar a chave fim de curso, Fazer placa para integrar a eletrônica.

Lucas Brehm: Fazer Testes com sensor de chuva; Sensor de água funcionando com Arduino; Comprar materiais do toldo e desenho no SW; Testar trilho PVC e propor alternativas; Integrar controle com display, Iniciar a montagem na placa final, Refazer o código por máquina de estado.

Paulo Gustavo: Ligar LCD 16x2; LCD funcionado com Arduino; Fazer o programa funcionando apenas no automático com sensor de fim de curso; Fazer menu de configuração; Sistema funcionando com bateria; Início da documentação, Documentação quase concluída, Iniciar a edição vídeo.

6. Os requisitos

Para que este projeto seja realizado com sucesso, os seguintes itens devem ser fornecidos pela PUCPR, e pelos professores:

1. Disponibilidade de tempo;

2. Disponibilidade de informação para a construção do projeto; 3. Ajuda técnica.

(7)

ENG. COMPUTAÇÃO TUDO SECO 7 | P á g i n a 7. O projeto

7.1. Diagrama de Módulos

O diagrama mostra o sistema sendo alimentado por uma potencia e funcionando com uma verificação feita por sensores de chuva, se estiver chovendo ele manda um alerta e gera um movimento que abre o toldo, quando a verificação der negativa ele fecha o toldo.

7.2. Diagrama Comportamental

Ao ligar o sistema ele verifica se esta em automático ou em manual, no automático o sistema verifica se esta chovendo, se estiver, emite um alerta sonoro e abre o toldo e quando a chuva para emite um sinal sonoro e fecha o toldo, no

Potência Verificação Alerta Movimento Verifica estado Automático Manual

Verifica chuva Verifica chuva

Emite sinal sonoro

Abre toldo

Para chuva

Fecha toldo

Emite sinal sonoro

Aguarda botão

Fecha Abre

(8)

ENG. COMPUTAÇÃO TUDO SECO 8 | P á g i n a

manual a diferença esta em que o toldo só executa o movimento (fecha ou abre) se receber a ordem para tal.

8. Não está incluso no escopo deste projeto  O varal não será automático.

 Não haverá controle do toldo via internet.  Não será touch screen.

9. Tabelas

9.1. Problemas Encontrados

Problema encontrado Solução

Dificuldade no funcionamento do motor de passo.

Substituição do motor por um novo de mesmo modelo.

Problema na programação envolvendo o sensor de

infravermelho com o controle remoto.

Reiniciar o processo na programação.

Fazer com que o motor funcionasse em ambos os sentidos.

Rever os pinos conectados e conecções externas.

9.2. Custo do Projeto

Produto Valor

Kit arduino R$: 157,50*

Scanner com motor R$: 30,00

Trilhos R$: 35,00

Controle remoto e sensor R$: 30,00*

Placa de fenolite R$: 2,00

Lâmpada de emergência R$: 34,90

Total: R$ 289,40

(9)

ENG. COMPUTAÇÃO TUDO SECO 9 | P á g i n a 10. Conclusão

Concluímos que o projeto tudo seco foi essencial para o aprendizado na disciplina de resolução de problemas em engenharia, apesar dos integrantes do grupo ter muito pouco conhecimento sobre os objetos a serem utilizados. Porém, tudo isso foi compensado com muito esforço, dedicação e união do grupo, para o sucesso do mesmo.

Os critérios exigidos para construção do toldo não foram totalmente concluídos, isso devido à complexidade de unificação dos códigos. Contudo passamos por vários problemas de estrutura e dificuldades de estabilidade do conjunto. Buscaram-se todas as informações teóricas possíveis e necessárias para um bom resultado no termino do mesmo. A fase mais difícil do projeto foi na fase de testes, pois problemas complicados apareceram que forçaram uma análise e preocupação rápida para resolução do mesmo.

O projeto tornou-se importante, isso porque apresentaram de forma positiva falhas e erros, o que consequentemente exigiu dos integrantes da equipe uma abordagem ampla e cuidadosa do caso. Buscando soluções aplicáveis ao problema em livros, páginas virtuais e consultas a profissionais acadêmicos da área.

Com o projeto finalizado, todas as funções do toldo foram executadas, como abertura e fechamento, impressão do andamento em display LCD, e funções do controle remoto, com sensor de infravermelho. Foi apresentado para toda a classe, onde obtivemos sucesso no desenvolvimento do projeto, sendo assim aprovado por todos, inclusive pelo diretor do curso e, professor Afonso Miguel.

(10)

ENG. COMPUTAÇÃO TUDO SECO 10 | P á g i n a 11. Referência  http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-sensor-de-chuva-com-arduino  Acesso em 04/04/2013.  http://engenheirando.com/arduino/displaylcd/  Acesso em 24/04/2013.  http://playground.arduino.cc/Code/InfraredReceivers  Acesso em 07/05/2013.  http://www.youtube.com/watch?v=-kVe9zkpkFI  Acesso em 10/05/2013.  http://www.arduino.cc/en/Tutorial/Pushbutton  Acesso em 26/05/2013.

(11)

ENG. COMPUTAÇÃO TUDO SECO 11 | P á g i n a 12. Glossário

Buzzer - Beeper. Dispositivo de sinalização sonora, utilizado em eletrônica. composta de 2 camadas de metal e uma camada interna de cristal piezoelétrico.

LED - Diodo emissor de luz, ou do inglês Light Emitting Diode. Utilizado em eletrônica para sinalização visual.

Circuito - Circuito elétrico. Ligação de elementos elétricos de tal forma que forneça pelo menos um caminho fechado para a corrente elétrica.

VCC - Voltagem Corrente Contínua. Sigla utilizada para denominar o ponto de maior potencial do circuito.

GND - Ground (do inglês). Terra. Sigla utilizada para denominar o ponto de menor potencial do circuito.

Fim-de-curso - Sensor de toque. Dispositivo mecânico responsável por indicar ao controlador a interrupção do movimento.

Arduino - Plataforma de prototipagem eletrônica de hardware livre, projetada com um micro controlador ATmega328. É programado com uma linguagem de

programação própria baseada na linguagem C.

CI - Circuito Integrado. Circuito eletrônico miniaturizado.

Motor de passo - dispositivo eletromecânico que converte pulsos elétricos em movimentos mecânicos que geram variações angulares discretas.

Placa de Fenolite: É uma placa de plástico com cobre em uma de suas superfícies, é utilizada para a impressão de circuitos.

(12)

ENG. COMPUTAÇÃO TUDO SECO 12 | P á g i n a 13. Anexos

13.1. Imagens

13.1.1. Esboço do projeto feito pelo SolidWorks .

(13)

ENG. COMPUTAÇÃO TUDO SECO 13 | P á g i n a 13.1.3. Display LCD com menus

(14)

ENG. COMPUTAÇÃO TUDO SECO 14 | P á g i n a 13.2. Código Fonte #include <IRremote.h> #include <LiquidCrystal.h> #define Luz_Fundo 7 int RECV_PIN = 7; LiquidCrystal lcd(13, 12, 5, 4, 3, 2); IRrecv irrecv(RECV_PIN); decode_results results; char state=1; int sensordechuva = 6; int FimCurso = 1; int left = 0; int right = 1; int stop = 9; int pins[4]; int pin [7]; int estados[4][8]; int tecla; int PegaTecla; int Estado; int i; int buttonState = 0; int buttonState2 = 0;

void Steps(int steps, int direction) {

if (direction == left){ for (int j=0;j<steps;j++){ for (int i=0; i<8;i++){ delay(5);

digitalWrite(pins[0],estados[0][i]); digitalWrite(pins[1],estados[1][i]); digitalWrite(pins[2],estados[2][i]); digitalWrite(pins[3],estados[3][i]);

(15)

ENG. COMPUTAÇÃO TUDO SECO 15 | P á g i n a }

} }

else if (direction == right){ for (int j=0;j<steps;j++){ for (int i=8; i>-1;i--){ delay(5); digitalWrite(pins[0],estados[0][i]); digitalWrite(pins[1],estados[1][i]); digitalWrite(pins[2],estados[2][i]); digitalWrite(pins[3],estados[3][i]); } } } else{ digitalWrite(pins[0],0); digitalWrite(pins[1],0); digitalWrite(pins[2],0); digitalWrite(pins[3],0); } }

void MudaEstado(int Estados){ switch(Estados){

case 0:

lcd.clear();

lcd.setCursor(0,0); // seta o cursor para: (coluna = 0, linha = 0) lcd.print(" INICIALIZANDO ");

/// Imprime Inicializando break;

case 1:

lcd.clear();

lcd.setCursor(0,0); // seta o cursor para: (coluna = 0, linha = 0) lcd.print("SELECIONE O MODO");

lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo lcd.print(" 1-AUT 2-MAN");

break; case 2:

(16)

ENG. COMPUTAÇÃO TUDO SECO 16 | P á g i n a lcd.clear();

lcd.setCursor(0,0); // seta o cursor para: (coluna = 0, linha = 0) lcd.print("SELECIONE O MODO");

lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo lcd.print(" 1-AUT 2-MAN");

/// Imprime o menu MAIN break;

case 3:

lcd.clear();

lcd.setCursor(0,0); // seta o cursor para: (coluna = 0, linha = 0) lcd.print(" TUDO SECO ");

lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo lcd.print(" 1-MENU AUT");

break; case 4:

lcd.clear();

lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo lcd.print("FECHANDO ...");

break; case 5:

lcd.clear();

lcd.setCursor(0,0); // seta o cursor para: (coluna = 0, linha = 0) lcd.print(" TUDO SECO ");

lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo lcd.print(" 1-MENU AUT");

break; case 6:

lcd.clear();

lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo lcd.print("ABRINDO ...");

break; case 7:

lcd.clear();

lcd.setCursor(0,0); // seta o cursor para: (coluna = 0, linha = 0) lcd.print(" SELECIONE ");

lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo lcd.print("1-ABR 2-FEC 3-VL");

(17)

ENG. COMPUTAÇÃO TUDO SECO 17 | P á g i n a /// Imprime menu 7

break; case 8:

lcd.clear();

lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo lcd.print("ABRINDO ...");

/// Imprime menu 7 break;

case 9:

lcd.clear();

lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo lcd.print("FECHANDO ...");

/// Imprime menu 7 break;

} }

// Retorna 0 se nao ha tecla pressionada void control(){

if(irrecv.decode(&results)) {

long int decCode = results.value; switch (results.value) { case 16724175: PegaTecla=1; break; case 16718055: PegaTecla=2; break; case 16743045: PegaTecla=3; break; default: PegaTecla=0; break;

(18)

ENG. COMPUTAÇÃO TUDO SECO 18 | P á g i n a } irrecv.resume(); Serial.println(PegaTecla); } } void setup() { MudaEstado (0); Estado=0;

lcd.begin(16, 2); // Iniciando o objeto "lcd" de 2 linhas e 16 colunas pinMode(Luz_Fundo,OUTPUT); //define o pino como saída

digitalWrite(Luz_Fundo,HIGH); // Liga a luz do display. Serial.begin(9600); irrecv.enableIRIn(); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(11,OUTPUT); pins[0] = 8; pins[1] = 9; pins[2] = 10; pins[3] = 11; //4 pins, 8 states //PIN 0 int j = 0; estados[j][0] = 0; estados[j][1] = 0; estados[j][2] = 0; estados[j][3] = 0; estados[j][4] = 0; estados[j][5] = 1; estados[j][6] = 1;

(19)

ENG. COMPUTAÇÃO TUDO SECO 19 | P á g i n a estados[j][7] = 1; //PIN1 j = 1; estados[j][0] = 0; estados[j][1] = 0; estados[j][2] = 0; estados[j][3] = 1; estados[j][4] = 1; estados[j][5] = 1; estados[j][6] = 0; estados[j][7] = 0; //PIN2 j = 2; estados[j][0] = 0; estados[j][1] = 1; estados[j][2] = 1; estados[j][3] = 1; estados[j][4] = 0; estados[j][5] = 0; estados[j][6] = 0; estados[j][7] = 0; //PIN3 j = 3; estados[j][0] = 1; estados[j][1] = 1;i, estados[j][2] = 0; estados[j][3] = 0; estados[j][4] = 0; estados[j][5] = 0; estados[j][6] = 0; estados[j][7] = 1; pinMode(sensordechuva,INPUT); pinMode(FimCurso,INPUT);

(20)

ENG. COMPUTAÇÃO TUDO SECO 20 | P á g i n a } void loop(){ control(); switch(Estado){ case 0: if(FimCurso == 0){

// Da um passo do motor para abrir Steps(50,right); Steps(0,stop); } else { MudaEstado(1); Estado=1; } break; case 1: tecla=PegaTecla; if(tecla==1){ MudaEstado(3); Estado=3; } if(tecla==2){ MudaEstado(7); Estado=7; } break; case 2: tecla=PegaTecla; if(tecla==1){ MudaEstado(5); Estado=5; } if(tecla==2){ MudaEstado(7);

(21)

ENG. COMPUTAÇÃO TUDO SECO 21 | P á g i n a Estado=7; } break; case 3: tecla=PegaTecla; if (tecla==1){ MudaEstado(1); Estado=1; } if (sensordechuva == 1){ MudaEstado(4); Estado=4; } break; case 4:

//Da x passos no motor para fechar if (FimCurso == 0){ Steps(50,left); Steps(0,stop); } else{ MudaEstado(5); Estado=5; } break; case 5: tecla=PegaTecla; if (tecla==1){ MudaEstado(2); Estado=2; } if (sensordechuva == 1){ MudaEstado(6); Estado=6; } break; case 6:

(22)

ENG. COMPUTAÇÃO TUDO SECO 22 | P á g i n a if(FimCurso == 1){

// Da um passo do motor para abrir Steps(50,right); Steps(0,stop); } else{ MudaEstado(3); Estado=3; } break; case 7: tecla=PegaTecla; if (tecla==1){ MudaEstado(8); Estado=8; } if (tecla==2){ MudaEstado(9); Estado=9; } if (tecla==3){ MudaEstado(0); Estado=0; } break; case 9:

//Da x passos no motor para fechar if (FimCurso == 1){ Steps(50,left); Steps(0,stop); } MudaEstado(7); Estado=7; break; case 8: if(FimCurso == 1){

(23)

ENG. COMPUTAÇÃO TUDO SECO 23 | P á g i n a Steps(50,right); Steps(0,stop); } else { MudaEstado(7); Estado=7; } break; } delay(50); }

(24)

ENG. COMPUTAÇÃO TUDO SECO 24 | P á g i n a 14. Maiores Informações

14.1. Alunos

 Felipe Sielski Romualdo de Oliveira o felipesielski@hotmail.com

 Gustavo Coelho Arantes o gustavo.rgjd@hotmail.com  Lucas Brehm Ronnau

o lucas.ronnau2@hotmail.com  Paulo Gustavo Zanese

o paulo_gz@hotmail.com

14.2. Professores

 Afonso Ferreira Miguel

o http://www.afonsomiguel.com  Ivan Jorge Chueiri

Referências

Documentos relacionados

•  Implementar e regularmente fortalecer padrões. •  Estabelecer e harmonizar procedimentos de testes para eficiência veicular. •  Impostos sobre veículos e combustível

Para dar conta de tal objetivo, aplicamos questionários e realizamos entrevistas biográficas com tais profissionais, com o intuito de observar tanto as condições objetivas

A pró-reitoria de graduação sabe que o resumo da planilha de notas é válido devido ao fato de coordenador ter mandado o mesmo (portanto o coordenador deu as notas como válida)

JP – Eu não gosto de confusões…isto não me está a agradar muito, estas coisas acabam sempre mal…ainda acabo por ficar no Porto em casa da minha Tia…!. Rita Eufórica,

A Comissão de Assuntos Econômicos, diante do lamentável acidente com sete vítimas fatais, ocorrido no dia 12 de janeiro último na construção da Estação Pinheiros da Linha 4

Entre os artigos utilizados para o estudo, cinco deles (52%) apontam o Potencial Evocado Auditivo de Longa Latência (PEALL) como principal exame utilizado para o

VIÇOS EDUC A TIV OS D A CUL TURA 2011-2012 C ASA DE C AMILO – MUSEU CENTRO DE ESTUDOS ■ Caminhada Trilho da Cangosta do Estêvão OBJETIVOS ▪ Dar a conhecer um

Quer dizer também que, para o homem, mais vale ter cortada uma das mãos, antes que servir essa mão de instrumento para uma ação má; ficar privado da vista, antes que lhe servirem