• Nenhum resultado encontrado

RESUMO. Palavras-chave: braile, display braile, elevador, display em elevadores.

N/A
N/A
Protected

Academic year: 2021

Share "RESUMO. Palavras-chave: braile, display braile, elevador, display em elevadores."

Copied!
27
0
0

Texto

(1)

RESUMO

O projeto iFinger, referente ao quarto período do curso de Engenharia de Computação da Pontifícia Universidade Católica do Paraná, propõe o desenvolvimento de um display braile com o propósito de acoplamento a elevadores, para que o mesmo exiba o andar correspondente de forma dinâmica.

(2)

SUMÁRIO 1 INTRODUÇÃO ... 3 2 OBJETIVOS ... 4 2.1 OBJETIVO GERAL ... 4 2.2 OBJETIVOS ESPECÍFICOS ... 4 3 MATERIAIS UTILIZADOS ... 5 4 DESCRIÇÃO GERAL ... 6 4.1 HISTÓRIA DO PROJETO ... 6 4.1.1 Eletrônica ... 7 4.1.2 Eletro-Mecânica ... 8 4.1.3 Software ... 10 5 CIRCUITOS ELÉTRICOS ... 11 5.1 Comunicção I²C ... 11 5.2 Display de 7 segmentos ... 13 5.3 Placa do Arduino ... 14 5.4 Alimentação ... 15

5.5 Controle do display braile eletromagnético ... 15

6 CÓDIGO FONTE ... 16

7 PROBLEMAS ENCONTRADOS ... 23

8 CONCLUSÃO ... 24

9 REFERÊNCIAS ... 25

(3)

1 INTRODUÇÃO

O projeto iFinger tem como proposta a adequação da sinalização dos elevadores atuais adicionando um display braile que terá como função única a exibição do andar em que o elevador se encontrar.

O diferencial da proposta do grupo é a inovação, pois até o momento não foi possível verificar nada parecido no mercado além da possibilidade de uma maior inclusão social dos deficientes visuais.

(4)

2 OBJETIVOS

Para uma boa compreensão do projeto é necessário conhecer suas principais características e todos os requisitos que o mesmo deverá atender. 2.1 OBJETIVO GERAL

Desenvolver um projeto para os programas de aprendizagem das disciplinas de Física IV, Resolução de Problemas em Engenharia II e Sistemas Digitais II que consista em um display braile capaz de informar ao usuário o andar em que o elevador se encontra.

2.2 OBJETIVOS ESPECÍFICOS

Abaixo serão listados os objetivos que regeram o desenvolvimento do projeto:

 Desenvolver um modelo de atuador eletromagnético;

 Agrupar quatro atuadores eletromagnéticos para formar o display;  Desenvolver tabela de conversão numérica para braile;

 Confeccionar circuito e software de controle do display;

 Criar um painel com oito botões, oito LEDs e adicionar o display ao conjunto para simular um painel interno de elevadores.

 Desenvolver circuito de leitura dos botões e escrita nos respectivos LEDs;

(5)

3 MATERIAIS UTILIZADOS  1 Arduino Nano;  4 relés de 12V;  13 transistores BC548;  1 LM7805;  2 capacitores cerâmicos de 100nF;  1 capacitor eletrolíticos de 100uF;  1 capacitor eletrolíticos de 470uF;  4 diodos 1N4007;  4 resistores de 1kΩ;  9 resistores de 10kΩ;  8 resistores de 4.7kΩ;  10 resistores de 220Ω;  7 resistores SMD 0603 330Ω;

 8 LEDs de 3mm, azuis de brilho difuso;  2 LEDs de 3mm, azuis de alto brilho;  1 Conector Jack;

 2 Circuitos integrados PCF8574;  1 Circuito integrado 74HC164  2 Placas universal 5x7cm;  Barra de pinos reta;

 Barra de pinos 90º;

 Placa virgem de composite;  8 chaves push button;  1 placa de acrílico de 6mm;  2 placas de madeira de 10mm;  1 Display 7 segmentos;  Papel Contato;  Adesivos encomendados;  Fonte linear de 12V;  Fonte chaveada de 5V;  1 Buzzer contínuo de 3V;  6 Parafusos;  8 pinos de plástico;

(6)

4 DESCRIÇÃO GERAL

4.1 HISTÓRIA DO PROJETO

Inicialmente a ideia do projeto foi de criar um display braile sem aplicação imediata, algo comparável a um display de 7 segmentos, mas para fins educativos seria programado a receber instruções via documentos de texto ou algo similar. Seguindo a sugestão do professor Afonso o grupo decidiu desenvolver este protótipo e aplica-lo a elevadores, onde serviria de sinalização para deficientes visuais que então poderiam saber o andar em que o elevador se encontraria.

Após revisar e estipular os conceitos do projeto o mesmo foi oficializado em forma de plano de trabalho e entregue ao professor da disciplina de Resolução de Problemas em Engenharia II como proposta de trabalho para o semestre.

(7)

4.1.1 ELETRÔNICA

Para desenvolver a parte eletrônica do projeto foi inicialmente analisado o que seria necessário controlar no projeto, para isto foi criado um diagrama de blocos, como mostrado na figura 1, e verificado quantos pinos de controle seriam necessários. Em um primeiro momento, foi verificado que seriam necessários utilizar 29 pinos, e o Arduino Nano possui apenas 14 portas digitais e 8 analógicas, portanto foi discutidas as opções disponíveis para reduzir o numero de pinos utilizados.

Figura 1. Diagrama de blocos

O primeiro lugar em que poderíamos reduzir o numero de portas utilizadas seria no painel do elevador, este iria possuir oito botões e oito leds, o que representava a maior parte do numero de pinos da contagem inicial. As soluções analisadas foram a utilização de um registrador paralel-in serial-out para a leitura dos botões e um serial-in paralel-out para a escrita nos leds, esta solução iria reduzir para 5 o numero de pinos utilizados. A outra solução analisada foi a utilização de circuitos integrados de comunicação via protocolo I²C, esta solução utilizaria apenas 3 portas do microcontrolador e era muito mais simples de ser implementada que a primeira. Foi escolhido, portanto a utilização da comunicação I²C, devido a facilidade de implementação e também

(8)

por ser mais tolerante a falhas, solução esta já representada do diagrama de blocos da figura 1.

Apenas com a solução para redução dos pinos dos botões e leds já seria suficiente para o projeto. Seria interessante, porém, possuir portas sobrando no Arduino caso fosse necessário implementar algo a mais no projeto, portanto foi utilizado um registrador serial-in paralel-out para utilizar o display de sete segmentos, reduzindo o numero de portas utilizadas por este circuito de quatro para apenas duas.

A alimentação do projeto é realizada a partir de uma fonte linear de 12V, a tensão de 12V é utilizada para alimentar o display braile eletromagnético. Para o resto do projeto é utilizada um tensão de 5V, esta é obtida a partir da regulação da tensão de 12V para 5V por meio do regulador de tensão linear LM7805.

4.1.2 ELETRO-MECÂNICA

Este projeto possui poucas partes mecânicas, porém estas são o foco do projeto, que são os dois modelos de display braile criados durante o projeto. O primeiro utiliza quatro servos motores fixados embaixo de uma placa de acrílico com quatro furos no centro, como pode ser observado na figura 2. Os pinos do display estão fixados a uma cruzeta do servo motor, e estes podem ser levantados ou abaixados variando o ângulo do servo motor, sendo possível criar o caractere braile referente ao andar em que o elevador se encontra.

(9)

Figura 2. Display braile com servos motores

O outro display braile construído é constituído da estrutura interna de quatro reles. Foi fixado um “braço” sobre a parte móvel do rele de forma que o seu movimento seja ampliado e sobre a sua extremidade está colado o pino. Isto foi feito para todos os quatro relés e estes estão fixados sobre uma placa de protótipo, com as conexões elétricas feitas e também foi colocado 4 diodos de proteção. Esta estrutura esta fechada por uma caixa de mdf, como pode ser visto da figura 3.

(10)

4.1.3 SOFTWARE

A primeira etapa tomada para o desenvolvimento do software foi criar uma tabela de conversão de decimal para braile, armazenando em um vetor binários que correspondentes às portas do Arduino que seriam ativadas. O índice do vetor corresponde ao decimal e o binário ao caractere braile.

O funcionamento completo do software consiste em aguardar um comando do usuário relativo ao andar que o mesmo deseja acessar, em seguida o mesmo entra num ciclo de subida ou descida. Se estiver em um ciclo de subida ele verifica apenas andares acima do atual para realizar ou não paradas, se estiver em um ciclo de descida faz o mesmo porém com andares abaixo do atual.

Para a apresentação do projeto também foi implementada uma função que de a cada 15 segundos ociosos selecionava um andar aleatório.

(11)

5 CIRCUITOS ELÉTRICOS

Nesta seção serão apresentados os esquemas, boards e fotos de todos os circuitos utilizados no projeto.

5.1 Comunicação I²C

Figura 4. Circuito de saída de dados

(12)

Figura 6. Placa de comunicação I²C, vista superior

(13)

5.2 Display de 7 segmentos

Figura 8. Circuito de escrita no display de sete segmentos

(14)

5.3 Placa do Arduino

Figura 10. Circuito de comunicação com o arduino

(15)

5.4 Alimentação

Figura 12. Circuito de alimentação

5.5 Controle do display braile eletromagnético

(16)

6 CÓDIGO FONTE #include <I2C.h> #include <Servo.h> #define LEITURA 32 #define ESCRITA 33 #define servo1 3 #define servo2 5 #define servo3 6 #define servo4 9 #define clockS7 7 #define dataOUT 8 #define LED 10 Servo A, B, C, D; volatile int leitura=0;

volatile int dado=255, aux = 0; long int time=millis(), tempo; int lastLeitura=0;

int rele[4] = {13,4,12,11};

int andar = 0;

boolean subindo = true;

int conv7[10] = {B1111110, B0110000, B1101101, B1111001, B0110011, B1011011, B1011111, B1110000, B1111111, B1111011};

(17)

int cont=0; byte tabBraille[10]={0xE, 0x1,0x3,0x5,0xD,0x9,0x7,0xF,0xB,0x6}; void setup(){ A.attach(servo1); B.attach(servo2); C.attach(servo3); D.attach(servo4); A.write(1); B.write(181); C.write(183); D.write(1); I2c.begin(); Serial.begin(9600); pinMode(clockS7, OUTPUT); pinMode(dataOUT, OUTPUT); pinMode(LED, OUTPUT); pinMode(A0, OUTPUT); digitalWrite(clockS7, LOW); digitalWrite(LED, HIGH); display7(andar); printLED();

(18)

attachInterrupt(0, readFloor, FALLING); } int newFloor; void loop(){ int j; if(subindo){

for(j=andar;j<8 && ((dado&0x01<<j)!=(0x01<<j));j++); if(j==8)

subindo = false; else{

for(lastFloor; lastFloor<andar*(255/7); lastFloor++){ Serial.print(char(lastFloor)); delay(50); } Braille(andar); display7(andar); if(andar!=j) andar++; else{ dado = dado&(~(0x01<<j)); printLED(); display7(andar); delay(250); Som(); delay(2000);

(19)

Braille(andar); }

} }

if(!subindo){

for(j=andar;j>-1 && ((dado&0x01<<j)!=(0x01<<j));j--); if(j==-1)

subindo = true; else{

for(lastFloor; lastFloor>andar*(255/7); lastFloor--){ Serial.print(char(lastFloor)); delay(50); } Braille(andar); display7(andar); if(andar!=j) andar--; else{ dado = dado&(~(0x01<<j)); printLED(); display7(andar); delay(500); Som(); delay(2000); Braille(andar); }

(20)

}

if(dado==0 && (millis()-time)>=15000){ do{ newFloor=random(8); }while(newFloor==andar); dado = 1<<newFloor; printLED(); } } } void Som(){ delay(250); tone(A0,660,100); delay(175); tone(A0,660,100); delay(250); } void readFloor(){ I2c.read(LEITURA,0,0x00); leitura = I2c.receive(); tone(A0,660,100); delay(125);

if(leitura & dado)

dado = dado & ~leitura; else

(21)

printLED(); } void printLED(){ aux = dado; aux = (aux&0xF0)|((aux&0x08)>>3)|((aux&0x04)>>1)|((aux&0x02)<<1)|((aux&0x01)<< 3); I2c.write(ESCRITA, 0x00, aux); }

void display7(int numero){ numero = conv7[numero%10];

digitalWrite(clockS7, LOW);

for(int y=0 ; y<7 ; y++){

digitalWrite(dataOUT, numero&1); digitalWrite(clockS7, HIGH); digitalWrite(clockS7, LOW); numero = numero>>1; } }

void Braille(int num){ num = tabBraille[num]; if(num & B00000001){ A.write(11);

(22)

} else{ A.write(1); digitalWrite(rele[0],LOW); } if(num & B00000010){ B.write(172); digitalWrite(rele[1],HIGH); } else{ B.write(181); digitalWrite(rele[1],LOW); } if(num & B00000100){ C.write(170); digitalWrite(rele[2],HIGH); } else{ C.write(180); digitalWrite(rele[2],LOW); } if(num & B00001000){ D.write(12); digitalWrite(rele[3],HIGH);

(23)

} else{ D.write(1); digitalWrite(rele[3],LOW); } time = millis(); } 7 PROBLEMAS ENCONTRADOS

PROBLEMAS APRESENTADOS SOLUÇÕES ENCONTRADAS

O primeiro e maior problema encontrado foi a construção do atuador magnético, diversos modelos foram testes e ao fim um bom modelo foi construído, porém sua complexidade de confecção atribuía ao mesmo um tamanho exagerado e imprecisões inesperadas.

Utilizar o sistema mecânico de relés apenas adicionando uma extensão plástica para alcançar um movimento mais amplo.

Insuficiência de portas do Arduino para executar todas as funções necessárias.

Utilizar o circuito integrado PCF8574, para realizar, através do protocolo I²C, a leitura dos botões correspondentes aos andares e respectiva escrita nos

LEDs correspondentes,

economizando 16 portas e um registrador para fazer a comunicação entre o Arduino e o display de 7 segmentos.

(24)

8 CONCLUSÃO

Aplicando os conhecimentos obtidos até o presente momento foi possível alcançar os objetivos traçados para o projeto. A principal proposta do projeto, expressa pela disciplina de RPE, foi percebida de maneira extremamente clara, visto que diversas vezes o grupo se deparou com problemas diferentes dos propostos em sala de aula e, ao buscar soluções, compreendeu os problemas cotidianos de um profissional da área de engenharia.

Diferente do semestre passado, foi possível perceber uma maior maturidade e naturalidade ao lidar com um projeto, as divisões de atividades ocorreram de forma natural e espontânea, o grupo se envolveu e pode perceber que os resultados foram extremamente satisfatórios.

(25)

9 REFERÊNCIAS

Processing. Disponível em: http://processing.org/;

Dimensão da Célula Braille. Disponivel em:

http://www.gesta.org/braille/dimensao.htm;

Arduino I2C Master Library - UPDATED. Disponivel em:h ttp://dsscircuits.com/articles/arduino-i2c-master-library.html;

Usando i2c com Arduino. Disponivel em:

http://labdegaragem.com/profiles/blogs/usando-i2c-com-arduino?id=6223006%3ABlogPost%3A87731&page=2;

Tutorial sobre PCF8574 e como utilizá-lo com Arduino. Disponivel em:

http://labdegaragem.com/profiles/blogs/tutorial-sobre-pcf8574-e-como-utiliz-lo-com-arduino.

(26)

10 GLOSSÁRIO

CI - Circuito Integrado. Circuito eletrônico miniaturizado.

PCF8574 - CI que realiza comunicação serial com um microcontrolador, a partir do protocolo I²C.

Buzzer - Beeper. Dispositivo de sinalização sonora comumento utilizado em eletrônica.

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

Push-button - Botão. Dispositivo utilizado para cortar ou permitir a passagem de corrente elétrica.

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.

Board - Nome dado ao desenho a ser impresso na na placa de fenolite.

Resistor de pull Down - Resistor utilizado em circuitos elétricos para garantir o estado lógico "baixo".

Capacitor - Dispositivo utilizado para armazenar energia temporariamente. 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 microcontrolador ATmega328P. É programado com uma linguagem de programação própria baseada na linguagem C.

PCI/PCB - Placa de circuito impresso ou, do inglês, Printed circuit board. Placa contendo o circuito impresso em uma superfície de cobre.

EagleCAD Soft - Software utilizado para o desenho de circuitos a serem impressos.

Shield - Placas que podem ser plugadas no topo do arduino, extendendo suas funções.

(27)

Linguagem de Programação - Método padronizado para comunicar isntruções para um computador. Conjunto de regras sintáticas e semânticas usadas para definir um programa de computador.

Função - Desvio de código que agrupa comandos que são utilizados diversas vezes durante o programa

Referências

Documentos relacionados

Se o grupo tentar usar a escada que leva até o próximo nível da masmorra, eles disparam uma armadilha que começará a movimentar engrenagens que fará com que os degraus comecem

Deste modo a educação é vista como um campo de conhecimento de pleno direito, com objectivos, objectos e métodos muito diferentes dos da Matemática, mas igualmente legítimos

50% das vagas de cada curso/turno, serão destinadas aos candidatos que optarem por essa forma de ingresso e que realizem sua inscrição pelo site

Quando a(o) CONTRATANTE ou seu responsável não fizer declara- ções verdadeiras, omitindo informações em prejuízo da PRODENT; 3. Decretação de falência, deferimento de

para o eixo do motor Longitud máx.. As dimensões do flange de acionamento específicas do motor podem ser consultadas no Tec Data Finder para cada motor em específico

Passagem aérea nacional - Passagem para Roberto Lyra trecho de ida e volta Maceio - Manaus - Maceio dia 21/08/15 1,00 UNID.

Nesta parte, será pedido aos alunos que desenhem um diagrama que explicite a formação e possíveis evoluções das estrelas, bem como escrevam, em um parágrafo,

 Recebendo leite de vaca desde os primeiros meses, iniciar os sucos de frutas entre 2 e 3 meses para aporte de vitamina C (ou a critério do nutricionista ou