Table des matières:

La télécommande IR de l'ordinateur : 4 étapes
La télécommande IR de l'ordinateur : 4 étapes

Vidéo: La télécommande IR de l'ordinateur : 4 étapes

Vidéo: La télécommande IR de l'ordinateur : 4 étapes
Vidéo: Comment projeter l'écran PC 💻 sur TV 📺 sans fil ? 🔥 2024, Novembre
Anonim
La télécommande IR de l'ordinateur
La télécommande IR de l'ordinateur

En plus de nombreuses autres fins, j'utilise mon PC comme centre multimédia. Il y a des moments où je me détends sur le canapé en écoutant de la musique ou en regardant un film ou la télévision et je n'ai pas envie de me lever pour régler le volume ou changer de chaîne de télévision chaque fois que des publicités stupides apparaissent ou que je m'endors et que je souhaite la silence. J'ai donc décidé de contrôler mon PC à distance avec une télécommande IR standard afin que je puisse simplement appuyer instantanément sur le bouton au lieu de saisir furieusement la souris ou la touche muet du clavier.

Le projet se compose de plusieurs parties:

  1. Télécommande
  2. Logiciel informatique
  3. Module récepteur infrarouge

Étape 1: La télécommande

La télécommande
La télécommande

Le premier élément - la télécommande - est trivial à utiliser. Utilisez simplement n'importe quel contrôle infrarouge que vous aimez. J'ai utilisé celui qui est à vendre comme ensemble avec récepteur IR - voir la photo. La seule raison pour laquelle j'ai opté pour ce type est simplement parce que je l'avais déjà à la maison.

Étape 2: Logiciel

J'ai créé le programme pour le système d'exploitation GNU/Linux qui s'exécute dans un terminal. Le code source est gratuit à télécharger/utiliser/partager/modifier. Pour compiler le code, exécutez simplement la commande comme gcc -o remotePC remotePC.c dans le terminal. Pour exécuter le programme, tapez./remotePC.

Les informations suivantes dans cette étape s'adressent à ceux qui s'intéressent à la façon dont les choses fonctionnent.

Le descriptif du programme

Le programme vérifie d'abord si le fichier /dev/ttyACM0 ou ttyACM1 existe. Si c'est le cas, l'ID de groupe du fichier est vérifié pour être différent de zéro. Cela signifie que le port série peut être lu et écrit par l'utilisateur commun. Deux octets avec les valeurs 0xAA 0x55 sont ensuite écrits sur le port pour signaler que le programme est prêt à recevoir les données. Les données entrantes sont comparées aux valeurs stockées. Si la correspondance est trouvée, l'action prédéfinie est exécutée.

Le contrôle du volume

Le programme est capable d'activer/désactiver le son, d'augmenter/diminuer le niveau de volume au niveau du système. Ceci est réalisé avec l'utilisation du programme pacl. Les commandes ressemblent alors à ceci:

pact set-sink-mute 0 basculer

pact set-évier-volume 0 +10%

pact set-évier-volume 0 -10%

Si nécessaire, installez les packages demandés.

Le contrôle VLC Media Player

Le programme peut également démarrer/mettre en pause l'audio/vidéo et passer à la piste précédente/suivante dans la liste de lecture de VLC Media Player. Le Desktop Bus est utilisé dans ce cas. Les commandes:

dbus-send --type=method_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause

dbus-send --type=method_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Next

dbus-send --type=method_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Previous

Étape 3: Module récepteur infrarouge

Module récepteur infrarouge
Module récepteur infrarouge
Module récepteur infrarouge
Module récepteur infrarouge
Module récepteur infrarouge
Module récepteur infrarouge

La troisième partie du projet est la plus complexe et pourtant assez simple. L'idée est que le récepteur IR enverra le signal au MCU qui le transformera en un numéro unique. Ce numéro sera ensuite transmis au PC via USB.

Le module est destiné à être monté à l'intérieur du boîtier du PC et connecté au port USB de la carte mère avec le câble. Si vous préférez la connexion externe à l'USB, vous devrez faire des ajustements mineurs.

MCU

J'ai construit le module sur le microcontrôleur PIC16F1829. Le choix du MCU n'est pas critique, vous pouvez utiliser n'importe quel autre MCU si vous êtes capable d'ajuster le code source. J'ai choisi ce PIC pour deux raisons. Premièrement, je l'avais à disposition et deuxièmement, ses broches étaient en partie endommagées par l'utilisation intensive dans les différents projets de test. J'ai donc voulu l'utiliser dans le projet permanent avant qu'il ne devienne totalement inutilisable.:-)

Récepteur infrarouge

La deuxième partie sur laquelle le module est basé est le récepteur IR VS1838B - celui mentionné à la 1ère étape.

Convertisseur UART/USB

La troisième partie est le MCP2221 qui est le convertisseur UART/I2C/USB.

La tâche consiste à combiner ces 3 parties pour constituer le module qui pourra recevoir les signaux de la télécommande IR et les transmettre au PC.

Le câblage

Dans la première image, il y a le circuit de test sur la planche à pain. Dans le second, il y a le schéma de câblage.

La liste des pièces

1 pc PIC16F1829 (ou tout autre MCU)

1 pc VS1838B (ou tout autre récepteur IR)

1 pc MCP2221 (ou tout autre convertisseur UART/USB)

2 en-têtes à 4 broches

1 en-tête à 6 broches

1 résistance 100R

2 résistances 10K

2 résistances 330R

1 condensateur 470 nF

2 condensateurs électrolytiques 4,7 uF

1 interrupteur (facultatif)

Assemblage PCB

Assemblez le module à l'aide du schéma. Vous pouvez soit utiliser la carte universelle, soit créer le PCB personnalisé. Si c'est le cas, j'ai fourni les fichiers KiCad dans l'archive ci-dessous.

Le firmware

Le code source du PIC écrit à l'aide de l'IDE MPLAB X et du compilateur XC8 est disponible en téléchargement ci-dessous.

Les notes de code source

Pour ceux qui voudraient savoir exactement ce que fait le programme sont les lignes suivantes.

Une fois tous les réglages effectués, la LED rouge est allumée et le MCU attend les données 0x55AA. Après cela, la LED devient verte et le MCU commence à détecter le signal du récepteur IR à l'aide des interruptions. Il mesure et enregistre les intervalles de temps pendant lesquels le signal se situe aux niveaux haut et bas. Ces heures sont ensuite transformées en nombre de 32 bits qui est envoyé au PC.

La relation entre les heures et le nombre final est donnée par le protocole NEC.

Étape 4: Comment utiliser l'appareil

Comment utiliser l'appareil
Comment utiliser l'appareil
Comment utiliser l'appareil
Comment utiliser l'appareil
Comment utiliser l'appareil
Comment utiliser l'appareil

Micrologiciel

Téléchargez le firmware sur le PIC. J'utilise le programmateur PICkit 3.

Matériel

Installez le module récepteur IR comme indiqué sur les images:

  1. Connectez l'en-tête USB soit au port USB interne de la carte mère à l'intérieur du boîtier du PC avec un câble à 4 fils approprié, soit à l'extérieur du port USB avec le câble USB standard. Dans le second cas, vous devez vous aider d'une manière ou d'une autre, par ex. comme on le voit sur la 3ème photo pour une inspiration.
  2. Connectez le câble d'alimentation 5 V de la source d'alimentation à l'intérieur du boîtier du PC à l'en-tête à 4 broches. Ou alimenter le module d'une autre manière dans le cas d'une utilisation externe.

Recherchez la description des broches de la prise USB de la carte mère. Je ne sais pas si le câblage suit une sorte de norme, il est donc préférable de s'en assurer. Dans mon cas, il y a deux rangées de broches avec 5 broches dans la rangée supérieure et 4 broches dans la rangée inférieure. De gauche à droite, les broches sont + 5 V, D-, D+, Gnd. La 5ème broche de la première rangée n'est pas connectée. J'ai attaché le câble comme on le voit sur la deuxième photo.

Logiciel

Exécutez le programme dans le terminal. Si tout se passe bien, le dernier message du programme est "en attente de données…". Maintenant, lorsque vous appuyez sur le bouton de la télécommande, le code reçu apparaît dans le terminal. De cette façon, vous saurez quel bouton émet quel code.

Maintenant, des trucs de programmation vous attendent, mais ne vous inquiétez pas. Juste quelques éléments doivent être modifiés dans le code source du programme pour que le programme réponde à votre télécommande. Ouvrez le fichier remotePC.c dans l'éditeur de texte ou dans un IDE si vous le souhaitez et remplacez mes codes par les vôtres. Appuyez simplement sur les boutons que vous avez l'intention d'utiliser pour chaque action un par un. Copiez simplement les codes qui apparaissent dans le terminal et collez-les dans le code source à l'endroit avec l'action correspondante.

Lorsque vous avez terminé, terminez le programme et recompilez le code avec la commande gcc -o remotePC remotePC.c. Exécutez à nouveau le programme et il répondra désormais à votre télécommande.

J'utilise cette méthode avec des actions codées en dur dans le programme car je trouve inutile de perdre mon temps avec le développement ultérieur du projet jusqu'à ce qu'il soit possible d'ajouter/modifier des codes/actions dans l'environnement graphique convivial par exemple. Mais si vous voulez faire cela ou même plus, vous le pouvez.

Conseillé: