Projets:Perso:2013:IR remote via PC
IR remote via PC | |
---|---|
Auteur | Helorem |
Date de proposition | 18/08/2013 |
Tags du projet | ir |
Type de projet
Projet personnel de Helorem |
L'objectif : Enregistrer un signal IR provenant d'une télécommande pour pouvoir le rejouer par la suite. Puis faire passer ca via CPL pour atteindre ma TV :-)
|
Contents
- 1 Présentation
- 2 Avancement
- 2.1 Etape 1 : communication USB -> PC
- 2.2 Etape 2 : Transmettre un signal IR
- 2.3 Etape 3 : Enregistrer un signal IR
- 2.4 Etape 4 : Envoyer un signal IR
- 2.5 Etape 5 : Faire passer de la donnée via courant porteur
- 2.6 Etape 6 : Mise ne place d'un protocole de communication entre les modules via CPL
- 2.7 Etape 7 : Faire passer le signal IR via CPL
Présentation
- Objectif : Enregistrer un signal IR provenant d'une télécommande pour pouvoir le rejouer par la suite.
- Pourquoi : De mon PC, je veux pouvoir allumer la TV, le lecteur DVD, ect...
L'idée de base est de faire un Man-in-the-middle infrarouge.
Le module se branche en USB, et a deux modes :
- Enregistrement d'un signal IR
- Envoi d'un signal IR
Avancement
- Etape 1 : communication USB -> PC
- Etape 2 : Transmettre un signal IR
- Etape 3 : Enregistrer un signal IR
- Etape 4 : Envoyer un signal IR
- Etape 5 : Interrupteur via courant porteur
- Etape 6 : Mise ne place d'un protocole de communication entre les modules via CPL
- Etape 7 : Faire passer le signal IR via CPL
Etape 1 : communication USB -> PC
Ce premier module permet d'interagir avec le circuit depuis le PC via USB.
Pour ce faire, j'utilise un PIC16f1455, qui est le plus petit pic avec gestion de l'USB.
J'utilise l'USB comme source electrique, normalement 5V/200mA me sufiront largement.
La classe du peripherique est HID, car ainsi pas besoin de drivers. C'est possible car je n'ai pas besoin d'un gros debit, et comme ca la gestion des données brutes se fait en userspace.
Coté logiciel, j'ai fait un petit programme en python pour gerer mon protocol USB perso.
Etape 2 : Transmettre un signal IR
Je connecte un recepteur IR directement a une led IR.
La LED a une longueur d'onde de 940nm, et le recepteur une frequence de 38kHz. D'après mes recherches sur la toile, cela devrait couvrir la majorité des télécommandes.
Pour tester, j'ai un recepteur IR avec la telecommande utilisé pour controller le pc.
- Problème : Bin ca ne marche pas :-( la LED envoi bien un signal, mais le recepteur ne le prend pas en compte. J'ai aussi essayé en inversant le signal, sans resultat.
- [Edit] On m'a dit de verifier si ce n'etait pas un probleme de bruit infrarouge à cause des lumieres. Même test dans le noir et même resultat...
Etape 3 : Enregistrer un signal IR
J'etais parti sur les chapeaux de roue, donc la partie logiciel est deja bien avancée.
Je peux deja enregistrer les etats d'une pin dans un buffer avec une compression et quand mon buffer est plein, l'envoyer vers le PC.
Coté PC, le script python decode le buffer et l'affiche dans une fenetre graphique genre oscilloscope en permettant de zoomer, etc...
Au final, le script devrait pouvoir deduire le signal unitaire et l'enregistrer pour un usage ulterieur.
Etape 4 : Envoyer un signal IR
Là aussi une bonen partie du logiciel est faite.
Le controleur peut recevoir un buffer compressé et le rejouer.
Coté PC, rien n'est encore fait (j'envoie le buffer que j'ai recu sans modifications).
Etape 5 : Faire passer de la donnée via courant porteur
Ma TV est eloignée de mon PC, donc pour communiquer avec le module qui comporte la LED, je veux passer par courant porteur.
il faut dabord que je puisse faire un interrupteur via courant porteur, qui est la base materiel avant de mettre en place un protocol de communication.
Etape 6 : Mise ne place d'un protocole de communication entre les modules via CPL
J'ai deja une idée du protocole de reconnaissance des modules
Etape 7 : Faire passer le signal IR via CPL
Et quand j'en serais la ca sera fini !! :-)