quarta-feira, 29 de outubro de 2014

Armazene as suas chaves de casa na nuvem / Store your home keys in the cloud




Olá,

Escrevo hoje para mostrar uma de minhas últimas impressões. Trata-se de uma forma bem divertida de guardar as suas chaves em casa.

A nuvem em si, foi impressa em minha impressora 3d, em seguida coloquei em seu interior dois imas de discos rígidos de computador (HD) que eu tinha retirado previamente.

Os imas são fortes o suficiente para agarrar as chaves pelo simples contato delas com o plástico. Incrível!

Impressão:

Impressora: Printrbot JR v2
Espessura do layer: 0.25mm
Densidade 20%
Material: PLA Branco
Tempo de impressão: 2h. 15m

Modelo: 

Modelo disponível em: https://www.thingiverse.com/thing:195122

Minha montagem em: https://www.thingiverse.com/make:93180

O modelo foi desenvolvido por whatakuai (http://www.whatakuai.com)


Vista de fundo do corpo principal.

Vista frontal

Vista da tampa traseira

Montagem:

1- Imprima e separe as peças impressas.

2- Agora basta remover os 2 imas de um disco rígido de computador velho, ou comprar 2 imas de neodímio grandes o bastante para preencher os espaços e fortes o bastante para segurar as chaves.

Campo magnético dos imas de HD
Para esta etapa nada melhor do que um vídeo para exemplificar o processo:


3- Cole os imas no compartimento com super bonder ou cola quente.

Local para colocação dos imas

4- Feche a tampa traseira e pendure na parede !

Algumas fotos do produto final:












Essa é a montagem original de whatakuai:






domingo, 1 de setembro de 2013

Pães deliciosos em meia hora


Estes Pães são um milagre!
Eles  ficam prontos em 35 minutos do início até sair quentinho do forno!
E se você acredita que eles têm apenas sete ingredientes? Sim. Você pode faze-los!
Eu sempre achei que pães eram um luxo... Levam tanto tempo para misturar, amassar, crescer, enrolar, e só crescem 2 ou 3 horas depois... Pães que só duram uns 10 minutos após prontos, já que são comidos rapidinho...

Receita:
Para começar.
Pré-aqueça o forno a 200º C
Em uma tigela ou batedeira adicionar esses quatro ingredientes:

1 3/4 xícara de água morna a 30ºc (437ml / 218ml*)
1/2 xícara de óleo (125ml / 62ml*)
1/4 de xícara de açúcar granulado (62ml / 31ml*)
3 colheres de sopa de fermento biológico seco (30g, ver imagem do que eu uso)
*Em parênteses eu informo a medida em mililitros, para receita inteira e meia receita
Mexa até misturar bem e deixe descansar por 15 minutos. 

1 Minuto
15 Minutos 
(veja fotos da levedura aumentando depois de apenas 1 minuto, e aos 15 minutos)

Enquanto a mistura aumenta, reúna os ingredientes restantes, em seguida adicione-os a mistura:
2 ovos (1 ovo)
1 colher de chá de sal (1/2 colher)
5 1/2 a 6 xícaras de farinha de trigo (1375ml / 687ml)

Misture por cerca de 2 minutos.
Fácil né?

A massa ainda estará ligeiramente pegajosa.

Todo mundo gosta de seus pães rolou um pouco diferente!
Você tem a sua massa básica, agora é só enrola-los

Enrole-os em pequenas bolas, do tamanho de bolas de pingue pongue, ou um pouco maiores..
Elas fazem pequenos sanduiches deliciosos!
Deixe-os crescer por mais 10 minutos em uma assadeira, então asse-os a 200ºC por 10 minutos.


Após assados.

Esta receita faz cerca de 40 pãezinhos

Agora não há desculpa!

Você pode ter pãezinhos frescos todos os dias!

sábado, 5 de janeiro de 2013

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

Após alguns testes, posto aqui 2 informações sobre o consumo e distancia calculadas do protótipo montado:




Insiro ainda vídeos sobre as medições acima apresentadas.


Medição



Em breve complementarei o post com maiores informações.

EmonGLCD Temperature Hack / Correção para problemas de temperatura no EmonGLCD


Este post está escrito em português e em inglês.
This post is written in Portuguese and English.

Português:

Recentemente notei que o meu EmonGLCD sempre mostrava uma temperatura de até 2 graus de diferença da temperatura apresentada pelos meus outros termômetros no quarto.

Após pesquisa nos fóruns e analise do circuito verifiquei que o sensor de temperatura, um DS18B20 estava localizado ao lado do LDR, bem no topo da placa.

Como o ar quente sobe, o calor dissipado pelo LCD, pelo ATMEGA, regulador de tensão, etc, o sensor acabava por ficar com uma temperatura mais alta.

A Solução encontrada foi relocar o sensor por intermédio de um fio triplo para uma localização mais baixa no circuito.

Abaixo seguem algumas fotos do processo bem simples, que pode ser realizado com fios e um ferro de solda.

English:

Recently noticed that my EmonGLCD always showed me a temperature up to two degrees higher then the measured by the other thermometers in the room.

After a  research in some web posts and a circuit analysis i found that the temperature sensor (DS18B20) was located next to the LDR, right at the top of the plate.

As the hot air rises, the heat dissipated by the LCD, the ATMEGA, voltage regulator, and other components  the sensor would eventually reach the sensor and give it a higher temperature.


The solution was to relocate the sensor through a triple wire to a location lower in the circuit.

Below are some photos of the very simple process, which can be done with wires and a soldering iron.



Antes: Sensor mostrando diferença superior a 1 grau.
Before: +1 celcius degree deference.

Ferramenras necessárias.
Needed tools.

Sensor de temperatura no topo da placa.
Temperature sensor on the top of the board.

Outra visão do sensor.
Another sensor view.

Fios substituindo o sensor. Na verdade só seriam necessários 2 fios.
Wires in place of the sensor. It wold be only necessary to wire 2 pins of the sensor.

Sensor montado na placa.
New connection of the seosor on the board.

Montagem definitiva.
Final assembly.


Finalmente, temperatura correta.
Finaly, we´ve got exactly the same temperature.

Para maiores informações sobre o EmonDLCD consulte: www.openenergymonitor.org.
For more information on EmonGLCD see  www.openenergymonitor.org.

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: 

[email protected] 50% - 14ma
[email protected]: 50% - 7mah
[email protected] 25% - 6.6ma
[email protected] 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,