domingo, 29 de junho de 2014

Acessibilidade Portão eletrônico interface Audio/Visual



Para iniciarmos o projeto, compramos um interfone analógico convencional, desses que se encontra facilmente em qualquer loja de elétrica. Escolhemos esse modelo por ser barato, fácil de encontrar, o mais comum nas residências, além disso, os circuitos são mais simples para fazer as previstas modificações. Com o interfone em mãos, fizemos a instalação normal seguindo o manual. Tudo funcionou perfeitamente. A partir disso iniciamos a primeira etapa do projeto, que era identificar em que pontos do circuito original teríamos que atuar para fazer um controle avançado. Ficou definido que teríamos três pontos de controle, o estado do botão de chamada do interfone, o controle para acionar a solenoide da tranca que abria a porta e além disso, o controle do estado do gancho do fone.


  • O estado do botão de chama: esse controle é importando pois podemos identificar por meio de um microcontrolador se temos uma chamada, a partir disso podemos processar os dados e tomar as devidas ações, como por exemplo enviar o sinal via rádio frequência para acionar o microcontrolador da pulseira. 
  • O controle da solenoide: simulamos o pressionar de um botão para enviar o sinal para abrir o portão. Com isso podemos simular o apertar por meio de um microcontrolador e abrir o portão a distância, ou melhor, em casos de emergência.
  • Controle do gancho: teríamos que controlar esse botão, pois existe a possibilidade do usuário conversar através do seu celular com quem está no interfone, para isso acontecer temos que simular o fone original fora do gancho.

Ficou definido, que em todas as entradas/saídas de nosso microcontrolador que comunicam com o circuito do interfone utilizariam fotoacopladores. Dessa forma isolaríamos os dois circuitos eletricamente, mantendo uma comunicação e controle entre ambos. O isolamento é garantido porque não há contato elétrico, somente um sinal luminoso. O seu funcionamento é simples: há um emissor de luz (geralmente um LED) e um receptor (fototransistor). Quando o LED está aceso, o fototransistor responde entrando em condução.Com o LED apagado o fototransistor entra em corte. Sabendo que podemos alterar a luminosidade do LED, obtemos assim diferentes níveis na saída. Em nosso circuito de ligação entre o microcontrolador a o circuito do interfone estamos utilizando fotoacopladores 4N25, abaixo está o esquemático do circuito:





 Com as ligações feitas, agora podemos controlar por meio do microcontrolador nosso interfone. Assim movemos para o próximo passo. A segunda etapa do projeto consiste além de controlar as funções do interfone pelo microcontrolador, agora temos que processar esses dados e tomar as diferentes ações. Vamos começar com o botão de chamada. O botão de chamada do interfone é monitorando constantemente, para fazer isso sem ocupar nosso microcontrolador, estamos utilizando a função de interrupção. As interrupções são muito utilizadas no mundo dos microcontroladores e dos microprocessadores. Um exemplo típico são nossos microcomputadores PC. Sempre que pressionamos uma tecla, uma interrupção é gerada para o microprocessador, solicitando o tratamento desta. Assim, o PC não é obrigado a varrer constantemente o teclado em busca de uma tecla. A principal vantagem está na otimização do código (programa). Com o uso correto das interrupções é possível executar “algumas” tarefas quase que ao mesmo tempo. É possível, por exemplo, aguardar uma tecla e um dado do canal de comunicação, sem a necessidade de realizar uma varredura em ambos. Se isso não fosse feito, correríamos o risco de perder uma das “entradas”. Ao estar tratando a tecla, o dado poderia estar disponível no canal de comunicação, mas como nenhuma varredura foi realizada naquele momento, o byte estaria perdido.

Sendo assim, configuramos nosso pino de interrupção do microcontrolador com o seguinte trecho da programação:

attachInterrupt(0, b_interfone, FALLING); 

Isso faz com que sempre que haja um sinal na porta, e que ele esteja mudando de Alto(+5V) para Baixo(GND), dispare nossa função de interrupção. Aleguem pressionou o botão de chamada no interfone. Assim que detectada a interrupção, em um outro trecho do programa sinalizamos um flag como verdadeiro, para enfim ser tratado no loop de execução normal do microcontrolador: Com o flag ativo, entramos na função que trata esses dados, enviando para tela do computador a mensagem de chamada no interfone, e chamando uma outra função que aciona nosso transmissor de rádio frequência:


Com o flag ativo, entramos na função que trata esses dados, enviando para tela do computador a mensagem de chamada no interfone, e chamando uma outra função que aciona nosso transmissor de rádio frequência:




É isso ai! até o próximo post destrinchando a conexão RF e muito mais.