Difference between revisions of "Projets:Perso:2013:IR remote via PC"

From Electrolab
Jump to: navigation, search
(Enregistrer un signal IR provenant d'une télécommande pour pouvoir le rejouer par la suite.)
Line 3: Line 3:
 
|author= Helorem
 
|author= Helorem
 
|proposal_date= 18/08/2013
 
|proposal_date= 18/08/2013
|abstract1=L'objectif : Enregistrer un signal IR provenant d'une télécommande pour pouvoir le rejouer par la suite.
+
|abstract1=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 :-)
 
|abstract2=
 
|abstract2=
 
|abstract3=
 
|abstract3=
Line 21: Line 21:
  
 
L'idée de base est de faire un Man-in-the-middle infrarouge.
 
L'idée de base est de faire un Man-in-the-middle infrarouge.
Le module se branche en USB, et a deux modes :  
+
 
 +
Le module se branche en USB, et a deux modes :
 +
 
 
- Enregistrement d'un signal IR
 
- Enregistrement d'un signal IR
 +
 
- Envoi d'un signal IR
 
- Envoi d'un signal IR
  
  
 
= Avancement =
 
= Avancement =
 +
 
# {{Avancement|100||border: solid 1px gray;background-color: lightgray;width: 50px;margin-right:10px;margin-top:-5px;display:inline-block;}}Etape 1 : communication USB -> PC
 
# {{Avancement|100||border: solid 1px gray;background-color: lightgray;width: 50px;margin-right:10px;margin-top:-5px;display:inline-block;}}Etape 1 : communication USB -> PC
 
# {{Avancement|30||border: solid 1px gray;background-color: lightgray;width: 50px;margin-right:10px;margin-top:-5px;display:inline-block;}}Etape 2 : Transmettre un signal IR
 
# {{Avancement|30||border: solid 1px gray;background-color: lightgray;width: 50px;margin-right:10px;margin-top:-5px;display:inline-block;}}Etape 2 : Transmettre un signal IR
Line 39: Line 43:
  
 
Ce premier module permet d'interagir avec le circuit depuis le PC via USB.
 
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.
 
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 suffiront largement.
+
 
 +
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.
 
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.
 
Coté logiciel, j'ai fait un petit programme en python pour gerer mon protocol USB perso.
  
  
 
== Etape 2 : Transmettre un signal IR ==
 
== Etape 2 : Transmettre un signal IR ==
 +
 
[[File:ir_forwarder.png]]
 
[[File:ir_forwarder.png]]
  
 
Je connecte un recepteur IR directement a une led 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.
 
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.
 
Pour tester, j'ai un recepteur IR avec la telecommande utilisé pour controller le pc.
  
Line 57: Line 68:
  
 
== Etape 3 : Enregistrer un signal IR ==
 
== 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.
+
 
 +
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...
 
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
+
 
 +
Au final, le script devrait pouvoir deduire le signal unitaire et l'enregistrer pour un usage ulterieur.
  
  
 
== Etape 4 : Envoyer un signal IR ==
 
== Etape 4 : Envoyer un signal IR ==
 +
 
Là aussi une bonen partie du logiciel est faite.
 
Là aussi une bonen partie du logiciel est faite.
 +
 
Le controleur peut recevoir un buffer compressé et le rejouer.
 
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).
 
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 ==
 
== 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.
 
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.
 
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 ==
 
== 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
 
J'ai deja une idée du protocole de reconnaissance des modules
  
  
 
== Etape 7 : Faire passer le signal IR via CPL ==
 
== Etape 7 : Faire passer le signal IR via CPL ==
 +
 
Et quand j'en serais la ca sera fini !! :-)
 
Et quand j'en serais la ca sera fini !! :-)

Revision as of 16:37, 18 August 2013

IR remote via PC
Auteur Helorem
Date de proposition 18/08/2013
Tags du projet ir
Type de projet

Projet personnel de Helorem

Projet IR remote via PC

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 :-)





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

  1. 100 %
    Etape 1 : communication USB -> PC
  2. 30 %
    Etape 2 : Transmettre un signal IR
  3. 50 %
    Etape 3 : Enregistrer un signal IR
  4. 50 %
    Etape 4 : Envoyer un signal IR
  5. 0 %
    Etape 5 : Interrupteur via courant porteur
  6. 5 %
    Etape 6 : Mise ne place d'un protocole de communication entre les modules via CPL
  7. 0 %
    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

Ir forwarder.png

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 :-(


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 !! :-)