Taula de continguts:
- Pas 1: materials
- Pas 2: planificació
- Pas 3: impressió 3D
- Pas 4: Muntatge: traieu els LED
- Pas 5: Muntatge: afegiu capçaleres de forats passants
- Pas 6: Muntatge: connecteu els LED
- Pas 7: Muntatge: connecteu el PhidgetIR
- Pas 8: Muntatge: afegir botons
- Pas 9: Muntatge: unir-ho tot
- Pas 10: Programari: codi
- Pas 11: Programari: ordres CIR
- Pas 12: Execució del programa
- Pas 13: Resultat
Vídeo: Tecnologia per al teu avi: 13 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Quantes vegades heu anat a casa dels vostres avis per ajudar-vos amb un "problema tecnològic" que acabava sent un cable d'alimentació desconnectat, una bateria remota morta o que no podia canviar la font del televisor? Sé que per a mi això passa bastant sovint. Tot i que la majoria dels seus problemes es poden resoldre simplement executant-se a la botiga per obtenir alguns AA nous, de vegades podrien beneficiar-se d’una solució més personalitzada.
Per exemple, l’avi de la meva xicota va aconseguir un televisor nou i vam intentar ensenyar-lo a canviar la font perquè pogués canviar entre DVD i TV, però no ho va saber. També té problemes amb la vista fallida i no li interessa massa intentar recordar processos complicats, només vol veure els seus programes quan vulgui. Després d’intentar explicar amb calma els passos de la nostra última visita sense gaire èxit, vaig decidir que només li convertiria en el seu senzill comandament a distància de dos botons. Això li permetria canviar la font d’entrada del televisor sense cap dolor, canviant entre els seus estimats DVD Matlock i Price is Right amb facilitat.
Pas 1: materials
- PhidgetIR
- PhidgetSBC4 (o qualsevol ordinador de placa com el Raspberry Pi)
- Soldador
- Talladors laterals
- Decapants de filferro
- Filferros de pont
- Cable USB
- Cable Phidget
- Recinte
- Capçaleres del forat
- Tubs retràctils
Pas 2: planificació
Per tal de crear el comandament a distància, necessitava la possibilitat d’enviar comandes d’infrarojos del consumidor (CIR) al televisor. Vaig decidir utilitzar el PhigetIR per a aquesta tasca. El PhidgetIR és un dispositiu controlat per USB que pot enviar i rebre comandes CIR. He escollit això per uns quants motius:
- Volia acabar aquest projecte el més aviat possible i fer-lo servir, de manera que la idea de trencar el meu oscil·loscopi i tauleta no era atractiva. A més, com és de probable que els meus circuits soldats a mà continuessin funcionant d'aquí a un any o dos?
- El PhidgetIR té la capacitat d '"aprendre" ordres CIR fent que el desenvolupament sigui extremadament senzill.
- Podeu utilitzar gairebé qualsevol llenguatge de programació convencional amb el PhidgetIR. Això significava que podia utilitzar Java i acabar les coses ràpidament.
- Finalment, treballo per a Phidgets, de manera que em sento còmode amb l’API i sempre hi ha dispositius de recanvi.
Com que vaig optar per utilitzar el PhidgetIR, necessitava un ordinador per executar-lo. Volia que aquest projecte fos una aplicació autònoma, com un comandament a distància normal, de manera que no hi havia un ordinador de sobretaula o un ordinador portàtil. Vaig optar per utilitzar un PhidgetSBC4 (un ordinador de placa única que executava Debian Linux), perquè em permetia connectar-me amb els dos botons de pressió sense cap maquinari addicional. Es poden connectar directament al centre VINT integrat. Nota: també podeu utilitzar un Raspberry Pi per a aquest projecte. Finalment, a més de tenir un so funcional, volia que aquest projecte tingués un aspecte fantàstic, de manera que vaig decidir que seria necessari un recinte imprès en 3D.
Pas 3: impressió 3D
Per a aquest projecte, Geomagic es va utilitzar per modelar el recinte. Hi ha fitxers de pas en 3D disponibles tant per al PhidgetIR com per al PhidgetSBC4, cosa que ha simplificat el procés. Durant aquest pas es van prendre algunes decisions sobre la mida i la funcionalitat del recinte:
- El PhidgetIR té dos LEDs IR que han d’estar orientats cap al televisor per enviar ordres. En lloc de dissenyar el recinte al voltant de la placa PhidgetIR, els LED IR es podrien dessoldar i enganxar als forats del costat del recinte. La placa PhidgetIR es podria muntar allunyada dels LED, utilitzant l'espai buit.
- Els connectors del concentrador VINT del PhidgetSBC4 es podrien inclinar cap amunt, cosa que encara permetria l’accés a les connexions de polsador i també evitaria haver de crear un recinte més gran.
També vaig decidir afegir una etiqueta per als botons i una etiqueta que indiqués la direcció que hauria d’afrontar de manera que els LEDs IR estiguessin apuntats en la direcció correcta. Vaig imprimir el gabinet localment de plàstic ABS negre.
Pas 4: Muntatge: traieu els LED
Els LEDs IR s’acabaran enganxant als forats del lateral del recinte. Això significa que primer cal dessoldar-los.
Pas 5: Muntatge: afegiu capçaleres de forats passants
A continuació, es van afegir capçaleres de forats passants allà on hi havia els LED, cosa que els va facilitar la connexió mitjançant un cable de pont de 4 pins. Utilitzeu tubs termoretràctils per evitar contactes accidentals.
Pas 6: Muntatge: connecteu els LED
Enganxeu els LED al lateral del recinte.
Pas 7: Muntatge: connecteu el PhidgetIR
Connecteu el PhidgetIR al recinte i connecteu els LED.
Pas 8: Muntatge: afegir botons
Els botons polsadors han d’estar connectats al concentrador VINT integrat al PhidgetSBC, de manera que vaig tallar un cable Phidget per la meitat i vaig soldar els extrems als botons. Tingueu en compte que només es requereix el cable blanc (senyal) i el negre (terra).
Pas 9: Muntatge: unir-ho tot
Es requeria una certa gestió de cables per aconseguir que tot s’unís, però el recinte funcionava bé.
Pas 10: Programari: codi
Només cal un fitxer Java únic per a aquest projecte que podeu trobar aquí. El programa utilitza un objecte PhidgetIR i dos objectes DigitalInput. Podeu crear aquests objectes així:
PhidgetIR ir = nou PhidgetIR ();
DigitalInput tvButton = new DigitalInput (); DigitalInput otherButton = new DigitalInput ();
Els objectes d’entrada digital s’assignen a un botó físic del concentrador VINT. Els esdeveniments de connexió, separació, error i canvi d'estat també estan subscrits a:
tv.setIsHubPortDevice (cert);
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 ();
L'oient de canvis d'estat referit més amunt té aquest aspecte:
privatestatic DigitalInputStateChangeListener onStateChangeListener = new DigitalInputStateChangeListener () {@ OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {
DigitalInput ch = (DigitalInput) disce.getSource (); prova {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 ());}}};
Quan s’activa un botó, el codi d’esdeveniment s’executarà i establirà un indicador. Aquests indicadors es faran referència i es restabliran al bucle principal. El bucle principal simplement espera un canvi en l'estat del botó i, a continuació, envia ordres IR mitjançant la funció de transmissió disponible a l'API PhidgetIR.
while (true) {if (tvButtonActivated) {
tvButtonActivated = fals; Log.log (LogLevel. INFO, "FONT CANVIANT - 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, "FONT CANVIANT - DVD"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (leftButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}
Pas 11: Programari: ordres CIR
Aquí teniu un exemple de com crear una ordre (en aquest cas, una ordre d’augmentar el volum):
// Codi IR
IRCodeInfo sourceButtonCI = new IRCodeInfo (); String volumeUp = "77e1d0f0"; // Configura el botó font 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 obtenir la informació d’aquesta ordre, simplement he utilitzat l’exemple de PhidgetIR que inclou les biblioteques de Phidget. Després d’assenyalar el comandament a distància cap al PhidgetIR i mantenir premut el botó d’augmentar el volum, l’IR “aprèn” el codi i omple l’exemple. Aquesta informació es pot copiar simplement al codi.
Pas 12: Execució del programa
El fitxer Java es pot escriure i compilar en un ordinador extern. Col·loqueu PhidgetRemote.java i phidget22.jar a la mateixa carpeta i executeu l'ordre següent:
Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java
macOS / Linuxjavac -classpath.: phidget22.jar PhidgetRemote.java
Després de compilar, copieu els fitxers de classe generats al PhidgetSBC4 i configureu-los perquè s'executi a l'arrencada.
Pas 13: Resultat
Quan vaig donar el comandament a l’avi de la meva xicota i li vaig mostrar com l’utilitzava, es va meravellar del simple que era. Mireu el vídeo per veure'l en acció.
Tercer premi del concurs de control remot 2017
Recomanat:
Feu clic de text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic: 3 passos
Feu clic en text a veu sobre una UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic: Introducció: Bon dia. Em dic Tod. Sóc un professional de l’aeroespacial i de la defensa que també té una mica de friki. Inspiració: prové de l’era de BBS de marcatge, microcontroladors de 8 bits, ordinadors personals Kaypro / Commodore / Tandy / TI-994A, quan R
Programa el teu Arduino amb un dispositiu Android mitjançant Bluetooth: 6 passos (amb imatges)
Programa el teu Arduino amb un dispositiu Android per Bluetooth: hola món, en aquest instructiu us vull mostrar com programar el vostre Arduino Uno amb el vostre dispositiu Android per Bluetooth. És molt senzill i tan barat. També ens permet programar el nostre Arduino allà on vulguem mitjançant bluetooth sense fil … Així que
Detectar l’avi fora del llit massa llarg: 7 passos
Detecció de l’avi fora del llit massa llarg: antecedents Tot i que hi ha hagut monitors d’alarma de llit des de fa molts anys que són tan sols tancaments de contactes de llitera que sonen una alarma local per als proveïdors d’atenció quan algú es lleva del llit, no hi ha hagut cap manera per a la família remota. cuidadors per fer un seguiment d'un
Pirateja el teu Halloween amb Phidgets: 9 passos (amb imatges)
Pirateja el teu Halloween amb Phidgets: aquest projecte us mostrarà com podeu " piratejar " la vostra decoració de Halloween i feu que es comportin exactament com vulgueu. La decoració de Halloween amb què treballem té la següent funcionalitat per defecte: s'activa mitjançant el botó de llançament (es mostra a
Domina el teu micro: bit amb Arduino IDE - Botó i altres GPIO: 3 passos (amb imatges)
Domina el teu micro: bit amb Arduino IDE: botó i altres GPIO: al nostre bloc anterior Mestre el teu micro: bit amb Arduino IDE - - Light LED, hem parlat de com instal·lar la biblioteca micro: bit a Arduino IDE i de com per conduir LED en micro: bit amb Arduino IDE. En aquest article, us direm h