domingo, 30 de setembro de 2012

AAyWall Uma porta virtual baseada em Arduino para aspiradores IRobot Roomba. Parte1

Introdução

Roomba serie 500
Ha cerca de 3 anos, ganhamos de presente (Obrigado Michel) um aspirador IRobot Roomba Série Professional 500. O aspirador é maravilhoso e faz milagres. Possui programação para limpar automaticamente em determinados períodos, possui uma base inteligente que possibilita que ele retorne para ela automaticamente para carregar e alem do kit de manutenção ele vem com 2 portas virtuais que podem agir como faróis  autorizando ou não a passagem do aspirador para outros cômodos da casa.
IRobot Lighthouse

A porta virtual (que também pode agir como farol) é um dispositivo bem interessante. Ela emite um feixe de infravermelho invisível a olho nu que o robô "enxerga" e automaticamente para a sua jornada quando deparado com este feixe.

Ela também pode funcionar no modo de Farol(lighthouse) neste modo o robô limpa um ambiente por 20 minutos e após isto, localiza o farol para passar a limpar o próximo cômodo. O robô ao localizar o farol negocia com ele a sua passagem e pede para o farol desligar o seu facho infravermelho. Após a passagem o facho é religado. 

Este sistema de farol é bem inteligente, possibilitando o robô voltar para a sua base mesmo após passar por alguns farois.

Mais isto tudo tem um grande ponto negativo para nós pobres mortais brasileiros: o custo. Cada portinha destas custa nada menos que US$40,00 aqui. Para chegar aqui de forma legal este preço mais que dobra, fora o tempo de transito, liberação na alfandega, etc...

Como eu preciso de mais 3 portas virtuais alem das duas que vireram no Kit, eu optei por construir uma porta eu mesmo. Com base em alguns artigos na internet pude estudar o funcionamento da porta atual e desenvolver uma porta própria com um grande diferencial: preço.

Idéia

  • Aprofundar os meus conhecimentos em processadores AVR e Arduino;
  • Construir uma porta virtual de baixo custo;
  • A porta deverá ser pequena, sendo alimentada no máximo por 2 pilhas alcalinas AA;
  • A bateria deverá poder ser recarregável (1.2v) e deve durar pelo menos 2 meses;
  • Usar o mínimo de componentes possível;
  • Fazer um projeto fácil de replicar.

Desafios

Como funciona uma porta de verdade?

Após analisar algumas páginas WEB sobre o assunto como esta e esta outra, alem de diversas consultas ao google, cheguei a seguinte conclusao:

O robo fica andando a procura de um sinal infravermelho de 500hz modulado em uma onda portadora de 38khz. Para simular isto, precisamos misturar 2 frequencias diferentes. Quando o robo acha esta infravermelho ele automaticamente para e da marcha ré.

Para simular esta onde precisamos gerar pulsos com um intervalo de 26 microsegundos por 1 milisegundo, aguardar 1 milisegundo e repetir o processo.

Pensando em microcontroladores, se utilizar um com um clock de 1Mhz, facilitará bastante o projeto, pois os cálculos ficarão redondos, sem frações.

Escolha do circuito

Após pesquisa na internet por circuitos que pudessem atender a necessidade do projeto, identifiquei alguns circuitos bem simples utilizando 2 CIs timer 555, alguns capacitores e resistores que muito provavelmente atenderiam a demanda do projeto de uma porta simples. Mais eu queria utilizar um microcontrolador AVR para fazer. Alem do mais queria fazer alguns recursos adicionais como detecção de bateria fraca e configuração da intensidade do fecho infravermelho, no qual o processador me permitiria.

De início eu tinha a disposição 3 modelos de processadores:

Atmega328P, Attiny84 e Attiny85.

Para o projeto, precisamos de um processador capaz de operar em um nível de baixo consumo, com no minimo 3 portas lógicas de entrada e saída, e para facilitar a programação, se o mesmo tiver um oscilador interno de 1Mhz melhor ainda. O Attiny85, com 8Kb de memoria de programa possui todos os requisitos, e foi o escolhido.

Consumo de energia

Após um protótipo de código coloquei o robô para andar e apontei o treco para ele, e funcionou! Só que o meu protótipo estava rodando a 8Mhz e 5V. Consumindo nada menos que 14ma.

Comecei pensando em diminuir o dudy cicle do LED infravermelho, ou seja, o tempo que ele fica ligado, para diminuir o consumo, e consegui os seguintes resultados: 

8Mhz@5v 50% - 14ma
1Mhz@5v: 50% - 7mah
1Mhz@5v 25% - 6.6ma
1Mhz@5v 14% - 3.7ma

Pronto, pensei logo que a meta de 2 meses com 2 pilhas não seria alcançada. Foi quando comecei a ler e pensar em alternativas para diminuir o consumo de energia e achei os seguintes gráficos no datasheet do microcontrolador:



Isto me deu uma nova esperança. Corri, peguei 2 pilhas e fui fazer os mesmos testes rodando em pilhas, e fui direto para o melhor cenário possível:

[email protected] - 25% - 1.05 ma

1800 /1.05 / 24 = 71,24 dias

Agora sim. partindo-se do princípio que uma bateria recarregavel de baixo indice de descarga possui algo entre 1800-2000 mah, o circuito poderia rodar por algo em torno de 71 dias ou 2 meses e 10 dias!

E o melhor, quanto mais fraca a pilha, menos o circuito consome! Como o processador roda até o limite de 1.8v, isto não seria um problema.

O Circuito


Lista de compras:
Sigla Nome Modelo Digikey Part Number
IC1 AVR AtTiny85 ATTINY85V-10PU-ND
L1 Infrared Led 160-1029-ND
L2 Normal Led 751-1099-ND
R1 Resistor 1k
S1 Botão P8080SCT-ND
B1 Porta Baterias BC22AAW-ND


Eu acho que o quesito simplicidade foi alcançado. Um microcontrolador, 2 leds, sendo um infravermelho e um normal verde ou vermelho, um botão para configuração e duas pilhas. Nada que R$ 15 não resolvam.

O Código

Projeto do AVR Studio 6
Código para arduino

O Código é subdividido em 4 partes:

Configuração do duty-cycle (potencia do led infravermelho)


 A cada 20 segundos (ou configuração da variavel COUNTERVAL) o código de emissão do infravermelho é parado para verificação do botão de configuração. A consiguração é muito simples. basta deixar o botão pressionado.

2 piscadas no led de notificação indicam o inicio da rotina de configuração. Dai basta manter o botão pressionado até o numero de piscadas desejado:

1 piscada: - 7% de duty cycle,
2 piscadas - 15% ,
3 piscadas -  23%,
4 piscadas - 30%,
5 piscadas - 38%,
6 piscadas - 50%.

Ao soltar o botão, o valor é automaticamente armazenado na EEPROM, desta forma não há necessidade de reconfiguração na troca de pilhas.

Código de verificação de bateria fraca


Esta parte faz uma verificação a cada 80 segundos do nivel da bateria e o compara com um valor pre definido de 2.43 Volts. O meu avr faz uma leitura 0.05 volts a menos do real, o valor que eu realmente queria aqui é o de 2,49 volts.

A Rotina utiliza o comparador analógico do chip, bem como a sua referencia interna de 1.1volts (Bandgap) para tal. Isto não é muito bem documentado, foram necessárias varias tentativas e muitas buscas no google por "Bandgap Voltage Reference", mais o código funciona. E o melhor, sem mais componentes envolvidos.

2.49Volts, por que? Simples, ao analisar esta página, dentre outras, cheguei a conclusão de que 2.49 volts seria um bom ponto de corte para uma indicação de bateria fraca. Quando o circuito identificar bateria fraca, ele piscará o led de notificação uma vez a cada 20 segundos. A Bateria que pretendo utilizar é uma Sanyo Eneloop 2000, e o seu gráfico de descarga é o seguinte:


Loop de seleção da configuração

Esta parte do código apenas seleciona a cada 2 segundos qual a potencia escolhida e chama a rotina abaixo.

Se não tiver nenhuma potencia definida, ele escolhe o default de 23% de duty cycle.

Loop de formatação da onda (o mais importante)


Existe um loop deste para cada duty cycle. Esta é a parte mais importante do código  Eu utilizei o Atmel Avr Studio para efetuar a contagem das instruções do processador, e com isto determinar o numero correto de tempo entre cada operação. O loop primário roda 10000 vezes por 20 segundos, enquanto o loop secundário roda por 2 ms e o terciário por 1 ms em intervalos de 26 microsegundos  formando a onda descrita mais acima. Quanto mais alto for o valor de COUNTERVAL, menos o processador vai checar pelo botão e nível de bateria, pois ele ficará preso neste código.

A casa 20 segundos o código para a emissão do infravermelho por algo em torno de 1ms para efetuar estas outras rotinas. Acho que a probabilidade do robô passar nestes 1ms é bem pequena e não estou muito preocupado com isto.

Continuação

Este post continua com a Parte 2 - onde montarei o circuito em seu case definitivo, ensinarei a gravar o microcontrolador com um Arduino e testarei o alcance dos modos de operação do infravermelho.

domingo, 20 de maio de 2012

Luz noturna LED (LED night light)

Posto aqui um circuito muito simples de luz noturna utilizando apenas alguns componentes eletrônicos, 1 ou 2 leds e uma tomada tipo macho.

Lista de materiais:
  • 1 Plug de tomada macho;
  • 4 diodos (1n4007m ou similar);
  • 1 Resistor 100R;
  • 2 LEDs de alto brilho;
  • 1 ou 2 capacitores  (100k250v);
Ferramentas:
  • Ferro de solda;
  • Chave de fenda;
  • Alicate de bico fino;
  • Fio.
Esquema:

Observações:

Observe a polaridade dos Leds. Caso seja utilizado apenas  1 capacitor, o brilho será reduzido. Os capacitores são ligados em paralelo. Utilizei este capacitor, pois ele é amplamente encontrado em sucatas eletrônicas. Estes eu tirei de um filtro de linha velho.

Este circuito pode ser simplificado, removendo-se a ponte de transistores e colocando apenas um transistor em série com o LED e capacitor. Desta forma o brilho do LED será reduzido pela metade, pois ele irá receber apenas 1/2 onda da corrente alternada de entrada.

Fotos:
Visao frontal - os diodos estao atraz do capacitor inferior 


O plug é do tipo americano. Pode ser utilziado qualquer plug que caixa os componentes internos. 


As gatinhas aprovaram!

NEste, foram utilziados 2 led brancos de alto brilho.

A luz está mais para uma penumbra. O Consumo é muito baixo, quase nulo. 


terça-feira, 1 de maio de 2012

O Blog não está morto.

Recém criado e não tive tempo de atualiza-lo com o conteúdo que já tenho. Estive ultimamente trabalhando em um fork do projeto OpenEnergyMonitor, no qual tive que reescrever o código do zero para alcançar as minhas expectativas.

O Novo Firmware para o EmonTX está disponível no Github em https://github.com/pcunha-lab/emonTxFirmware/tree/master/emonTx_Interrupts A Nova versão inclui monitoramento contínuo usando interrupções, um novo formato de transmissão de dados  e configuração gravada na EEPROM.

Para maiores informações visite o site do projeto em http://openenergymonitor.org

Abraços,

domingo, 1 de abril de 2012

Por dentro do Wanf Mini Ammeter - WF-D02A

(Amperímetro, Wattímetro, ou Medidor de Energia, como preferir)

Ha um tempo atras eu comprei um medidor de energia Ching Lyng pelo Ebay, que me custou pouco mais de R$ 30. Com a necessidade de uma medição precisa para calibração do meu EmonTX, eu resolvi abrir o medidor para ver como ele é construído.

O medidor pode ser adquirido em diversos anúncios no Ebay e Amazon e Dealextreme (só que lá você pode esperar até 3 meses para receber o seu).

O Preço: US$ 9,90 a US$ 20. Uma bagatela!

Eu fiz diversas medições para validar se realmente o aparelho é preciso e o resultado foi bem interessante, minhas medições mostraram que ele realmente é um bom produto mantendo uma precisão em torno de 2% ( a etiqueta diz 1% mais para mim pelo preço está ótimo!). As medições que fiz serão fruto de outros posts...

Fotos

Cabe na palma da mão...


Recém aberto.


Um close no CT ( ransformador de corrente)



Eu não removi o display, mais parece que não tem nada embaixo...






É isto.

Podem comprar que o aparelho funciona.

Agora não liguem muita coisa nele por muito tempo, pois pelo desenho e qualidade dos componentes, eu não divido nada que peque fogo, oque foi comprovado pelo vídeo que vi no youtube:



Se preferirem podem ver as fotos originais no meu álbum do Picasa.
Abraços a todos.


sábado, 31 de março de 2012

Faça você mesmo - Trocar carrapeta de chuveiro Deca

Olá todos,

Escrevo este post para ilustrar como é simples trocar uma carrapeta de chuveiro. Isto é necessário quando o chuveiro começa a pingar, requerendo cada vez mais força para fechar a água.

Material necessário:


  • Alicate de bico grande, chave de grife, alicate de pressão ou similar.
  • Chave de fenda Philips
  • Chave de vela de 16mm (opcional mais facilita)
  • Carrapeta nova do tamanho da torneira (neste caso 3/4) 
  • Faca
  • Cimento branco, rejunte ou similar (para acabamento)

Carrapeta:



"Comprei" este kit na Leroy Merlin, ele contem 4 carrapetas, sendo 2 para torneiras de 3/4" e 2 para torneiras de 1/2". O preço de aprox. R$ 9 é salgado para apenas 4 carrapetas, mais como acabei ganhando de presente não saiu caro...

A torneira:

Deca 3/4 de chuveiro normal. Ela é ligada a um misturador.



Etapas:


Remova a tampa frontal da torneira com a mão, chave de fenda ou faca.


(Vista frontal da torneira)



Com uma chave philips segure a torneira e remova o parafuso rodando-o no sentido anti-horário.


Remova o pegador da torneira 

Note o anel preto,é ele que segura o acabamento cromado.


Com um alicate, remova a peça preta, girando-a no sentido anti-horário.


Remova com a mao o resto dos componentes até a torneira ficar igual a da foro abaixo.

Torneira sem acabamento.

Agora é a hora de fechar a agua. Vá ao registro central do apartamento/casa, ou se for o caso feche o registro geral diretamente do banheiro.

Para quem nora no cores da lapa, este registro fica localizado logo na entrada, acima da porta.

Se alguem estiver se perguntando sobre os fios aparecendo na foto, eles sao do meu medidor de energia inteligente (www.openenergymonitor.org).


Chave de vela de chevette.


Utilizando um alicate, chave de vela, ou inglesa remova o castelo(parte central) da torneira rodando sempre no sentido anti-horário.

Castelo sendo removido.

Visão da carrapeta danificada.

Detalhe da carrapeta danificada.
  

Remova a carrapeta antiga com o auxilio de uma faca.

Castelo sem carrapeta


Introduza a nova carrapeta na peça.
Note que a nova carrapeta é preta enquanto que a antiga era branca. Não ha problema algum.



Monte o castelo e o resto da torneira seguindo os mesmos passos na ordem inversa.


Antes de colocar o misturador no lugar, eu dei uma bela limpeza neles utilizando uma esponja e sapóleo. Ficaram novinhos em folha.

Antes da limpeza.

Depois da limpeza.

Resultado final: chuveiro sem goteiras




Acabamento:

Como o buraco do chuveiro nem sempre é certo, as vezes erá necessário fazer o acabamento com cimento branco, rejunte ou algo similar. No meu caso utilizei rejunte branco.

Imperfeições na parede.

Rejunte branco utilizado.


Misture em um copo um pouco de rejunte e água. Mexa bem e aplique em volta do acabamento do registro. Após cerca de 15 minutos remova o excesso com uma esponja e limpe bem. Estará seco em 1 hora.

Resultado final.
Acredito que estas instruções possam parecer bastante simples, mais tenho visto diversos e-mails circulando    com dúvidas de como fazer. Espero que ajude.

Visite esta galeria de fotos no meu álbum do Picasa.