Cuprins:

Tehnologie pentru bunicul tău: 13 pași (cu imagini)
Tehnologie pentru bunicul tău: 13 pași (cu imagini)

Video: Tehnologie pentru bunicul tău: 13 pași (cu imagini)

Video: Tehnologie pentru bunicul tău: 13 pași (cu imagini)
Video: Cum suna vocea lui Velea in realitate 2024, Noiembrie
Anonim
Image
Image

De câte ori te-ai dus la casa bunicilor pentru a ajuta cu o „problemă tehnologică” care a ajuns să fie un cablu de alimentare deconectat, o baterie de la distanță moartă sau să nu poți schimba sursa de pe televizor? Știu că pentru mine acest lucru se întâmplă destul de des. Deși majoritatea problemelor lor pot fi rezolvate prin simpla alergare la magazin pentru unele AA noi, uneori ar putea beneficia de o soluție mai personalizată.

De exemplu, bunicul iubitei mele a primit un nou televizor și am încercat să-l învățăm cum să schimbe sursa, astfel încât să poată comuta între DVD-uri și televizor - dar pur și simplu nu și-a dat seama. De asemenea, are de-a face cu vederea deficitară și nu este prea interesat să încerce să-și amintească procesele complicate, vrea doar să-și urmărească emisiunile când vrea. După ce am încercat să explic calm pașii din ultima noastră vizită fără prea mult succes, am decis că îi voi face doar propria sa telecomandă simplă cu două butoane. Acest lucru i-ar permite să schimbe nedureros sursa de intrare de pe televizor, trecând între iubitele sale DVD-uri Matlock și Price is Right cu ușurință.

Pasul 1: Materiale

  • PhidgetIR
  • PhidgetSBC4 (sau orice computer de bord unic, cum ar fi Raspberry Pi)
  • Ciocan de lipit
  • Freze laterale
  • Dispozitive de decupare a firelor
  • Sârme jumper
  • Cablu USB
  • Cablu Phidget
  • Incintă
  • Anteturi prin găuri
  • Tuburi termocontractabile

Pasul 2: Planificare

Imprimare 3D
Imprimare 3D

Pentru a crea telecomanda, aveam nevoie de abilitatea de a trimite comenzi în infraroșu (CIR) către televizor. Am decis să folosesc PhigetIR pentru această sarcină. PhidgetIR este un dispozitiv controlat prin USB care are capacitatea de a trimite și primi comenzi CIR. Am ales asta din câteva motive:

  • Am vrut să termin acest proiect cât mai curând posibil și să-l folosesc, așa că gândul de a-mi sparge osciloscopul și panoul de măsurare nu era atrăgător. De asemenea, cât de probabil este ca circuitele mele lipite manual să funcționeze în continuare într-un an sau doi?
  • PhidgetIR are capacitatea de a „învăța” comenzile CIR făcând dezvoltarea extrem de simplă.
  • Puteți utiliza aproape orice limbaj de programare mainstream cu PhidgetIR. Acest lucru însemna că aș putea folosi Java și finaliza lucrurile rapid.
  • În cele din urmă, lucrez pentru Phidgets, așa că sunt confortabil cu API-ul și există întotdeauna dispozitive de rezervă.

Deoarece am ales să folosesc PhidgetIR, aveam nevoie de un computer pentru a-l rula. Am vrut ca acest proiect să fie o aplicație de sine stătătoare, la fel ca o telecomandă normală, așa că un desktop sau laptop era în afara. Am ales să folosesc un PhidgetSBC4 (un computer cu o singură placă care rulează Debian Linux), deoarece îmi permitea interfața cu ambele butoane fără niciun hardware suplimentar. Ele pot fi conectate direct la hub-ul VINT încorporat. Notă: puteți utiliza și un Raspberry Pi pentru acest proiect. În cele din urmă, pe lângă funcționalitatea sunetului, am vrut ca acest proiect să arate grozav, așa că am decis că va fi necesară o incintă tipărită 3D.

Pasul 3: Imprimare 3D

Imprimare 3D
Imprimare 3D
Imprimare 3D
Imprimare 3D

Pentru acest proiect, Geomagic a fost folosit pentru modelarea incintei. Există fișiere 3D pas disponibile atât pentru PhidgetIR, cât și pentru PhidgetSBC4, care au simplificat procesul. Unele decizii au fost luate în acest pas cu privire la dimensiunea și funcționalitatea incintei:

  • PhidgetIR are două LED-uri IR care trebuie să fie orientate spre televizor pentru a trimite comenzi. În loc să proiecteze carcasa în jurul plăcii PhidgetIR, LED-urile IR pot fi desoldate și lipite în găurile de pe partea laterală a carcasei. Placa PhidgetIR ar putea fi apoi montată departe de LED-uri, utilizând spațiul gol.
  • Conectorii VINT Hub de pe PhidgetSBC4 ar putea fi îndoiți în sus, ceea ce ar permite totuși accesul la conexiunile cu buton și ar împiedica, de asemenea, crearea unei carcase mai mari.

De asemenea, am decis să adaug o etichetă pentru butoane și o etichetă care să indice direcția pe care ar trebui să o orienteze, astfel încât LED-urile IR să fie îndreptate în direcția corectă. Am imprimat incinta local din plastic ABS negru.

Pasul 4: Asamblare - Scoateți LED-urile

Asamblare - Scoateți LED-urile
Asamblare - Scoateți LED-urile
Asamblare - Scoateți LED-urile
Asamblare - Scoateți LED-urile
Asamblare - Scoateți LED-urile
Asamblare - Scoateți LED-urile

LED-urile IR vor fi lipite în cele din urmă în găuri pe partea laterală a incintei. Aceasta înseamnă că mai întâi trebuie să fie desoldați.

Pasul 5: Asamblare - Adăugați anteturi prin găuri

Asamblare - Adăugați anteturi prin gaură
Asamblare - Adăugați anteturi prin gaură
Asamblare - Adăugați anteturi prin gaură
Asamblare - Adăugați anteturi prin gaură

Apoi, s-au adăugat anteturi prin găuri acolo unde erau LED-urile, ceea ce le-a făcut să fie ușor de conectat folosind un cablu jumper cu 4 pini. Utilizați tuburi termocontractabile pentru a preveni contactul accidental.

Pasul 6: Asamblare - Atașați LED-uri

Asamblare - Atașați LED-uri
Asamblare - Atașați LED-uri
Asamblare - Atașați LED-uri
Asamblare - Atașați LED-uri

Lipiți LED-urile în lateralul carcasei.

Pasul 7: Asamblare - Atașați PhidgetIR

Asamblare - Atașați PhidgetIR
Asamblare - Atașați PhidgetIR
Asamblare - Atașați PhidgetIR
Asamblare - Atașați PhidgetIR
Asamblare - Atașați PhidgetIR
Asamblare - Atașați PhidgetIR

Atașați PhidgetIR la carcasă și conectați LED-urile.

Pasul 8: Asamblare - Adăugarea de butoane

Asamblare - Adăugarea de butoane
Asamblare - Adăugarea de butoane
Asamblare - Adăugarea de butoane
Asamblare - Adăugarea de butoane
Asamblare - Adăugarea de butoane
Asamblare - Adăugarea de butoane

Butoanele trebuie conectate la hub-ul VINT încorporat de pe PhidgetSBC, așa că am tăiat un cablu Phidget în jumătate și am lipit capetele de butoane. Rețineți că sunt necesare doar firul alb (semnalul) și negrul (masa).

Pasul 9: Asamblare - Punând totul împreună

Asamblare - Punând totul împreună
Asamblare - Punând totul împreună
Asamblare - Punând totul împreună
Asamblare - Punând totul împreună

A fost necesară o anumită gestionare a cablurilor pentru a reuni totul, totuși carcasa a funcționat bine.

Pasul 10: Software - Cod

Există un singur fișier Java necesar pentru acest proiect pe care îl puteți găsi aici. Programul folosește un obiect PhidgetIR și două obiecte DigitalInput. Puteți crea aceste obiecte astfel:

PhidgetIR ir = nou PhidgetIR ();

DigitalInput tvButton = nou DigitalInput (); DigitalInput otherButton = nou DigitalInput ();

Obiectele de intrare digitală sunt mapate la un buton fizic de pe hub-ul VINT. Evenimentele de atașare, detașare, eroare și modificare a stării sunt, de asemenea, abonate la:

tv.setIsHubPortDevice (adevărat);

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

Ascultătorul de schimbări de stare menționat mai sus arată astfel:

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

DigitalInput ch = (DigitalInput) disce.getSource (); încercați {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 ());}}};

Când este activat un buton, codul evenimentului se va executa și va seta un semnalizator. Aceste semnalizări vor fi referite și resetate în bucla principală. Bucla principală așteaptă pur și simplu o modificare a stării butonului și apoi trimite comenzi IR folosind funcția de transmisie disponibilă din API-ul PhidgetIR.

while (adevărat) {if (tvButtonActivated) {

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

Pasul 11: Software - Comenzi CIR

Software - Comenzi CIR
Software - Comenzi CIR

Iată un exemplu despre cum să creați o comandă (o comandă de creștere a volumului în acest caz):

// Cod IR

IRCodeInfo sourceButtonCI = new IRCodeInfo (); String volumeUp = "77e1d0f0"; // Configurați butonul sursă 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;

Pentru a obține informațiile pentru această comandă, am folosit pur și simplu exemplul PhidgetIR care vine cu bibliotecile Phidget. După îndreptarea telecomenzii către PhidgetIR și menținerea apăsată a butonului de creștere a volumului, IR „învață” codul și completează exemplul. Aceste informații pot fi apoi copiate pur și simplu în cod.

Pasul 12: Rularea programului

Fișierul Java poate fi scris și compilat pe un computer extern. Plasați PhidgetRemote.java și phidget22.jar în același folder și rulați următoarea comandă:

Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java

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

După compilare, copiați fișierele clasei generate pe PhidgetSBC4 și configurați-le pentru a rula la pornire.

Pasul 13: Rezultat

Când i-am dat telecomanda bunicului iubitei mele și i-am arătat cum să o folosească, a fost uimit de cât de simplu era. Vizionați videoclipul pentru a-l vedea în acțiune!

Concurs de telecomandă 2017
Concurs de telecomandă 2017
Concurs de telecomandă 2017
Concurs de telecomandă 2017

Premiul III la Concursul de Telecomandă 2017

Recomandat: