Montando um detector de metais

Sempre quis montar um detector de metal e finalmente, graças a China, consegui. Ainda não é um detector para caça ao tesouro, mas tá valendo. Segue o vídeo:


Observações:
1. Tive um problema com o cartão de memória da câmera e perdi a parte da montagem. Como só tinha um kit não deu pra filmar de novo. Por sorte tirei uma foto do kit antes de montar:

Kit de detector de metal

2. E o esquema do detector de metal é esse aqui:

3. O kit tem alguns erros na placa, como um dos capacitores de 2,2nF que está marcado como 1u4. Outra coisa estranha é que as marcações dos componentes (R1,R2,C1,C2,etc) não existe na placa. A legenda é feita com os valores dos componentes.

4. Não tem lugar certo pra colocar a chave liga/desliga. É necessário cortar a caixa pra encaixá-la, por isso não montei ainda.

5. Os contatos para o suporte de pilhas saem com muita facilidade.

6. A caixa parece ser uma caixa de montagem genérica. A placa do detector não se encaixa bem nela e não tem furos de fixação.

7. O anúncio dizia que o aparelho detecta metais até 30 cm de distância. Não consegui passar dos 3 cm.

8. O circuito detecta qualquer metal condutor (ferro, alumínio, etc).

Testando o GitHub

Andei testando o GitHub com uns códigos antigos e acabei gostando e movendo os (poucos) códigos do blog para lá. Antes usava o Google Drive, que não foi feito pra guardar códigos fontes. Uma grande vantagem de fazer isso é que dá pra ver o código sem precisar baixar tudo. O endereço não poderia ser mais óbvio: github.com/pakequis.

Por enquanto tem os repositórios dos dois potenciômetros com memória (com o QG8 e com Arduino), o do pedal de efeitos e o do sequencial de LEDs com Arduino. Já os códigos velhos (repositório Old_code) tem algumas coisinhas feitas em VB6 da época em que estava aprendendo (desenhar no form, um screensaver, comunicação serial) e o projeto do meu controle remoto para PC. Este último deve ganhar um post só pra ele em breve.

Por dentro de um Power Bank (bateria de emergência?)

Atualizado em 21/08/2016: Finalmente fiz um vídeo para complementar o post. Não achei a parte em que a Séfora conta a história. Quando (e se) achar eu adiciono aqui.



Pois é, esse aqui era pra ser um vídeo, mas fui enrolando, enrolando, enrolando e não saiu. Até filmei a Séfora contando a história dele. Se der, mais pra frente eu faço certo. Enquanto isso...

Power Bank

A Séfora comprou este Power Bank no camelô e como não funcionou direito (segundo ela funcionou apenas uma vez) trouxe pra eu dar uma olhada. Pra quem não sabe estas coisinhas servem pra recarregar o celular quando se está longe de uma tomada ou sem o carregador. O problema deste aqui não era nada grave, era apenas o cabo defeituoso. Com outros cabos o power bank "funciona".

O funciona entre aspas significa que ele não tem os 8000 mAH (na embalagem está escrito 12000 mAH). Usei uma vez em uma viagem e ele não conseguiu carregar meu celular, que estava por volta de 30% de carga, até o máximo. Testei mais algumas vezes sempre com resultados desanimadores.

Dando uma olhada na parte interna podemos ver a bateria que ocupa quase toda a caixa do aparelho:
Power Bank
Não existe qualquer indicação do fabricante, capacidade ou outra informação no corpo da bateria. Medindo a tensão achei os 3,7V esperados. A parte de cima da plaquinha tem apenas o conector USB e dois LEDS:

Power Bank

Por baixo ela é um pouco mais interessante:
PCB Power Bank

Não desenhei o circuito, mas até onde vi e medi me pareceu que tem um regulador linear para carregar a bateria (editado: olhei melhor e parece que não é isso não, vou confirmar) e um outro, chaveado, para subir a tensão para os 5V para recarregar o celular. Algo que me chamou a atenção é que este regulador fica ligado direto, com o conector USB de saída sempre alimentado. Não me recordo os valores, mas dei uma olhada com o osciloscópio nesta saída e deu pra ver um ripple um pouco alto.

O aparelho esquenta quando em carga da bateria e um pouco menos quando fornecendo carga para algo externamente. Não vi nada que lembre uma proteção térmica para a bateria. Mas parece confiável (hehe), pois tá escrito que é um autentico original "Power Brank". Tem até os símbolos de conformidade da FCC e da comunidade européia. Além de ser ROHS:
Caixa do Power Bank

É cada coisa que aparece por aqui....

Montando um kit de rádio AM (de Ondas Médias)

Bom, depois de anos e anos finalmente montei um rádio AM super-heteródino. Lembro ainda de um kit destes da Superkit que ficou um tempão na loja de eletrônica aqui da cidade. Nem me atrevia a perguntar o preço...

Mas daí vieram os chineses pra facilitar a nossa vida (até que alguém acabe com a brincadeira). Procurei por um kit todo transistorizado, comprei e fiz um vídeo da montagem:


O que faltou falar no vídeo:
0. Onde comprar?.

1. As emissoras de AM em ondas médias estão com os dias contados. A maioria vai migrar pra faixa de FM e, daqui há alguns anos, não vai sobrar nenhuma entre os 530-1600 kHz. Então o momento pra montar um kit destes é agora, antes que seja tarde. 

2. A FI do rádio é em 465 kHz e não em 455 kHz como é comum por aqui. Como falei no vídeo, seria legal testar com um diodo de germânio no lugar de V4.

3. Na parte debaixo da placa de circuito impresso algumas trilhas tem pads que devem ser conectados com um jumper. Eles estão marcados com um X nas trilhas do esquema, nos coletores de V1, V2, V3 e V5. Caso sejam deixados em aberto o rádio não funcionará, é claro...
Esquema rádio AM
4. Como está escrito no esquema acima, o modelo do rádio é HX108-2+.

5. Foto dos componentes:
Componentes do kit de rádio AM
6. E uma foto do rádio montado:
Kit de rádio AM montado.
7. Comprei no Aliexpress. Não vou colocar o link direto pra este modelo, pois amanhã ele pode nem mais existir por lá. A dica é procurar por "Rádio Kit". Tem vários modelos, transistorizados ou com CIs e AM e/ou FM.

8. As bobinas de FI de o oscilador local estão marcadas na legenda de componentes da placa com um simbolo em Chines indicando cada cor. Usei o tradutor do Google pra descobrir a posição de cada bobina.

Trocando a tela de toque de um tablet Genesis GT7326

O sobrinho da minha esposa derrubou e quebrou a tela de seu tablet Genesis GT7326. No vídeo abaixo mostro todo o processo do conserto. Por uma infelicidade o áudio, gravado separadamente, ficou ruim (conector do microfone não estava totalmente enfiado na entrada do gravador).

Mas segue o vídeo só com o áudio da câmera...


PS: Preciso arranjar um jeito de colocar a câmera em cima da bancada. Com ela no tripé, na minha frente, fica difícil manipular qualquer coisa.

Mais um pen drive de (quase) 64GB

E vamos lá com mais uma história sobre pen drives de 64 GB falsos. Pensei que depois de quatro anos do primeiro caso (que não aconteceu comigo) as coisas já tinham melhorado. 

Comprei alguns pen drives na China para usar na TV aqui de casa e emprestar para os parentes e amigos. Antes eu tinha um pen drive de confiança (de 16 GB) e outros dois (8GB e 16GB) para usar na TV. Destes dois últimos o de 16GB quebrou e virou um Frankenstein e o de 8GB não pode mais ser apagado (está com os vídeos infantis que minha filha pequena assiste e reassiste em loop infinito). 

Pen drive
Foto de um pen drive parecido...
Depois do tradicional prazo indeterminado para a entrega os pen drives chegaram (1 de 8GB, 2 de 16GB e o de 64GB). Comprei o de 64GB mais pela curiosidade de ver se era verdade (e não era). Só não esperava ver tanta complicação nesta enganação. Vejam:

1 - Liguei o bichinho no computador e o Avira chiou acusando a presença de um vírus. Fui olhar o drive e tinha um arquivo "LoginTool.exe":

LoginTool.exe
Olhei o tamanho do drive e o windows indicou algo em torno de 3MB para o "disco" todo. Tentei formatar e fui informado que o drive estava protegido contra gravação. Tentei no Linux e também não deu.

2 - Acabei colocando o pen drive em uma máquina de testes com o antivírus desabilitado e rodei o tal do "LoginTool.exe". Me apareceu a seguinte tela:

Tela do programa do pen drive

Hm, um drive protegido por senha. Já tinha ouvido falar, mas nunca tinha lidado com um. Tentei as senhas padrão (00000, 1234, 123456, ABCDEF, ETC) até acertar a 12345. Pimba! A janela fechou, o drive sumiu do Windows Explorer e (re)apareceu com outro nome e agora com 60GB livres:

Pen drive 64 GB

3. Tentei descobrir qual o fabricante dos CIs do aparelho para ver se conseguia desabilitar o programa de senha e ir direto para o drive de 60GB para poder usar na TV. Rodei o Chipgenius para pegar o VID (Vendor ID) e o PID (Product ID) do drive. Deu VID ABCD e PID 1234 e minha esperança de que o pen drive fosse "de verdade" foi pro saco.

Teste no Chipgenius 3.00


4. Só pra confirmar testei o drive com o H2testw e depois de quase oito horas ele mostrou a verdade:

H2testw

Pois é, nada de 64GB. Na verdade é só um pen drive de 8GB disfarçado de 64GB e bem ruim (R/W de 3.09 e 7.67 MB/s respectivamente). E ainda ficou a suspeita de que realmente o "LoginTool.exe" possa ser um vírus.

Segue o log completo do H2testw:

Warning: Only 61946 of 61947 MByte tested.
The media is likely to be defective.
7.8 GByte OK (16449024 sectors)
52.6 GByte DATA LOST (110416384 sectors)
Details:0 KByte overwritten (0 sectors)
0 KByte slightly changed (< 8 bit/sector, 0 sectors)
52.6 GByte corrupted (110416384 sectors)
0 KByte aliased memory (0 sectors)
First error at offset: 0x00000001e5fd3000
Expected: 0x00000001e5fd3000
Found: 0x0000000000000000
H2testw version 1.3
Writing speed: 3.09 MByte/s
Reading speed: 7.67 MByte/s
H2testw v1.4

Fotos de placas velhas

É isso mesmo, só fotos de placas velhas...

Comprei estas placas no ferro-velho já faz um tempo. O velhinho dono do ferro-velho parece que desmontou algum equipamento de telefonia antigo e sobraram as placas. Comprei umas para reaproveitar os componentes, mas antes de desmontar tirei umas fotos para colocar aqui e deixar como "registro histórico". Quem sabe aparece alguém que sabe alguma coisa sobre elas e fala aí nos comentários.

O principal atrativo das placas são estes capacitores vermelhos da Rohm. São capacitores de 1% de tolerância (capacitores de precisão não são fáceis de achar por aí):

Placa de telefonia

As placas parecem ser da Icotron/Siemens (tem o símbolo dela em todas). A maioria parece ser de filtros (muitos indutores e capacitores) ou algo parecido. 

Placa de telefonia

Placa de telefonia

Esta aqui tem alguns amp-ops metálicos e sinais de aquecimento:
Placa de telefonia

Placa de telefonia

Placa de telefonia

Placa de telefonia

Placa de telefonia

Placa de telefonia

Placa de telefonia

Placa de telefonia

Placa de telefonia

Placa de telefonia

Placa de telefonia

Por dentro da TV LG 32LD650 (que está com áudio e vídeo lentos)

Olha o problema:


Esta TV era do meu irmão mais novo e começou a apresentar problemas há pouco tempo. Ela foi comprada em 2010 e é um dos primeiros modelos de Smart TV lançados por aqui. O acesso a web é feito via Ethernet ou com um adaptador Wifi para USB (que não vinha com a TV, mas a LG enviou pelos Correios gratuitamente).

Os problemas do aparelho começaram com a entrada de vídeo composto. Como nesta entrada estava ligado um DVD player (que eu ganhei numa rifa da igreja e dei de presente para meu irmão) pensaram que era ele que foi pro saco. Todo o resto da TV funcionava normalmente. Passado um tempo e as entradas HDMI também pararam. E isso continuou, parando uma coisa de cada vez: USB, recepção de TV analógica e finalmente a recepção de TV digital (que não parou completamente, como mostrado no vídeo). A TV acabou sendo levada pra casa da minha mãe quando ainda funcionava a recepção de canais, mas parou uma semana depois. Os menus funcionam bem lentos também:
Menu TV LG 32LD650


Pois então, como todos já devem saber existe um "procedimento de como consertar TVs LCDs" nas assistências técnicas que é mais ou menos assim:

1. O LCD quebrou devido a queda da TV (ou algo bateu na tela) - Solução: Se não encontrar outro LCD (boa sorte na busca), jogue a TV fora.

2. A fonte de alimentação não está entregando as tensões corretas (ou está sem tensão) - Solução: Troque a placa da fonte.

3. As tensões estão normais - Solução: Troque a placa principal (a "placa de sinal").

É mais ou menos assim que estão trabalhando hoje o pessoal de manutenção de TVs. O problema é o preço desta brincadeira. Olhei os preços de uma "placa de sinal" nova para trocar e esta custa mais de 1/3 do preço de um TV de 32" nova. Dependendo de onde você levar o preço com a mão de obra chega fácil a mais da metade de uma TV nova.
TV LG32LD650 conserto
É bom colocar um cobertor embaixo pra não arranhar a tela...
Até consegui o manual de serviço da placa, medi todas as tensões da fonte e estão normais. Medi também as tensões de todos os reguladores da placa principal e tudo certo também. Me parece um problema no CI principal (IC100). Algo a ver com o clock? Pode ser também a solda que costuma ser problemática em BGAs. Não tenho uma estação de retrabalho pra testar essa hipótese e mesmo assim é comum o problema voltar depois de um tempo (vide os problemas do XBox). Infelizmente a troca da placa parece inevitável...

Seguem fotos das placas da fonte e "de sinal":

Placa da fonte da TV LG32LD650

Placa principal TV LG32LD650

Placa de sinal TV LG32LD650

*Post guardado desde junho de 2014. A TV ainda está lá, esperando uma solução (que envolve tempo ou dinheiro, hehe).

Desmontando um Pense Bem da Tec Toy

E saiu mais um Video Log. Desta vez desmontei o meu Pense Bem (de novo). Pra quem não sabe, a primeira foi em 2010 e postei aqui no blog com relativo sucesso.

 

Multi Sequencial de LEDs com Arduino

Então eu resolvi brincar com Arduino (versão Uno R3) de novo. A outra vez foi só pra conhecer o ambiente. Desta vez queria descobrir um pouco mais sobre a plataforma e ver uns recursos mais avançados. A ideia aqui foi fazer o manjado circuito de sequencial de 10 LEDs que antigamente a gente montava com os CIs 4017 e 555.

Pulando já para o final, vejam como ficou o circuito funcionando:


Os 10 LEDs foram ligados nas saídas digitais do Arduino, com uma chave dip switch de três posições em 3 entradas digitais para selecionar entre 8 efeitos possíveis de sequencias. Um potenciômetro na entrada analógica A0 completa o circuito, funcionando como controle de velocidade.

Aproveitando que estava fuçando com esta plataforma, fui em busca de um programa próprio para desenhar esquemas com o Arduino. Acabei usando o Fritzing, onde dá pra desenhar não só o esquema, mas também "montar" no protoboard ou mesmo gerar a placa de circuito impresso (PCB). Olha a montagem aí (clica que aumenta):

Montagem sequencial de 10 LEDs com Arduino
O software foi feito na IDE do Arduino mesmo. Mais pra frente vou pesquisar outras para testar. E desta vez usei o acesso direto aos pinos do microcontrolador para descomplicar o acendimento dos LEDs. Como o microcontrolador tem memória sobrando, achei melhor tabelar as sequências (adoro tabelas em software). Pra quem quiser montar e testar, segue o código (que também está no GitHub com o arquivos .ino e o .fzz):

/********************************
    Multi sequencial de LEDs 
      com Arduino
http://www.pakequis.com.br
**********************************/

//Sequencias dos LEDs
const int seq1[] = {1,2,4,8,16,32,64,128,256,512,256,128,64,32,16,8,4,2};
const int seq2[] = {3,6,12,24,48,96,192,384,768,384,192,96,48,24,12,6};
const int seq3[] = {1,3,7,15,31,63,127,255,511,1023,1022,1020,1016,1008,992,960,896,768,512,0};
const int seq4[] = {7,14,28,56,112,224,448,896,448,224,112,56,28,14};
const int seq5[] = {1022,1021,1019,1015,1007,991,959,895,767,511,767,895,959,991,1007,1015,1019,1021};
const int seq6[] = {513,771,903,975,1023,510,252,120,48,0,48,120,252,510,1023,975,903,771,513,0};
const int seq7[] = {1016,1009,995,967,911,799,575,127,575,799,911,967,995,1009};
const int seq8[] = {48,120,252,510,1023,975,903,771,513,0};
const int seq9[] = {80,65,81,85,69,75,73,83,46,67,79,77,46,66,82};

//Quantidade de passos em cada sequencia
const int tamanho_seq[9] = {18,16,20,14,18,20,14,10,15};

int chave1 = 10;  //Entradas para
int chave2 = 11;  //as chaves de 
int chave3 = 12;  //selecao

int entrada_ad = 0;  //Potenciometro na entrada 0
int contador = 0;  //Contador
int valor_pot = 0;       //Valor da tensao no potenciometro
int valor_chave = 0;     //Valor lido das chaves
unsigned long tempo = 0; //Tempo entre as transicoes

void setup()
{
  DDRD = B11111111; //Todos os pinos do portal D como saida
  DDRB = B00000011; //Bits 0 e 1 do portal B como saida
 
  PORTD = 0;  //Zera saidas
  PORTB = 0;  //Zera saidas
}

void loop()
{
  //Le as tres chaves ao mesmo tempo e guarda o valor
  valor_chave = (PINB >> 2) & 7;
 
  //Le o valor do potenciometro
  valor_pot = analogRead(entrada_ad);
 
  //converte o valor da tensao para o tempo de transicao (40ms a 250s)
  tempo = map(valor_pot,0,1023,40,250);
 
  //tempo entre as transicoes
  delay(tempo); 
 
  //Executa um passo da sequencia
  sequencia();
}

//Atualiza os portais
void controla_saidas(int valor_saidas)
{
  PORTD = (valor_saidas & 255);  //LSB para o Portal D
  PORTB = (valor_saidas >> 8) & 3;      //MSB para o Portal B
}

//Executa um passo da sequencia
void sequencia()
{
  int valor = 0;
  switch (valor_chave) //Verifica a posicao das chaves
  {
    case 0:  
      valor = seq1[contador];
      contador++;
      if (contador > (tamanho_seq[valor_chave] - 1))
      {
        contador = 0;
      }
      break;
 
    case 1:
      valor = seq2[contador];
      contador++;
      if (contador > (tamanho_seq[valor_chave] - 1))
      {
        contador = 0; 
      }
      break;
  
    case 2:
      valor = seq3[contador];
      contador++;
      if (contador > (tamanho_seq[valor_chave] - 1))
      {
        contador = 0; 
      }
      break;
  
    case 3:
      valor = seq4[contador];
      contador++;
      if (contador > (tamanho_seq[valor_chave] - 1))
      {
        contador = 0; 
      }  
      break;
  
    case 4:
      valor = seq5[contador];
      contador++;
      if (contador > (tamanho_seq[valor_chave] - 1))
      {
        contador = 0; 
      }  
      break;
  
    case 5:
      valor = seq6[contador];
      contador++;
      if (contador > (tamanho_seq[valor_chave] - 1))
      {
        contador = 0; 
      }  
      break;
  
    case 6:
      valor = seq7[contador];
      contador++;
      if (contador > (tamanho_seq[valor_chave] - 1))
      {
        contador = 0; 
      }  
      break;
  
    case 7:
      valor = seq8[contador];
      contador++;
      if (contador > tamanho_seq[valor_chave])
      {
        contador = 0; 
      }  
      break;

    default:
      valor = 1365; //Para indicar uma sequencia invalida
      contador = 0;
      break;
    }
    controla_saidas(valor);
}