Table des matières:

La technologie pour votre grand-père : 13 étapes (avec photos)
La technologie pour votre grand-père : 13 étapes (avec photos)

Vidéo: La technologie pour votre grand-père : 13 étapes (avec photos)

Vidéo: La technologie pour votre grand-père : 13 étapes (avec photos)
Vidéo: Le Plus Grand Point Noir Du Monde ?😱 2024, Novembre
Anonim
Image
Image

Combien de fois êtes-vous allé chez vos grands-parents pour aider avec un « problème technologique » qui a fini par être un câble d'alimentation débranché, une batterie de télécommande morte ou l'impossibilité de changer la source de leur téléviseur ? Je sais que pour moi, cela arrive assez souvent. Alors que la plupart de leurs problèmes peuvent être résolus en courant simplement au magasin pour de nouveaux AA, ils pourraient parfois bénéficier d'une solution plus personnalisée.

Par exemple, le grand-père de ma petite amie s'est procuré une nouvelle télévision et nous avons essayé de lui apprendre à changer la source pour qu'il puisse basculer entre les DVD et la télévision - mais il n'y arrivait tout simplement pas. Il est également aux prises avec une vue défaillante et n'est pas trop intéressé à essayer de se souvenir de processus compliqués, il veut juste regarder ses émissions quand il le souhaite. Après avoir essayé d'expliquer calmement les étapes lors de notre dernière visite sans grand succès, j'ai décidé de lui faire sa propre télécommande simple à deux boutons. Cela lui permettrait de changer la source d'entrée de son téléviseur sans douleur, en basculant facilement entre ses DVD Matlock bien-aimés et Price is Right.

Étape 1: Matériaux

  • PhidgetIR
  • PhidgetSBC4 (ou n'importe quel ordinateur monocarte comme le Raspberry Pi)
  • Fer à souder
  • Pince coupante latérale
  • Pince à dénuder
  • Fils de cavalier
  • Cable USB
  • Câble Phidget
  • Enceinte
  • En-têtes traversants
  • Gaine thermorétractable

Étape 2: Planification

Impression 3D
Impression 3D

Afin de créer la télécommande, j'avais besoin de pouvoir envoyer des commandes infrarouges grand public (CIR) au téléviseur. J'ai décidé d'utiliser le PhigetIR pour cette tâche. Le PhidgetIR est un appareil contrôlé par USB qui a la capacité d'envoyer et de recevoir des commandes CIR. J'ai choisi celui-ci pour plusieurs raisons:

  • Je voulais terminer ce projet dès que possible et le mettre à profit, donc l'idée de sortir mon oscilloscope et ma maquette n'était pas attrayante. De plus, quelle est la probabilité que mes circuits soudés à la main fonctionnent encore dans un an ou deux ?
  • Le PhidgetIR a la capacité d'« apprendre » les commandes CIR, ce qui rend le développement extrêmement simple.
  • Vous pouvez utiliser presque n'importe quel langage de programmation grand public avec le PhidgetIR. Cela signifiait que je pouvais utiliser Java et terminer les choses rapidement.
  • Enfin, je travaille pour Phidgets, donc je suis à l'aise avec l'API, et il y a toujours des appareils de rechange qui traînent.

Parce que j'ai choisi d'utiliser le PhidgetIR, j'avais besoin d'un ordinateur pour l'exécuter. Je voulais que ce projet soit une application autonome, un peu comme une télécommande normale, donc un ordinateur de bureau ou un ordinateur portable était sorti. J'ai choisi d'utiliser un PhidgetSBC4 (un ordinateur monocarte fonctionnant sous Debian Linux), car il me permettait de m'interfacer avec les deux boutons poussoirs sans aucun matériel supplémentaire. Ils peuvent simplement être câblés directement au hub VINT intégré. Remarque: vous pouvez également utiliser un Raspberry Pi pour ce projet. Enfin, en plus d'être fonctionnel, je voulais que ce projet ait fière allure, j'ai donc décidé qu'un boîtier imprimé en 3D serait nécessaire.

Étape 3: impression 3D

Impression 3D
Impression 3D
Impression 3D
Impression 3D

Pour ce projet, Geomagic a été utilisé pour modéliser l'enceinte. Des fichiers d'étapes 3D sont disponibles pour le PhidgetIR et le PhidgetSBC4, ce qui a simplifié le processus. Certaines décisions ont été prises au cours de cette étape concernant la taille et la fonctionnalité du boîtier:

  • Le PhidgetIR a deux LED IR qui doivent être dirigées vers le téléviseur afin d'envoyer des commandes. Au lieu de concevoir le boîtier autour de la carte PhidgetIR, les LED IR pourraient être dessoudées et collées dans les trous sur le côté du boîtier. La carte PhidgetIR pourrait alors être montée loin des LED, en utilisant l'espace vide.
  • Les connecteurs VINT Hub sur le PhidgetSBC4 pourraient être pliés vers le haut, ce qui permettrait toujours l'accès aux connexions des boutons-poussoirs et éviterait également d'avoir à créer un boîtier plus grand.

J'ai également décidé d'ajouter une étiquette pour les boutons et une étiquette indiquant la direction dans laquelle il doit faire face afin que les LED IR soient pointées dans la bonne direction. J'ai imprimé le boîtier localement en plastique ABS noir.

Étape 4: Assemblage - Retirez les LED

Assemblage - Retirer les LED
Assemblage - Retirer les LED
Assemblage - Retirer les LED
Assemblage - Retirer les LED
Assemblage - Retirer les LED
Assemblage - Retirer les LED

Les LED IR seront éventuellement collées dans des trous sur le côté du boîtier. Cela signifie qu'ils doivent d'abord être dessoudés.

Étape 5: Assemblage - Ajouter des en-têtes de trou traversant

Assemblage - Ajouter des en-têtes de trou traversant
Assemblage - Ajouter des en-têtes de trou traversant
Assemblage - Ajouter des en-têtes de trou traversant
Assemblage - Ajouter des en-têtes de trou traversant

Ensuite, des embases traversantes ont été ajoutées là où se trouvaient les LED, ce qui les rendait faciles à connecter à l'aide d'un cavalier à 4 broches. Utilisez une gaine thermorétractable pour éviter tout contact accidentel.

Étape 6: Assemblage - Fixez les LED

Assemblage - Fixation des LED
Assemblage - Fixation des LED
Assemblage - Fixation des LED
Assemblage - Fixation des LED

Collez les LED sur le côté du boîtier.

Étape 7: Assemblage - Fixez le PhidgetIR

Assemblage - Fixez le PhidgetIR
Assemblage - Fixez le PhidgetIR
Assemblage - Fixez le PhidgetIR
Assemblage - Fixez le PhidgetIR
Assemblage - Fixez le PhidgetIR
Assemblage - Fixez le PhidgetIR

Fixez le PhidgetIR au boîtier et connectez les voyants.

Étape 8: Assemblage - Ajout de boutons

Assemblage - Ajout de boutons
Assemblage - Ajout de boutons
Assemblage - Ajout de boutons
Assemblage - Ajout de boutons
Assemblage - Ajout de boutons
Assemblage - Ajout de boutons

Les boutons-poussoirs doivent être connectés au hub VINT intégré sur le PhidgetSBC, j'ai donc coupé un câble Phidget en deux et soudé les extrémités aux boutons. Notez que seuls le fil blanc (signal) et noir (terre) sont nécessaires.

Étape 9: Assemblage - Assembler le tout

Assemblage - Tout mettre en place
Assemblage - Tout mettre en place
Assemblage - Tout mettre en place
Assemblage - Tout mettre en place

Une certaine gestion des câbles était nécessaire pour tout assembler, cependant, le boîtier a bien fonctionné.

Étape 10: Logiciel - Code

Il n'y a qu'un seul fichier Java requis pour ce projet que vous pouvez trouver ici. Le programme utilise un objet PhidgetIR et deux objets DigitalInput. Vous pouvez créer ces objets comme ceci:

PhidgetIR ir =nouveau PhidgetIR();

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

Les objets d'entrée numérique sont mappés sur un bouton-poussoir physique sur le hub VINT. Les événements d'attachement, de détachement, d'erreur et de changement d'état sont également souscrits à:

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

L'écouteur de changement d'état référencé ci-dessus ressemble à ceci:

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());}}};

Lorsqu'un bouton est activé, le code d'événement s'exécute et définit un indicateur. Ces drapeaux seront référencés et réinitialisés dans la boucle principale. La boucle principale attend simplement un changement dans l'état du bouton, puis envoie des commandes IR en utilisant la fonction de transmission qui est disponible à partir de l'API PhidgetIR.

while(true){if(tvButtonActivated){

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

Étape 11: Logiciel - Commandes CIR

Logiciel - Commandes CIR
Logiciel - Commandes CIR

Voici un exemple de création d'une commande (une commande d'augmentation du volume dans ce cas):

//Code RI

IRCodeInfo sourceButtonCI =nouveau IRCodeInfo(); String volumeUp ="77e1d0f0";//Configurer le bouton source 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;

Afin d'obtenir les informations pour cette commande, j'ai simplement utilisé l'exemple PhidgetIR fourni avec les bibliothèques Phidget. Après avoir pointé la télécommande vers le PhidgetIR et maintenu enfoncé le bouton d'augmentation du volume, l'IR « apprend » le code et remplit l'exemple. Cette information peut ensuite être simplement copiée dans le code.

Étape 12: Exécuter le programme

Le fichier Java peut être écrit et compilé sur un ordinateur externe. Placez PhidgetRemote.java et phidget22.jar dans le même dossier et exécutez la commande suivante:

Windowsjavac -classpath.;phidget22.jar PhidgetRemote.java

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

Après la compilation, copiez les fichiers de classe générés sur le PhidgetSBC4 et configurez-le pour qu'il s'exécute au démarrage.

Étape 13: Résultat

Quand j'ai donné la télécommande au grand-père de ma petite amie et lui ai montré comment l'utiliser, il a été étonné de voir à quel point c'était simple. Regardez la vidéo pour le voir en action!

Concours Télécommande 2017
Concours Télécommande 2017
Concours Télécommande 2017
Concours Télécommande 2017

Troisième Prix du Concours Télécommande 2017

Conseillé: