Table des matières:

Émetteur et récepteur infrarouge NEC USB : 4 étapes (avec photos)
Émetteur et récepteur infrarouge NEC USB : 4 étapes (avec photos)

Vidéo: Émetteur et récepteur infrarouge NEC USB : 4 étapes (avec photos)

Vidéo: Émetteur et récepteur infrarouge NEC USB : 4 étapes (avec photos)
Vidéo: Utiliser l'INFRAROUGE avec Arduino FACILEMENT 2024, Décembre
Anonim
Émetteur et récepteur infrarouge NEC USB
Émetteur et récepteur infrarouge NEC USB

Ce projet est un spin-off d'un autre projet sur lequel je travaille et comme il y a un concours Remote Control 2017 sur Instructables, j'ai pensé poster ce projet. Alors si vous aimez ce projet, n'hésitez pas à voter pour lui. Merci.

Comme vous le savez peut-être, je suis un grand fan des contrôleurs PIC 8 bits de Microchip, voir:

J'utilise le langage de programmation JAL car il ressemble à Pascal (que j'aime aussi). Le compilateur JAL et les bibliothèques peuvent être téléchargés à partir de: https://www.justanotherlanguage.org/downloads (faites défiler vers le bas pour la dernière version publiée).

Normalement, j'écris tout le code moi-même pour bien comprendre ce que je fais, mais pour ce projet, j'avais besoin de connecter le PIC au port USB du PC et j'avais donc besoin d'un pilote série USB JAL pour ce contrôleur PIC. J'ai utilisé le pilote série USB dans le package de téléchargement JAL qui semble fonctionner correctement. Étant donné que ce pilote série USB a été écrit pour un PIC spécifique, j'ai utilisé ce PIC qui est le PIC18F14K50. Ce contrôleur a beaucoup plus de fonctionnalités que ce dont j'ai besoin pour ce projet, je suis donc actuellement en train de faire fonctionner ce pilote USB sur une version PIC plus simple, le PIC16F1455, qui est également moins chère.

Alors en quoi consiste ce projet ? Avec l'appareil mentionné dans ce Instructables, vous pouvez envoyer et recevoir des commandes de télécommande infrarouge depuis et vers votre PC via le port USB en utilisant le protocole NEC Infra-Red populaire. De cette façon, vous pouvez surveiller les commandes infrarouges et contrôler tout appareil utilisant le protocole de télécommande infrarouge NEC. Le projet décode et traduit les messages infrarouges en un octet d'adresse et un octet de commande ou en un message de répétition. L'adresse est - bien sûr - utilisée pour adresser un certain appareil comme un téléviseur ou une radio où l'octet de commande indique la fonction qui doit être exécutée comme Augmenter le volume, Diminuer le volume. En plus de décoder ces messages, ils peuvent également être transmis via Infra-Rouge à l'aide de cet appareil.

Étape 1: Quelques informations sur le protocole infrarouge NEC

Quelques informations sur le protocole infrarouge NEC
Quelques informations sur le protocole infrarouge NEC

Une brève introduction à ce protocole. Le protocole NEC Infra Red Remote Control est utilisé dans de nombreux appareils et télécommandes que vous pouvez acheter. Il module un signal infrarouge sur une porteuse de 38 kHz et utilise un codage de distance d'impulsion pour coder un « 1 » logique et un « 0 » logique. Le protocole utilise une simple vérification pour voir si le message est OK en envoyant à la fois l'adresse et l'octet de commande et une version inversée des deux dans un seul et même message et en vérifiant s'ils sont identiques après réception. Lorsqu'un bouton est enfoncé sur la télécommande, il envoie un message infrarouge complet avec l'adresse et la commande une fois. Maintenir le bouton enfoncé entraînera l'envoi d'un message répété plus court sans adresse ni information de commande. Le temps de répétition des messages transmis en maintenant le bouton enfoncé est fixe.

Plus d'informations sur le protocole NEC Infra Red peuvent par exemple être trouvées sur:

Étape 2: Composants requis

Composants requis
Composants requis
Composants requis
Composants requis

Vous devez disposer des composants suivants pour ce projet:

  • Microcontrôleur PIC PIC18F14K50, voir:
  • Cristal 12 MHz
  • Condensateur céramique: 2*100nF, 1*220 nF, 2*18pF
  • Condensateur électrolytique 47 uF/16V
  • Récepteur infrarouge TSOP4838, voir:
  • Résistances: 2*33k, 1*4k7, 1*1k, 3*330 Ohm, 1*22 Ohm
  • LED: 2 * Infrarouge, 1 Ambre, 1 Vert, 1 Rouge
  • Transistor BC640, voir:
  • Cavalier (facultatif)
  • Connecteur USB

Voir le schéma de principe sur la façon de connecter les composants. J'ai utilisé une maquette pour ce projet comme vous pouvez le voir sur la photo et dans la vidéo. Le circuit est alimenté par le port USB du PC.

Étape 3: Le logiciel et le fonctionnement de l'appareil

Comme déjà mentionné, le logiciel est écrit pour un PIC18F14K50. Il a été écrit en JAL. Le fichier Intel Hex pour programmer votre PIC est joint. Le logiciel remplit les fonctions suivantes:

  • Décoder les messages NEC Infra-Rouge et les envoyer au PC via USB. Le message est décodé à partir du flux binaire généré par le récepteur infrarouge et traduit en un message adresse + commande ou un message de répétition.
  • Envoi de messages NEC Infra Red reçus du PC via USB. Notez que le logiciel crée également la fréquence porteuse de 38 kHz qui pilote directement les LED infrarouges. En parallèle à la LED Infra-Rouge une LED Ambre est connectée de manière à rendre visible la transmission d'un message.

Par défaut, ce circuit coupera le récepteur infrarouge pendant la transmission d'un message infrarouge. Si un cavalier est placé sur la position « Unmute », il désactivera cette fonction de sourdine. Dans ce cas, le message infrarouge transmis sera également décodé en parallèle à la transmission et après réception complète, il sera envoyé en tant que message infrarouge reçu au PC. Si un message infrarouge NEC valide est reçu, la LED rouge « IR OK » s'allumera.

Pour faire fonctionner cet appareil, vous devez disposer d'un programme d'émulateur de terminal sur votre PC. J'ai utilisé "Termite" à cette fin. Lorsque l'appareil est connecté au PC, il sera automatiquement reconnu comme un port COM supplémentaire par Windows 10 car il semble y avoir un pilote Microchip pour cet appareil dans Windows 10 pré-installé. Le réglage de ce port COM doit être: 19200 bauds 8 bits, 1 bit d'arrêt, sans parité et utilisant le contrôle de flux RTS/CTS. Le débit en bauds peut être réglé sur n'importe quelle autre valeur si nécessaire, donc un débit en bauds de 115200 fonctionnera également. Une fois l'appareil configuré via le port USB en s'y connectant via le programme Terminal Emulator, la LED verte « Configuré » s'allumera.

Réception de messages infrarouges

Lorsqu'un message infrarouge est reçu, les éléments suivants s'affichent dans le programme Terminal Emulator:

  • 'A:xx C:xx' dans le cas d'un message complet, où xx est le nombre hexadécimal de l'adresse (A) et de la commande (C). Les valeurs pour les deux peuvent aller de 0x00 (0) à 0xFF (255).
  • « Répéter » en cas de message répété.

Envoi de messages infrarouges

Pour cela, j'avais besoin de définir un protocole qui indique à l'appareil quoi faire. Puisque nous utilisons un émulateur de terminal, j'ai utilisé des caractères ASCII pour définir un message. Le protocole pour envoyer une commande à l'appareil utilise le format suivant: « !AACCRR# », où (tous les caractères sont insensibles à la casse):

  • « ! » indique le début du message.
  • ‘AA’ est la valeur de l’adresse en notation hexadécimale donc ‘0’ à ‘9’ et ‘A’ à ‘F’,
  • ‘CC’ est la valeur de la commande en notation hexadécimale donc ‘0’ à ‘9’ et ‘A’ à ‘F’
  • « RR » est le nombre de messages répétés qui doivent être transmis en notation hexadécimale, donc « 0 » à « 9 » et « A » à « F ». Une valeur de « 00 » signifie qu'aucun message de répétition n'est envoyé.

Un exemple de message avec l'adresse 0x07, la commande 0x05 et 3 répétitions doit alors être tapé comme suit sur le programme Terminal Emulator: !070503#

L'appareil a des réponses différentes après l'envoi d'une commande depuis le PC:

  • « Y » signifie qu'un message a été transmis. Notez que cette réponse est donnée après que tous les messages - y compris toutes les répétitions - aient été transmis. Cela peut donc prendre un certain temps avant que cette réponse ne soit donnée lorsque de nombreux messages répétés doivent être transmis.
  • « N » signifie qu'il y avait un caractère illégal dans le message envoyé au PC.
  • « B » signifie qu'une transmission infrarouge était toujours occupée lorsque la commande a été donnée.
  • ?’ signifie que l’appareil attendait ‘!’ mais il a reçu autre chose.

Étape 4:

J'ai fait une courte vidéo de l'appareil en action. Pour cette vidéo, j'ai utilisé une lampe LED du commerce avec sa télécommande pour voir que la transmission et la réception fonctionnent. La vidéo montre les éléments suivants:

  • Configuration du périphérique USB à partir du programme d'émulation de terminal. Lorsque l'appareil est configuré, il répond avec le message « Transmetteur et récepteur infrarouges USB NEC ». Sur l'appareil, la LED verte est allumée, indiquant que l'appareil a été configuré par le PC.
  • La lampe est allumée avec la télécommande. Pour cela, la télécommande utilise l'adresse 0x00 et la commande 0x07 qui est décodée par l'appareil et affichée sur le PC.
  • La lampe est éteinte avec la télécommande. Pour cela, la télécommande utilise l'adresse 0x00 et la commande 0x06 qui est décodée par l'appareil et affichée sur le PC.
  • La lampe est allumée en tapant la même commande Remote Control sur le PC avec une valeur de répétition de 0 (pas de répétition) donc en tapant '!000700#'. La lampe s'allume.
  • Changer la couleur de la lampe en bleu en utilisant l'adresse 0x00 et la commande 0x0A et en utilisant les répétitions 0x30. La Led Ambre, qui est connectée en parallèle avec les LED Infra Rouges clignote indiquant la transmission du message de répétition via Infra Rouge. Le message tapé est « !000A30# ».

Notez que pendant l'enregistrement de cette vidéo, la connexion par cavalier « Unmute » était active afin que vous puissiez également voir le message transmis « !000700# », reçu sous la forme « A:00 C:07 » sur le programme d'émulation de terminal. Dans la démo de la lampe colorée en bleu, vous pouvez également voir que la LED rouge est allumée tant que les messages valides - répétés - sont transmis car ils sont reçus et décodés en parallèle avec la transmission des messages répétés.

Amusez-vous à construire votre propre projet et attendez vos réactions avec impatience. N'oubliez pas de voter pour ce projet au concours Remote Control 2017 si vous l'aimez. Merci encore.

Conseillé: