Índice:

Tecnologia para seu avô: 13 etapas (com fotos)
Tecnologia para seu avô: 13 etapas (com fotos)

Vídeo: Tecnologia para seu avô: 13 etapas (com fotos)

Vídeo: Tecnologia para seu avô: 13 etapas (com fotos)
Vídeo: TUDO sobre as CÂMERAS do IPHONE 13 ( tutorial iphone 13 ) 2024, Novembro
Anonim
Image
Image

Quantas vezes você já foi à casa de seus avós para ajudar com um “problema de tecnologia” que acabou sendo um cabo de alimentação desconectado, uma bateria remota descarregada ou não sendo capaz de mudar a fonte na TV? Eu sei que, para mim, isso acontece com bastante frequência. Embora a maioria de seus problemas possa ser resolvida simplesmente correndo até a loja para comprar alguns novos AA, às vezes eles podem se beneficiar de uma solução mais personalizada.

Por exemplo, o avô da minha namorada comprou uma nova televisão e tentamos ensiná-lo a mudar a fonte para que ele pudesse alternar entre DVDs e TV - mas ele simplesmente não conseguia descobrir. Ele também está lidando com problemas de visão e não está muito interessado em tentar se lembrar de processos complicados, ele só quer assistir seus programas quando quiser. Depois de tentar explicar com calma as etapas durante nossa última visita, sem muito sucesso, decidi que faria para ele seu próprio controle remoto simples de dois botões. Isso permitiria que ele mudasse a fonte de entrada em sua televisão sem dor, alternando entre seus amados DVDs Matlock e Price is Right com facilidade.

Etapa 1: Materiais

  • PhidgetIR
  • PhidgetSBC4 (ou qualquer computador de placa única como o Raspberry Pi)
  • Ferro de solda
  • Cortadores Laterais
  • Decapantes de fio
  • Jumper Wires
  • Cabo USB
  • Phidget Cable
  • Gabinete
  • Cabeçalhos de passagem
  • Tubulação termorretrátil

Etapa 2: Planejamento

Impressão 3D
Impressão 3D

Para criar o controle remoto, eu precisava enviar comandos infravermelhos do consumidor (CIR) para a televisão. Decidi usar o PhigetIR para esta tarefa. O PhidgetIR é um dispositivo controlado por USB que tem a capacidade de enviar e receber comandos CIR. Eu escolhi isso por alguns motivos:

  • Eu queria terminar este projeto o mais rápido possível e colocá-lo em prática, então a ideia de quebrar meu osciloscópio e placa de ensaio não era atraente. Além disso, qual a probabilidade de meus circuitos soldados à mão ainda estarem funcionando em um ou dois anos?
  • O PhidgetIR tem a capacidade de “aprender” comandos CIR tornando o desenvolvimento extremamente simples.
  • Você pode usar quase qualquer linguagem de programação convencional com o PhidgetIR. Isso significava que eu poderia usar Java e terminar as coisas rapidamente.
  • Finalmente, eu trabalho para Phidgets, então estou confortável com a API e sempre há dispositivos sobressalentes por aí.

Como escolhi usar o PhidgetIR, precisei de um computador para executá-lo. Eu queria que este projeto fosse um aplicativo autônomo, muito parecido com um controle remoto normal, então um desktop ou laptop estava fora de questão. Eu escolhi usar um PhidgetSBC4 (um computador de placa única rodando Debian Linux), porque me permitiu fazer interface com ambos os botões sem nenhum hardware adicional. Eles podem ser simplesmente conectados diretamente ao VINT Hub integrado. Nota: você também pode usar um Raspberry Pi para este projeto. Finalmente, além de ser funcionalmente sólido, eu queria que o projeto tivesse uma ótima aparência, então decidi que seria necessário um gabinete impresso em 3D.

Etapa 3: impressão 3D

Impressão 3D
Impressão 3D
Impressão 3D
Impressão 3D

Para este projeto, Geomagic foi usado para modelar o gabinete. Existem arquivos de etapas 3D disponíveis para o PhidgetIR e o PhidgetSBC4, o que simplificou o processo. Algumas decisões foram tomadas durante esta etapa em relação ao tamanho e funcionalidade do gabinete:

  • O PhidgetIR possui dois LEDs de infravermelho que precisam estar apontando para a TV para enviar comandos. Em vez de projetar o gabinete em torno da placa PhidgetIR, os LEDs IR podem ser dessoldados e colados nos orifícios na lateral do gabinete. A placa PhidgetIR pode então ser montada longe dos LEDs, utilizando o espaço vazio.
  • Os conectores VINT Hub no PhidgetSBC4 poderiam ser dobrados para cima, o que ainda permitiria o acesso para as conexões do botão de pressão e também evitaria a criação de um gabinete maior.

Também decidi adicionar um rótulo para os botões e um rótulo indicando a direção que ele deve estar voltado para que os LEDs de IV fiquem apontados na direção certa. Imprimi o invólucro localmente em plástico ABS preto.

Etapa 4: Montagem - Remova os LEDs

Montagem - Remova os LEDs
Montagem - Remova os LEDs
Montagem - Remova os LEDs
Montagem - Remova os LEDs
Montagem - Remova os LEDs
Montagem - Remova os LEDs

Os LEDs de infravermelho serão eventualmente colados em orifícios na lateral do gabinete. Isso significa que primeiro eles precisam ser dessoldados.

Etapa 5: Montagem - Adicionar Cabeçalhos de Orifício de Passagem

Montagem - Adicionar Cabeçalhos de Orifício
Montagem - Adicionar Cabeçalhos de Orifício
Montagem - Adicionar Cabeçalhos de Orifício
Montagem - Adicionar Cabeçalhos de Orifício

Em seguida, conectores através do orifício foram adicionados onde os LEDs costumavam estar, o que os tornou mais fáceis de conectar usando um fio de jumper de 4 pinos. Use tubulação termorretrátil para evitar contato acidental.

Etapa 6: Montagem - Conecte os LEDs

Montagem - anexar LEDs
Montagem - anexar LEDs
Montagem - anexar LEDs
Montagem - anexar LEDs

Cole os LEDs na lateral do gabinete.

Etapa 7: Montagem - Anexe o PhidgetIR

Montagem - Anexe o PhidgetIR
Montagem - Anexe o PhidgetIR
Montagem - Anexe o PhidgetIR
Montagem - Anexe o PhidgetIR
Montagem - Anexe o PhidgetIR
Montagem - Anexe o PhidgetIR

Anexe o PhidgetIR ao gabinete e conecte os LEDs.

Etapa 8: Montagem - Adicionando botões

Montagem - Adicionando Botões
Montagem - Adicionando Botões
Montagem - Adicionando Botões
Montagem - Adicionando Botões
Montagem - Adicionando Botões
Montagem - Adicionando Botões

Os botões de pressão precisam ser conectados ao VINT Hub integrado no PhidgetSBC, então cortei um cabo Phidget ao meio e soldei as pontas nos botões. Observe que apenas o fio branco (sinal) e preto (terra) são necessários.

Etapa 9: Montagem - Juntando tudo

Montagem - Juntando Tudo
Montagem - Juntando Tudo
Montagem - Juntando Tudo
Montagem - Juntando Tudo

Foi necessário algum gerenciamento de cabos para reunir tudo, no entanto, o gabinete funcionou bem.

Etapa 10: Software - Código

Há apenas um único arquivo Java necessário para este projeto, que você pode encontrar aqui. O programa usa um objeto PhidgetIR e dois objetos DigitalInput. Você pode criar esses objetos como este:

PhidgetIR ir = novo PhidgetIR ();

DigitalInput tvButton = new DigitalInput (); DigitalInput otherButton = new DigitalInput ();

Os objetos de entrada digital são mapeados para um botão físico no VINT Hub. Os eventos de anexar, desanexar, de erro e de mudança de estado também são inscritos em:

tv.setIsHubPortDevice (true);

tvButton.setHubPort (4); tvButton.addAttachListener (onAttachListener); tvButton.addDetachListener (onDetachListener); tvButton.addErrorListener (onErrorListener); tvButton.addStateChangeListener (onStateChangeListener); tvButton.open (); otherButton.setIsHubPortDevice (true); otherButton.setHubPort (5); otherButton.addAttachListener (onAttachListener); otherButton.addDetachListener (onDetachListener); otherButton.addErrorListener (onErrorListener); otherButton.addStateChangeListener (onStateChangeListener); otherButton.open ();

O ouvinte de mudança de estado referido acima tem a seguinte aparência:

privatestatic DigitalInputStateChangeListener onStateChangeListener = new DigitalInputStateChangeListener () {@ OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource (); try {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("Erro:" + ex.getDescription ());}}};

Quando um botão é ativado, o código do evento será executado e definirá um sinalizador. Esses sinalizadores serão referenciados e redefinidos no loop principal. O loop principal simplesmente espera por uma mudança no estado do botão e, em seguida, envia comandos IR usando a função de transmissão que está disponível na API PhidgetIR.

while (true) {if (tvButtonActivated) {

tvButtonActivated = false; Log.log (LogLevel. INFO, "MUDANDO FONTE - TV"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (rightButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} if (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "MUDANDO FONTE - DVD"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (leftButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

Etapa 11: Software - Comandos CIR

Software - Comandos CIR
Software - Comandos CIR

Aqui está um exemplo de como criar um comando (um comando para aumentar o volume, neste caso):

// Código IR

IRCodeInfo sourceButtonCI = new IRCodeInfo (); String volumeUp = "77e1d0f0"; // Configurar botão de origem sourceButtonCI.bitCount = 32; sourceButtonCI.encoding = IRCodeEncoding. SPACE; sourceButtonCI.gap = 108921; sourceButtonCI.trail = 549; sourceButtonCI.zero = newint [2]; sourceButtonCI.zero [0] = 549; sourceButtonCI.zero [1] = 627; sourceButtonCI.one = newint [2]; sourceButtonCI.one [0] = 549; sourceButtonCI.one [1] = 1755; sourceButtonCI.header = newint [2]; sourceButtonCI.header [0] = 9084; sourceButtonCI.header [1] = 4600; sourceButtonCI.repeat = newint [3]; sourceButtonCI.repeat [0] = 9084; sourceButtonCI.repeat [1] = 2308; sourceButtonCI.repeat [2] = 549; sourceButtonCI.length = IRCodeLength. CONSTANT;

Para obter as informações para este comando, simplesmente usei o exemplo PhidgetIR que vem com as bibliotecas Phidget. Depois de apontar o controle remoto para o PhidgetIR e manter pressionado o botão de aumentar o volume, o IR "aprende" o código e preenche o exemplo. Essas informações podem ser simplesmente copiadas para o código.

Etapa 12: executando o programa

O arquivo Java pode ser escrito e compilado em um computador externo. Coloque PhidgetRemote.java e phidget22.jar na mesma pasta e execute o seguinte comando:

Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java

macOS / Linuxjavac -classpath.: phidget22.jar PhidgetRemote.java

Após a compilação, copie os arquivos de classe gerados para o PhidgetSBC4 e configure-o para ser executado na inicialização.

Etapa 13: Resultado

Quando dei o controle remoto para o avô da minha namorada e mostrei como usá-lo, ele ficou surpreso ao ver como era simples. Confira o vídeo para vê-lo em ação!

Concurso de controle remoto 2017
Concurso de controle remoto 2017
Concurso de controle remoto 2017
Concurso de controle remoto 2017

Terceiro Prêmio no Concurso de Controle Remoto 2017

Recomendado: