• Nenhum resultado encontrado

Noções e restrições da implementação

5.4 Implementação da atuação

5.4.2 Noções e restrições da implementação

Uma das grandes métricas da janela é o low-power. O STM300 tem méto- dos em que minimiza os consumos desabilitando os seus próprios periféricos do microcontrolador através do modo “sleep” bem como os componentes do módulo de controlo. O ATTiny 1634 tem também os seus métodos. Existem 4 modos de diminuição de consumo de energia. Diferem uns dos outros pela quantidade de energia que consomem, resultado da habilitação de diferentes periféricos do micro- controlador. No caso da janela Climawin é utilizado o modo que menos energia consome, chamado de “Power-Down”. Neste modo, apenas a comutação do estado dos pinos, ou interrupção externa, o temporizador “Watchdog” e os módulos TWI, USART e USI (“Universal Serial Interface”) podem tirar o microcontrolador deste estado.

Os módulos de “Watchdog”, USART e USI não são utilizados. O primeiro porque a sua utilização traduziria-se em maiores consumos. Os outros dois porque são desnecessários para o módulo de atuação. Restam as interrupções externas e o TWI.

Tendo em conta que o atuador deve começar a agir quando recebe uma ordem do módulo de controlo, poder-se-ia concluir que o módulo TWI, responsável pela comunicação, iniciaria todo o processo e “acordaria” o microcontrolador. O módulo TWI tem uma opção programável para habilitar uma interrupção de “Address match”. Quer isto dizer que quando o módulo detetasse um endereçamento da comunicação I2C para si mesmo, este interromperia o microcontrolador. Acontece

que, por razões aplicacionais, esta solução seria inviável. O ATTiny, enquanto está a atuar nas válvulas dificilmente recebe um comando por parte do mestre. Isto porque as válvulas necessitam apenas de um pequeno pulso temporal para serem movidas. No entanto, a persiana pode demorar uns razoáveis segundos a mover-se pelo que é bastante plausível que o ATTiny possa receber um outro comando. Isto implicaria alterar a biblioteca do TWI e misturá-la com o nível aplicacional, que, neste caso, seria alterar uma variável que indicasse que existia um novo comando prestes a ser recebido. A biblioteca desenvolvida para o TWI abstrai o programador do hardware, é apenas necessário ler ou escrever para o barramento I2C, daí não ser conveniente alterar a sequência de código na interrupção do TWI.

Esta biblioteca será detalhada mais adiante. Outra explicação para esta solução foi o facto de os pinos do STM300 terem um comportamento irregular quando este envia telegramas Enocean através do seu módulo RF e também quanto entra em

modo “sleep”. Verificou-se que os pinos definidos como saídas do microcontrolador eram puxadas ao nível baixo quando eram enviados telegramas, e isto é uma condição grave para o I2C. Este protocolo necessita de ter os níveis das linhas

altas quando não estão a ser utilizadas, e a comutação das linhas para o nivel baixo inicia a comunicação. No STM300, como foi implementado através de bit- banging esta situação provoca várias interferências nos dispositivos escravos. No caso dos sensores não há problema, pois estes são desabilitados quando não são utilizados, através da alimentação, para poupar energia. Mas o ATTiny deve ser sempre alimentado para atuar na persiana.

Posto isto, a interrupção externa foi a solução indicada responsável por acor- dar e indicar, ou se já estiver acordado, apenas indicar, que o módulo de atuação está prestes a receber um novo comando da tabela 5.1. Assim sendo, o módulo de controlo deve então enviar um sinal ascendente para um determinado pino do ATTiny para avisar ou alertar o início de uma nova sequência de comunicação.

Dois pinos do ATTiny foram configurados para atuar no motor da persiana. Estes pinos são a entrada da ponte “H” que tem as saídas diretamente ligadas ao motor. Quatro pinos estão ligados a quatro outras pontes “H”, duas para cada aba das válvulas. Estas pontes “H” estão divididas em dois circuitos integrados idênticos, ou seja, cada um tem duas pontes, e cada um está dedicado a uma aba da válvula. São necessárias duas pontes para cada aba porque é necessária bastante corrente para mover as mesma. As saídas das duas pontes “H” em cada um dos circuitos integrados está ligada ao mesmo ponto, que por sua vez estão ligados aos terminais de uma das abas da válvula. Só esta junção de duas pontes “H” permite energizar as solenoides, porque uma ponte apenas não conseguia fornecer corrente suficiente. Estes circuitos não têm como propósito movimentar um motor, até porque as suas saídas só estarão habilitadas durante 100ms, o tempo necessário para atuar nas válvulas. Servem somente para dar um pulso com elevada potência energética. Quando o pulso é enviado no sentido para abrir ou levantar a aba, a solenoide retrai um pistão e a aba sobe. Por outro lado, se o pulso tiver o sentido contrário, a solenoide relaxa o pistão e a aba desce.

Em qualquer momento não pode funcionar mais que um dos circuitos das pontes “H”, quer sejam as das válvulas ou a da persiana, porque isso reflete-se num elevado consumo de corrente que a bateria da janela não pode fornecer, podendo até comprometer o correto funcionamento dos circuitos auxiliares.

5.4. Implementação da atuação

ups” da placa de circuitos. Esta saída habilita a ponte de 24v, as pontes das válvulas e também a alimentação do encoder. Desta forma o microcontrolador consegue limitar os consumos energéticos e habilitar os circuitos quando necessário, neste caso, quando move a persiana ou uma das válvulas.

Figura 5.3: Diagrama de blocos do pinout do microcontrolador do módulo de atuação

A figura 5.3 demonstra as ligações e o consequente campo de ação do AT- Tiny1634 colocado no módulo de atuação. Nenhuma das setas representa um barramento, isto é, todas as setas são apenas uma ligação e o sentido das mesmas representa a orientação dos pinos, isto é, se estão definidos como entrada e/ou saída. De destacar a comunicação I2C proveniente do módulo de controlo e o sinal

de “Wake”, com a mesma fonte, bem como o pino de habilitação dos circuitos, que é necessário ativar quando qualquer um dos componentes de atuação está a ser utilizado.