Aller au contenu


- - - - -

communication infrarouge


6 réponses à ce sujet

#1 Guest_elecrobot_*

Guest_elecrobot_*
  • Guests

Posté 13 avril 2011 - 07:49

Bonjour, je voudrais savoir comment recevoir une serie de bits envoyée par un emetteur
exemple: envoie de la valeur 34(c'est un exemple)soit 100010 par l'emetteur infrarouge, a une certaine fréquence pour eviter les interférences -> reception et decryptage de cette valeur par le recepteur.
En fait je bloque sur la reception et je vois pas comment recevoir cette valeur pour etre transferée dans un arduino.
Si vous n'avez pas compris j'essayerais de mieux réexpliquer.
A+ elecrobot

#2 ANT-001

ANT-001

    Membre

  • Membres
  • 123 messages
  • Gender:Male
  • Location:La premiére à gauche après jupiter.

Posté 13 avril 2011 - 08:17

Il faut me semble t-il soit créer une fonction dans ton programme pour interpréter cette info, soit créer une librairie qui s'occupe de contrôler et interpréter ce signal. Tu pourrais détaillé un peu plus les différents composants utilisés ?

#3 Guest_elecrobot_*

Guest_elecrobot_*
  • Guests

Posté 14 avril 2011 - 08:32

Voila j'ai fait un schéma(très très simplifié):
Fichier joint  ir.bmp   352,34 Ko   165 téléchargement(s)
Le composant qui est relié au pic de droite est un composant qui renvoie un niveau haut s'il y a une certaine fréquence en entrée et un niveau bas en l'absence de signal.
Le plus dur est surtout la partie décodage des signaux, j'ai deja commencer a regarder le codage philips RC5 mais c'est assez compliqué...

#4 ANT-001

ANT-001

    Membre

  • Membres
  • 123 messages
  • Gender:Male
  • Location:La premiére à gauche après jupiter.

Posté 14 avril 2011 - 09:25

D'accord, donc tu utilises les Pics comme interface IR qui renvoie ensuite le signal "décodé" dans l'Arduino ?
De toute manière je ne vais pas pouvoir te renseigner à partir du moment où il y-a des pics.
J’espère qu'une bonne âme du forum pourra t'aider dans ta galère !

#5 Guest_elecrobot_*

Guest_elecrobot_*
  • Guests

Posté 14 avril 2011 - 09:33

Non en fait le recepteur contient un PIC mais j'ai remplacé l'arduino par un PIC dans le schéma ;)
Dommage que tu ne puisse pas m'aider mais j'espère que quelqu'un pourra...
A+ elecrobot

#6 Robomaniac

Robomaniac

    Nouveau membre

  • Membres
  • 9 messages
  • Gender:Male
  • Location:Québec, Canada
  • Interests:Système embarqué et robotique.

Posté 16 juin 2011 - 10:12

Voila j'ai fait un schéma(très très simplifié):
Fichier joint  ir.bmp   352,34 Ko   165 téléchargement(s)
Le composant qui est relié au pic de droite est un composant qui renvoie un niveau haut s'il y a une certaine fréquence en entrée et un niveau bas en l'absence de signal.
Le plus dur est surtout la partie décodage des signaux, j'ai deja commencer a regarder le codage philips RC5 mais c'est assez compliqué...



  • ok premierement, met pas ton recepteur sur une pin analogue mais plutot sur une pin interrupt. RB0/INT (pin 6) Tu devrais toujours recevoir par interrupt car tu sais jamais quand tu vas recevoir une commande. (le but des interrupts)
  • L'autre chose tres important, c'est quand tu commences à faire de la communication entre dispositif, tu commences toujours avec des fils! Lorsque tout marche avec un fil, tu viens ajouter ton systeme d'interface infrarouge.
    Si tu fais pas sa, tu va perdre du temps pour le debuggage (est ce probleme hardware, software, LED, recepteur, lumiere ambiante, bruit, etc)
  • Enuite, un facon simple c'est d'utiliser le port serie pour transmettre tes données. le TX sort sur la LED et l'autre pic le receiver est sur le RX. Le code pour le port serie c'est beaucoup plus facile que faire ta routine faite maison.
    par la suite, ton recepteur est 38Khz, donc tu doit t'assurer que la frequence que tu emets soit dans le coin de 38khz, sinon marche pas.
  • Je te recommande un transistor connecter sur ta LED. Un 2N3904 ou 2N2222 en configuration bien simple de switch fera l'affaire.
  • Tantot j'ai parler d'INT, c'est quand tu code ta routine, tu te crée un matrice des commande que tu veux envoyer char ( Command[5] = {12,34,56,78}; ) qui elle est bien definie, le premier bit c'est bit d'identification et le dernier un CRC ou paritée par exemple. La ta routine pour emetre, fais simplement prendre ta matrice case par case, la decomposer en binaire et faire flasher la LED avec un timming de 38Khz.
  • CCP1 sur le PIC c'est pour faire du PWM mais aussi pour capturer des signaux. (Capture Compare)
Il y a beaucoup de facon pour transmettre par l'IR.

have fun


Jerome
Jérôme Demers
http://www.JeromeDemers.com
Ma trotinette électrique de 1480W très puissante!


http://www.instructables.com/member/robomaniac/

#7 Robomaniac

Robomaniac

    Nouveau membre

  • Membres
  • 9 messages
  • Gender:Male
  • Location:Québec, Canada
  • Interests:Système embarqué et robotique.

Posté 17 juin 2011 - 08:47

J'ai vue que c'est un Arduino que tu veux utiliser. Regarde ceci:
http://www.sparkfun.com/products/10280

Le code:
http://www.sparkfun.com/datasheets/Components/General/Cheapo_IR_Control.pde

J'ai tester ce code et tout marche bien. Il faut maintenant crée une telecomande

http://www.arduino.cc/playground/Code/InfraredReceivers
Tu peux enregistrer les signaux et par la suite trouver la facon de les transmettre.

ya plein de code sur le web pour crée une telecommande de télé, same thing.
Jérôme Demers
http://www.JeromeDemers.com
Ma trotinette électrique de 1480W très puissante!


http://www.instructables.com/member/robomaniac/



Répondre à ce sujet



  


1 utilisateur(s) li(sen)t ce sujet

0 members, 1 guests, 0 anonymous users