Tartalomjegyzék:

Technológia nagyapád számára: 13 lépés (képekkel)
Technológia nagyapád számára: 13 lépés (képekkel)

Videó: Technológia nagyapád számára: 13 lépés (képekkel)

Videó: Technológia nagyapád számára: 13 lépés (képekkel)
Videó: Ez a 12 Éves Lány Egy Pszichopata...Nem Fogod Elhinni Hogy Mit Tett!!! [LEGJOBB] 2024, November
Anonim
Image
Image

Hányszor járt a nagyszülei házában, hogy segítsen egy „technológiai problémán”, amely végül egy kihúzott tápkábel, egy lemerült távoli akkumulátor volt, vagy nem tudta átkapcsolni a forrást a tévén? Tudom, hogy számomra ez elég gyakran előfordul. Bár problémáik nagy részét meg lehet oldani, ha egyszerűen befutnak a boltba néhány új AA -hoz, néha hasznukra válhat egy személyre szabottabb megoldás.

Például a barátnőm nagyapja új televíziót kapott, és megpróbáltuk megtanítani neki, hogyan kell megváltoztatni a forrást, hogy át tudjon váltani a DVD -k és a TV között - de egyszerűen nem tudta kitalálni. A látásromlással is foglalkozik, és nem érdekli túlságosan, hogy megpróbáljon emlékezni a bonyolult folyamatokra, csak akkor akarja nézni a műsorait, amikor akarja. Miután megpróbáltam higgadtan elmagyarázni az utolsó látogatásunk lépéseit, sok siker nélkül, úgy döntöttem, hogy egyszerűen elkészítem neki a saját egyszerű, kétgombos távirányítóját. Ez lehetővé tenné számára, hogy fájdalommentesen megváltoztassa a televízió bemeneti forrását, és könnyedén váltson a szeretett Matlock DVD -k és az Price is Right között.

1. lépés: Anyagok

  • PhidgetIR
  • PhidgetSBC4 (vagy bármely egylapos számítógép, mint a Raspberry Pi)
  • Forrasztópáka
  • Oldalvágók
  • Huzalcsupaszítók
  • Jumper vezetékek
  • USB kábel
  • Phidget kábel
  • Burkolat
  • Átmenő lyukak
  • Hőre zsugorodó cső

2. lépés: Tervezés

3D nyomtatás
3D nyomtatás

A távirányító létrehozásához szükségem volt arra, hogy fogyasztói infravörös (CIR) parancsokat küldhessek a televíziónak. Úgy döntöttem, hogy a PhigetIR -t használom erre a feladatra. A PhidgetIR egy USB vezérlésű eszköz, amely képes CIR parancsok küldésére és fogadására egyaránt. Ezt néhány okból választottam:

  • Szerettem volna a lehető leghamarabb befejezni ezt a projektet, és használatba venni, így nem volt vonzó a gondolat, hogy feltörjem az oszcilloszkópomat és a kenyérszemet. Továbbá mennyire valószínű, hogy a kézzel forrasztott áramköreim egy-két év múlva is működnek?
  • A PhidgetIR képes „megtanulni” a CIR parancsokat, ami rendkívül egyszerűvé teszi a fejlesztést.
  • A PhidgetIR segítségével szinte bármilyen mainstream programozási nyelvet használhat. Ez azt jelentette, hogy használhatom a Java -t, és gyorsan befejezhetem a dolgokat.
  • Végül a Phidgets -nél dolgozom, így elégedett vagyok az API -val, és mindig vannak tartalék eszközök.

Mivel a PhidgetIR használatát választottam, szükségem volt egy számítógépre, amellyel futtatni tudtam. Azt akartam, hogy ez a projekt önálló alkalmazás legyen, hasonlóan a normál távirányítóhoz, így egy asztali számítógép vagy laptop kimaradt. Úgy döntöttem, hogy a PhidgetSBC4-et (Debian Linuxot futtató egylapos számítógépet) használom, mert ez lehetővé tette, hogy mindkét nyomógombbal minden további hardver nélkül kezelhessem. Egyszerűen csatlakoztathatók közvetlenül a beépített VINT hubhoz. Megjegyzés: ehhez a projekthez Raspberry Pi -t is használhat. Végül, amellett, hogy funkcionálisan megbízható, szeretném, ha ez a projekt jól nézne ki, ezért úgy döntöttem, hogy szükség lesz egy 3D nyomtatott házra.

3. lépés: 3D nyomtatás

3D nyomtatás
3D nyomtatás
3D nyomtatás
3D nyomtatás

Ehhez a projekthez a Geomagic -t használták a ház modellezésére. Mind a PhidgetIR, mind a PhidgetSBC4 számára 3D lépésfájlok állnak rendelkezésre, amelyek egyszerűsítették a folyamatot. Ebben a lépésben néhány döntés született a ház méretéről és funkcionalitásáról:

  • A PhidgetIR két IR LED -del rendelkezik, amelyeknek a TV felé kell mutatniuk a parancsok küldéséhez. Ahelyett, hogy a házat a PhidgetIR tábla köré tervezné, az infravörös LED -eket ki lehet forrasztani, és be kell ragasztani a ház oldalán található lyukakba. A PhidgetIR táblát ezután a LED -ektől távol is fel lehet szerelni, kihasználva az üres helyet.
  • A PhidgetSBC4 VINT Hub csatlakozói felfelé hajlíthatók, ami továbbra is lehetővé teszi a nyomógombos kapcsolatok elérését, és megakadályozza azt is, hogy nagyobb házat kelljen létrehozni.

Elhatároztam, hogy hozzáadok egy címkét a gombokhoz és egy címkét, amely jelzi, hogy milyen irányba kell fordulnia, hogy az IR LED -ek a megfelelő irányba mutassanak. A házat fekete ABS műanyagból nyomtam ki.

4. lépés: Összeszerelés - Távolítsa el a LED -eket

Összeszerelés - Távolítsa el a LED -eket
Összeszerelés - Távolítsa el a LED -eket
Összeszerelés - Távolítsa el a LED -eket
Összeszerelés - Távolítsa el a LED -eket
Összeszerelés - Távolítsa el a LED -eket
Összeszerelés - Távolítsa el a LED -eket

Az IR LED -eket végül a burkolat oldalán lévő lyukakba ragasztják. Ez azt jelenti, hogy először forrasztani kell őket.

5. lépés: Összeszerelés - A lyukfejlécek hozzáadása

Összeszerelés - Hozzáadás lyukfejhez
Összeszerelés - Hozzáadás lyukfejhez
Összeszerelés - Hozzáadás lyukfejhez
Összeszerelés - Hozzáadás lyukfejhez

Ezt követően a LED-ekhez hasonlóan átmenő lyukú fejléceket adtak hozzá, amelyek megkönnyítették a csatlakoztatást egy 4 tűs jumper vezetékkel. A véletlen érintkezés elkerülése érdekében használjon zsugorcsövet.

6. lépés: Összeszerelés - Csatlakoztassa a LED -eket

Összeszerelés - Csatlakoztassa a LED -eket
Összeszerelés - Csatlakoztassa a LED -eket
Összeszerelés - Csatlakoztassa a LED -eket
Összeszerelés - Csatlakoztassa a LED -eket

Ragassza a LED -eket a ház oldalára.

7. lépés: Összeszerelés - Csatlakoztassa a PhidgetIR -t

Összeszerelés - Csatlakoztassa a PhidgetIR -t
Összeszerelés - Csatlakoztassa a PhidgetIR -t
Összeszerelés - Csatlakoztassa a PhidgetIR -t
Összeszerelés - Csatlakoztassa a PhidgetIR -t
Összeszerelés - Csatlakoztassa a PhidgetIR -t
Összeszerelés - Csatlakoztassa a PhidgetIR -t

Csatlakoztassa a PhidgetIR -t a házhoz, és csatlakoztassa a LED -eket.

8. lépés: Összeszerelés - Gombok hozzáadása

Összeszerelés - Gombok hozzáadása
Összeszerelés - Gombok hozzáadása
Összeszerelés - Gombok hozzáadása
Összeszerelés - Gombok hozzáadása
Összeszerelés - Gombok hozzáadása
Összeszerelés - Gombok hozzáadása

A nyomógombokat a PhidgetSBC beépített VINT hubjához kell csatlakoztatni, ezért félbevágtam egy Phidget kábelt, és a végeket a gombokhoz forrasztottam. Vegye figyelembe, hogy csak a fehér vezeték (jel) és a fekete (föld) szükséges.

9. lépés: Összeszerelés - mindent össze kell rakni

Összeszerelés - mindent össze kell rakni
Összeszerelés - mindent össze kell rakni
Összeszerelés - mindent össze kell rakni
Összeszerelés - mindent össze kell rakni

Némi kábelkezelésre volt szükség ahhoz, hogy mindent össze lehessen hozni, azonban a ház jól működött.

10. lépés: Szoftver - kód

Ehhez a projekthez csak egyetlen Java fájl szükséges, amelyet itt talál. A program egy PhidgetIR objektumot és két DigitalInput objektumot használ. Ezeket az objektumokat a következőképpen hozhatja létre:

PhidgetIR ir = új PhidgetIR ();

DigitalInput tvButton = új DigitalInput (); DigitalInput otherButton = új DigitalInput ();

A digitális bemeneti objektumok a VINT Hub fizikai nyomógombjára vannak leképezve. A csatolás, leválasztás, hiba és állapotváltozás eseményei szintén előfizetnek:

tv.setIsHubPortDevice (igaz);

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

A fent említett állapotváltozás -figyelő így néz ki:

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

DigitalInput ch = (DigitalInput) disce.getSource (); próbálja meg {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("Hiba:"+ ex.getDescription ());}}};

Amikor egy gombot aktivál, az eseménykód végrehajtódik, és beállít egy zászlót. Ezekre a zászlókra hivatkozunk és visszaállítjuk a fő ciklusban. A fő hurok egyszerűen várja a gomb állapotának megváltozását, majd IR parancsokat küld a PhidgetIR API -ból elérhető átviteli funkció használatával.

while (igaz) {if (tvButtonActivated) {

tvButtonActivated = hamis; Log.log (LogLevel. INFO, "VÁLTOZÓ FORRÁS - TV"); ir.transmit (sourceButtonString, codeInfo); Téma.alvás (500); ir.transmit (rightButtonString, codeInfo); Téma.alvás (500); ir.transmit (enterButtonString, codeInfo);} if (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "CHANGING SOURCE - DVD"); ir.transmit (sourceButtonString, codeInfo); Téma.alvás (500); ir.transmit (leftButtonString, codeInfo); Téma.alvás (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

11. lépés: Szoftver - CIR parancsok

Szoftver - CIR parancsok
Szoftver - CIR parancsok

Íme egy példa a parancs létrehozására (ebben az esetben hangerőnövelő parancs):

IR -kód

IRCodeInfo sourceButtonCI = new IRCodeInfo (); String volumeUp = "77e1d0f0"; // A forrásgomb beállítása 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;

A parancshoz szükséges információk beszerzése érdekében egyszerűen a PhidgetIR könyvtárhoz tartozó PhidgetIR példát használtam. Miután a távirányítót a PhidgetIR felé mutatta, és lenyomva tartotta a hangerőnövelő gombot, az IR „megtanulja” a kódot, és kitölti a példát. Ez az információ egyszerűen másolható a kódba.

12. lépés: A program futtatása

A Java fájl írható és fordítható külső számítógépen. Helyezze a PhidgetRemote.java és a phidget22.jar fájlokat ugyanabba a mappába, és futtassa a következő parancsot:

Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java

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

A fordítás után másolja a létrehozott osztályfájlokat a PhidgetSBC4 -be, és állítsa be a rendszerindításra.

13. lépés: Eredmény

Amikor odaadtam a távirányítót a barátnőm nagyapjának, és megmutattam neki, hogyan kell használni, csodálkozott, hogy milyen egyszerű. Nézze meg a videót, hogy lássa működés közben!

Távvezérlő verseny 2017
Távvezérlő verseny 2017
Távvezérlő verseny 2017
Távvezérlő verseny 2017

Harmadik díj a távvezérlő versenyen 2017

Ajánlott: