Índice:
- Etapa 1: Materiais
- Etapa 2: Planejamento
- Etapa 3: impressão 3D
- Etapa 4: Montagem - Remova os LEDs
- Etapa 5: Montagem - Adicionar Cabeçalhos de Orifício de Passagem
- Etapa 6: Montagem - Conecte os LEDs
- Etapa 7: Montagem - Anexe o PhidgetIR
- Etapa 8: Montagem - Adicionando botões
- Etapa 9: Montagem - Juntando tudo
- Etapa 10: Software - Código
- Etapa 11: Software - Comandos CIR
- Etapa 12: executando o programa
- Etapa 13: Resultado
Vídeo: Tecnologia para seu avô: 13 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
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
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
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
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
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
Cole os LEDs na lateral do gabinete.
Etapa 7: Montagem - Anexe o PhidgetIR
Anexe o PhidgetIR ao gabinete e conecte os LEDs.
Etapa 8: 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
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
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!
Terceiro Prêmio no Concurso de Controle Remoto 2017
Recomendado:
Steam Punk seu UPS para obter horas de atividade para seu roteador Wi-fi: 4 etapas (com fotos)
Steam Punk seu UPS para obter horas de atividade para seu roteador Wi-fi: Há algo fundamentalmente desagradável em ter seu UPS convertendo sua bateria de 12 V DC em 220 V AC para que os transformadores que executam seu roteador e fibra ONT possam convertê-la de volta em 12 V DC! Você também está lutando contra o [normalmente
Texto para fala, clique em um UChip com tecnologia ARMbasic e outros SBCs com tecnologia ARMbasic: 3 etapas
Text to Speech Clique em um ARMbasic Powered UChip e em outros SBCs ARMbasic Powered: Introdução: Bom dia. Meu nome é Tod. Sou um profissional aeroespacial e de defesa que também é um pouco geek no coração. Inspiração: Vindo da era do BBS discado, microcontroladores de 8 bits, computadores pessoais Kaypro / Commodore / Tandy / TI-994A, quando R
Como construir um reprodutor de audiolivro para sua avó: 8 etapas (com imagens)
Como construir um reprodutor de audiolivro para sua avó: A maioria dos reprodutores de áudio disponíveis no mercado são criados para jovens e sua função principal é tocar música. Eles são pequenos, têm várias funções, como reprodução aleatória, repetição, rádio e até mesmo reprodução de vídeo. Todos esses recursos tornam o jogo popular
Usando seu telefone Sony Ericsson habilitado para Bluetooth para controlar seu computador: 6 etapas
Usando seu telefone Sony Ericsson habilitado para Bluetooth para controlar seu computador: eu tenho lido sobre instrutíveis há algum tempo e sempre quis fazer algumas das coisas que as pessoas escreveram, mas me peguei olhando coisas que são difíceis de fazer porque são genuinamente difíceis de fazer, ou o
A melhor bolsa para laptop para o seu Eee Pc !: 4 etapas (com fotos)
A melhor bolsa para laptop para seu Eee Pc !: Acho que finalmente encontrei a capa perfeita para meu eee pc 701. Tenho procurado por algo desde que comprei meu primeiro eee pc - o 1000, e até fiz alguns outros bolsas instructables para laptop e mods especificamente para ele. Mas o pequeno