Sommario:

Tecnologia per tuo nonno: 13 passaggi (con immagini)
Tecnologia per tuo nonno: 13 passaggi (con immagini)

Video: Tecnologia per tuo nonno: 13 passaggi (con immagini)

Video: Tecnologia per tuo nonno: 13 passaggi (con immagini)
Video: Valuto i vostri disegni, singolo Pt: 6 2024, Novembre
Anonim
Image
Image

Quante volte sei andato a casa dei tuoi nonni per aiutarti con un "problema tecnologico" che si è rivelato essere un cavo di alimentazione scollegato, una batteria del telecomando scarica o non essere in grado di cambiare la fonte sulla loro TV? So che per me, questo accade abbastanza spesso. Sebbene la maggior parte dei loro problemi possa essere risolta semplicemente correndo al negozio per alcuni nuovi AA, a volte potrebbero beneficiare di una soluzione più personalizzata.

Ad esempio, il nonno della mia ragazza ha preso un nuovo televisore e abbiamo cercato di insegnargli come cambiare la sorgente in modo che potesse passare dal DVD alla TV, ma non riusciva a capirlo. Ha anche a che fare con problemi di vista e non è troppo interessato a cercare di ricordare processi complicati, vuole solo guardare i suoi spettacoli quando vuole. Dopo aver cercato di spiegare con calma i passaggi durante la nostra ultima visita senza molto successo, ho deciso che gli avrei fatto semplicemente il suo semplice telecomando a due pulsanti. Ciò gli consentirebbe di cambiare la sorgente di ingresso sul suo televisore senza problemi, passando facilmente tra i suoi amati DVD Matlock e Price is Right.

Passaggio 1: materiali

  • PhidgetIR
  • PhidgetSBC4 (o qualsiasi computer a scheda singola come il Raspberry Pi)
  • Saldatore
  • Taglierine laterali
  • Spelafili
  • Cavi per ponticelli
  • Cavo USB
  • Cavo Phidget
  • Allegato
  • Intestazioni a foro passante
  • Guaina termoretraibile

Passaggio 2: pianificazione

Stampa 3D
Stampa 3D

Per creare il telecomando, avevo bisogno della capacità di inviare comandi consumer a infrarossi (CIR) al televisore. Ho deciso di utilizzare PhigetIR per questo compito. Il PhidgetIR è un dispositivo controllato da USB che ha la capacità di inviare e ricevere comandi CIR. Ho scelto questo per alcuni motivi:

  • Volevo finire questo progetto il prima possibile e metterlo in pratica, quindi il pensiero di rompere il mio oscilloscopio e la mia breadboard non era allettante. Inoltre, quanto è probabile che i miei circuiti saldati a mano funzionino ancora tra un anno o due?
  • Il PhidgetIR ha la capacità di "apprendere" i comandi CIR rendendo lo sviluppo estremamente semplice.
  • Puoi utilizzare quasi tutti i linguaggi di programmazione tradizionali con PhidgetIR. Ciò significava che potevo usare Java e portare a termine le cose rapidamente.
  • Infine, lavoro per Phidgets, quindi mi trovo bene con l'API e ci sono sempre dispositivi di riserva in giro.

Poiché ho scelto di utilizzare PhidgetIR, avevo bisogno di un computer per eseguirlo. Volevo che questo progetto fosse un'applicazione autonoma, proprio come un normale telecomando, quindi un desktop o un laptop erano fuori. Ho scelto di utilizzare un PhidgetSBC4 (un computer a scheda singola con Debian Linux), perché mi ha permesso di interfacciarmi con entrambi i pulsanti senza alcun hardware aggiuntivo. Possono essere semplicemente cablati direttamente all'hub VINT integrato. Nota: puoi anche usare un Raspberry Pi per questo progetto. Infine, oltre ad essere funzionalmente valido, volevo che questo progetto avesse un bell'aspetto, quindi ho deciso che sarebbe stato necessario un involucro stampato in 3D.

Passaggio 3: stampa 3D

Stampa 3D
Stampa 3D
Stampa 3D
Stampa 3D

Per questo progetto, Geomagic è stato utilizzato per modellare il recinto. Sono disponibili file di passaggio 3D sia per PhidgetIR che per PhidgetSBC4 che hanno semplificato il processo. Durante questa fase sono state prese alcune decisioni in merito alle dimensioni e alla funzionalità della custodia:

  • Il PhidgetIR ha due LED IR che devono essere puntati verso la TV per inviare comandi. Invece di progettare l'involucro attorno alla scheda PhidgetIR, i LED IR potrebbero essere dissaldati e incollati nei fori sul lato dell'involucro. La scheda PhidgetIR potrebbe quindi essere montata lontano dai LED, utilizzando lo spazio vuoto.
  • I connettori VINT Hub sul PhidgetSBC4 potrebbero essere piegati verso l'alto, il che consentirebbe comunque l'accesso per le connessioni dei pulsanti ed eviterebbe anche di dover creare un involucro più grande.

Ho anche deciso di aggiungere un'etichetta per i pulsanti e un'etichetta che indica la direzione in cui dovrebbe essere rivolto in modo che i LED IR siano puntati nella giusta direzione. Ho stampato la custodia localmente in plastica ABS nera.

Passaggio 4: montaggio - Rimuovere i LED

Montaggio - Rimuovere i LED
Montaggio - Rimuovere i LED
Montaggio - Rimuovere i LED
Montaggio - Rimuovere i LED
Montaggio - Rimuovere i LED
Montaggio - Rimuovere i LED

I LED IR verranno eventualmente incollati nei fori sul lato dell'involucro. Ciò significa che devono prima essere dissaldati.

Passaggio 5: Assemblaggio - Aggiungi intestazioni foro passante

Assemblaggio - Aggiungi intestazioni foro passante
Assemblaggio - Aggiungi intestazioni foro passante
Assemblaggio - Aggiungi intestazioni foro passante
Assemblaggio - Aggiungi intestazioni foro passante

Successivamente, sono state aggiunte intestazioni a foro passante dove prima si trovavano i LED, il che le ha rese facili da collegare utilizzando un cavo jumper a 4 pin. Utilizzare un tubo termoretraibile per evitare contatti accidentali.

Passaggio 6: assemblaggio - Fissare i LED

Assemblaggio - Collegare i LED
Assemblaggio - Collegare i LED
Assemblaggio - Collegare i LED
Assemblaggio - Collegare i LED

Incolla i LED sul lato della custodia.

Step 7: Assemblaggio - Attacca il PhidgetIR

Assemblaggio - Attacca il PhidgetIR
Assemblaggio - Attacca il PhidgetIR
Assemblaggio - Attacca il PhidgetIR
Assemblaggio - Attacca il PhidgetIR
Assemblaggio - Attacca il PhidgetIR
Assemblaggio - Attacca il PhidgetIR

Collegare il PhidgetIR all'enclosure e collegare i LED.

Passaggio 8: Assemblaggio - Aggiunta di pulsanti

Assemblaggio - Aggiunta di pulsanti
Assemblaggio - Aggiunta di pulsanti
Assemblaggio - Aggiunta di pulsanti
Assemblaggio - Aggiunta di pulsanti
Assemblaggio - Aggiunta di pulsanti
Assemblaggio - Aggiunta di pulsanti

I pulsanti devono essere collegati all'hub VINT integrato sul PhidgetSBC, quindi ho tagliato a metà un cavo Phidget e saldato le estremità ai pulsanti. Notare che sono necessari solo il filo bianco (segnale) e nero (massa).

Step 9: Assemblaggio - Mettere tutto insieme

Assemblaggio - Mettere tutto insieme
Assemblaggio - Mettere tutto insieme
Assemblaggio - Mettere tutto insieme
Assemblaggio - Mettere tutto insieme

È stata necessaria una certa gestione dei cavi per mettere tutto insieme, tuttavia, la custodia ha funzionato bene.

Passaggio 10: Software - Codice

C'è solo un singolo file Java richiesto per questo progetto che puoi trovare qui. Il programma utilizza un oggetto PhidgetIR e due oggetti DigitalInput. Puoi creare questi oggetti in questo modo:

PhidgetIR ir =nuovo PhidgetIR();

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

Gli oggetti Digital Input sono mappati su un pulsante fisico sull'hub VINT. Anche gli eventi di collegamento, scollegamento, errore e cambio di stato sono sottoscritti a:

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); altroButton.open();

Il listener di modifica dello stato a cui si fa riferimento sopra assomiglia a questo:

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("Error: "+ ex.getDescription());}}};

Quando viene attivato un pulsante, il codice dell'evento verrà eseguito e imposterà un flag. Questi flag verranno referenziati e reimpostati nel ciclo principale. Il ciclo principale attende semplicemente un cambiamento nello stato del pulsante, quindi invia i comandi IR utilizzando la funzione di trasmissione disponibile dall'API PhidgetIR.

while(true){if(tvButtonActivated){

tvButtonActivated =false; Log.log(LogLevel. INFO, "CAMBIO SORGENTE - 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, "CAMBIO SORGENTE - DVD"); ir.transmit(sourceButtonString, codeInfo); Thread.sleep(500); ir.transmit(leftButtonString, codeInfo); Thread.sleep(500); ir.transmit(enterButtonString, codeInfo);} Thread.sleep(250);}

Passaggio 11: Software - Comandi CIR

Software - Comandi CIR
Software - Comandi CIR

Ecco un esempio di come creare un comando (un comando di aumento del volume in questo caso):

//Codice IR

IRCodeInfo sourceButtonCI =new IRCodeInfo(); String volumeUp ="77e1d0f0";//Imposta pulsante sorgente 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;

Per ottenere le informazioni per questo comando, ho semplicemente usato l'esempio PhidgetIR fornito con le librerie Phidget. Dopo aver puntato il telecomando verso il PhidgetIR e aver tenuto premuto il pulsante di aumento del volume, l'IR "apprende" il codice e popola l'esempio. Queste informazioni possono quindi essere semplicemente copiate nel codice.

Passaggio 12: esecuzione del programma

Il file Java può essere scritto e compilato su un computer esterno. Posiziona PhidgetRemote.java e phidget22.jar nella stessa cartella ed esegui il seguente comando:

Windowsjavac -classpath.;phidget22.jar PhidgetRemote.java

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

Dopo la compilazione, copia i file di classe generati in PhidgetSBC4 e configuralo per l'esecuzione all'avvio.

Passaggio 13: risultato

Quando ho regalato il telecomando al nonno della mia ragazza e gli ho mostrato come usarlo, è rimasto stupito di quanto fosse semplice. Guarda il video per vederlo in azione!

Concorso Telecomando 2017
Concorso Telecomando 2017
Concorso Telecomando 2017
Concorso Telecomando 2017

Terzo Premio al Concorso Telecomando 2017

Consigliato: