INHOUDSOPGAWE:

Tegnologie vir u oupa: 13 stappe (met foto's)
Tegnologie vir u oupa: 13 stappe (met foto's)

Video: Tegnologie vir u oupa: 13 stappe (met foto's)

Video: Tegnologie vir u oupa: 13 stappe (met foto's)
Video: Собаку бросили в лесу с коробкой макарон. История собаки по имени Ринго. 2024, November
Anonim
Image
Image

Hoeveel keer het u na u grootouers se huis gegaan om te help met 'n 'tegnologiese probleem', wat uiteindelik 'n afgetrekte kragkabel was, 'n dooie afstandbattery of nie die bron op hul TV kon skakel nie? Ek weet dat dit vir my baie gereeld gebeur. Alhoewel die meeste van hul probleme opgelos kan word deur eenvoudig na die winkel te gaan vir nuwe AA's, kan hulle soms baat by 'n meer aangepaste oplossing.

Die oupa van my vriendin het byvoorbeeld 'n nuwe televisie gekry en ons het hom probeer leer hoe om die bron te verander, sodat hy tussen DVD's en TV's kon wissel - maar hy kon dit nie agterkom nie. Hy het ook 'n gebrek aan sig en het nie te veel belang om ingewikkelde prosesse te onthou nie, hy wil net na sy programme kyk wanneer hy wil. Nadat ek probeer het om die stappe tydens ons laaste besoek kalm te verduidelik sonder veel sukses, het ek besluit dat ek hom net sy eie eenvoudige afstandsbediening met twee knoppies sou maak. Dit sou hom toelaat om die invoerbron op sy televisie pynloos te verander, en maklik tussen sy geliefde Matlock DVD's en Price is Right te skakel.

Stap 1: materiaal

  • PhidgetIR
  • PhidgetSBC4 (of enige enkelbordrekenaar soos die Raspberry Pi)
  • Soldeerbout
  • Kantsnyers
  • Draadstroppers
  • Jumper Wires
  • USB -kabel
  • Phidget -kabel
  • Omhulsel
  • Deurlopende opskrifte
  • Krimpbuis

Stap 2: Beplanning

3D druk
3D druk

Om die afstandsbediening te skep, het ek die vermoë nodig om verbruikers -infrarooi (CIR) opdragte na die televisie te stuur. Ek het besluit om die PhigetIR vir hierdie taak te gebruik. Die PhidgetIR is 'n USB -beheerde toestel wat beide CIR -opdragte kan stuur en ontvang. Ek het dit om 'n paar redes gekies:

  • Ek wou hierdie projek so gou as moontlik voltooi en dit in gebruik neem, sodat die gedagte om my ossilloskoop en broodbord uit te breek nie aantreklik was nie. Hoe waarskynlik is dit dan ook dat my handgesoldeerde stroombane oor 'n jaar of twee nog sal werk?
  • Die PhidgetIR het die vermoë om CIR -opdragte te "leer", wat ontwikkeling uiters eenvoudig maak.
  • U kan byna enige algemene programmeertaal met die PhidgetIR gebruik. Dit het beteken dat ek Java kon gebruik en dinge vinnig kon afhandel.
  • Uiteindelik werk ek vir Phidgets, so ek is gemaklik met die API, en daar is altyd ekstra toestelle wat rondlê.

Omdat ek gekies het om die PhidgetIR te gebruik, het ek 'n rekenaar nodig om dit uit te voer. Ek wou hê dat hierdie projek 'n selfstandige toepassing moet wees, net soos 'n gewone afstandsbediening, sodat 'n lessenaar of skootrekenaar uit was. Ek het gekies om 'n PhidgetSBC4 ('n enkelbordrekenaar met Debian Linux) te gebruik, want dit het my in staat gestel om met albei drukknoppies te koppel sonder ekstra hardeware. Hulle kan eenvoudig direk aan die ingeboude VINT Hub gekoppel word. Let wel: u kan ook 'n Raspberry Pi vir hierdie projek gebruik. Uiteindelik, behalwe dat dit funksioneel gesond was, wou ek ook hê dat hierdie projek goed sou lyk, en ek het besluit dat 'n 3D -gedrukte omhulsel nodig sou wees.

Stap 3: 3D -druk

3D druk
3D druk
3D druk
3D druk

Vir hierdie projek is Geomagic gebruik om die omhulsel te modelleer. Daar is 3D -staplêers beskikbaar vir beide die PhidgetIR en die PhidgetSBC4 wat die proses vereenvoudig het. Sommige besluite is tydens hierdie stap geneem oor die grootte en funksionaliteit van die omhulsel:

  • Die PhidgetIR het twee IR -LED's wat na die TV moet wys om opdragte te stuur. In plaas daarvan om die omhulsel rondom die PhidgetIR -bord te ontwerp, kan die IR -LED's desoldeer en in die gate aan die kant van die omhulsel vasgeplak word. Die PhidgetIR -bord kan dan weg van die LED's gemonteer word, met die leë ruimte.
  • Die VINT Hub -verbindings op die PhidgetSBC4 kan opwaarts gebuig word, wat steeds toegang tot die drukknopverbindings moontlik maak, en dit sal ook verhoed dat 'n groter omhulsel nodig is.

Ek het ook besluit om 'n etiket vir die knoppies by te voeg en 'n etiket wat die rigting aandui, sodat die IR -LED's in die regte rigting wys. Ek het die omhulsel van swart ABS -plastiek gedruk.

Stap 4: Montering - Verwyder die LED's

Vergadering - Verwyder die LED's
Vergadering - Verwyder die LED's
Vergadering - Verwyder die LED's
Vergadering - Verwyder die LED's
Vergadering - Verwyder die LED's
Vergadering - Verwyder die LED's

Die IR -LED's word uiteindelik in gate aan die kant van die omhulsel vasgeplak. Dit beteken dat hulle eers ontsout moet word.

Stap 5: Montering - Voeg deurkopgate by

Samestelling - Voeg deurkopgate by
Samestelling - Voeg deurkopgate by
Samestelling - Voeg deurkopgate by
Samestelling - Voeg deurkopgate by

Vervolgens is deurlopende koppe bygevoeg waar die LED's vroeër was, wat dit maklik gemaak het om aan te sluit met behulp van 'n 4-pins springdraad. Gebruik hitte-krimpbuise om toevallige kontak te voorkom.

Stap 6: Montering - Heg LED's aan

Vergadering - Heg LED's aan
Vergadering - Heg LED's aan
Vergadering - Heg LED's aan
Vergadering - Heg LED's aan

Plak die LED's aan die kant van die omhulsel vas.

Stap 7: Montering - Heg die PhidgetIR aan

Vergadering - Heg die PhidgetIR aan
Vergadering - Heg die PhidgetIR aan
Vergadering - Heg die PhidgetIR aan
Vergadering - Heg die PhidgetIR aan
Vergadering - Heg die PhidgetIR aan
Vergadering - Heg die PhidgetIR aan

Koppel die PhidgetIR aan die omhulsel en verbind die LED's.

Stap 8: Montering - Voeg knoppies by

Samestelling - Knoppies byvoeg
Samestelling - Knoppies byvoeg
Samestelling - Knoppies byvoeg
Samestelling - Knoppies byvoeg
Samestelling - Knoppies byvoeg
Samestelling - Knoppies byvoeg

Die drukknoppies moet aan die ingeboude VINT-hub op die PhidgetSBC gekoppel word, so ek het 'n Phidget-kabel middeldeur gesny en die punte aan die knoppies gesoldeer. Let daarop dat slegs die wit draad (sein) en swart (grond) benodig word.

Stap 9: Vergadering - Alles saamvoeg

Vergadering - Alles saamvoeg
Vergadering - Alles saamvoeg
Vergadering - Alles saamvoeg
Vergadering - Alles saamvoeg

Sommige kabelbestuur was nodig om alles bymekaar te kry, maar die omhulsel het goed gewerk.

Stap 10: sagteware - kode

Daar is slegs 'n enkele Java -lêer nodig vir hierdie projek wat u hier kan vind. Die program gebruik een PhidgetIR -voorwerp en twee DigitalInput -voorwerpe. U kan hierdie voorwerpe soos volg skep:

PhidgetIR ir = nuwe PhidgetIR ();

DigitalInput tvButton = nuwe DigitalInput (); DigitalInput otherButton = nuwe DigitalInput ();

Die digitale invoer -voorwerpe word op 'n fisiese drukknop op die VINT -hub gekarteer. Heg-, los-, fout- en toestandveranderingsgebeurtenisse word ook ingeteken op:

tv.setIsHubPortDevice (waar);

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

Die luisteraar na die staatsverandering waarna hierbo verwys word, lyk so:

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

DigitalInput ch = (DigitalInput) disce.getSource (); probeer {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 ());}}};

As 'n knoppie geaktiveer word, voer die gebeurteniskode 'n vlag uit. Daar sal na hierdie vlae verwys word en in die hooflus herstel word. Die hooflus wag eenvoudig op 'n verandering in die knoppie, en stuur dan IR -opdragte met behulp van die stuurfunksie wat beskikbaar is by die PhidgetIR API.

terwyl (waar) {if (tvButtonActivated) {

tvButtonActivated = vals; Log.log (LogLevel. INFO, "VERANDERENDE BRON - TV"); ir.transmit (sourceButtonString, codeInfo); Draad.slaap (500); ir.transmit (rightButtonString, codeInfo); Draad.slaap (500); ir.transmit (enterButtonString, codeInfo);} as (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "VERANDERENDE BRON - DVD"); ir.transmit (sourceButtonString, codeInfo); Draad.slaap (500); ir.transmit (leftButtonString, codeInfo); Draad.slaap (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

Stap 11: Sagteware - CIR -opdragte

Sagteware - CIR -opdragte
Sagteware - CIR -opdragte

Hier is 'n voorbeeld van hoe u 'n opdrag kan maak ('n volume -opdrag in hierdie geval):

// IR -kode

IRCodeInfo sourceButtonCI = nuwe IRCodeInfo (); String volumeUp = "77e1d0f0"; // Stel bronknoppie sourceButtonCI.bitCount = 32 op; 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;

Om die inligting vir hierdie opdrag te kry, gebruik ek eenvoudig die PhidgetIR -voorbeeld wat by die Phidget -biblioteke kom. Nadat die afstandsbediening na die PhidgetIR gerig is en die volumeknop ingedruk is, “leer” die IR die kode en vul die voorbeeld in. Hierdie inligting kan dan eenvoudig in die kode gekopieer word.

Stap 12: Begin die program

Die Java -lêer kan op 'n eksterne rekenaar geskryf en saamgestel word. Plaas PhidgetRemote.java en phidget22.jar in dieselfde gids en voer die volgende opdrag uit:

Windowsjavac -klaspad.; Phidget22.jar PhidgetRemote.java

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

Na die opstel, kopieer die gegenereerde klaslêers na die PhidgetSBC4 en stel dit in om tydens opstart te werk.

Stap 13: Resultaat

Toe ek die afstandsbediening vir die oupa van my vriendin gee en hom wys hoe om dit te gebruik, was hy verbaas oor hoe eenvoudig dit was. Kyk na die video om dit in aksie te sien!

Afstandsbedieningswedstryd 2017
Afstandsbedieningswedstryd 2017
Afstandsbedieningswedstryd 2017
Afstandsbedieningswedstryd 2017

Derde prys in die afstandbeheer -kompetisie 2017

Aanbeveel: