Page 1 sur 1

Problème avec kit IR

Message non luPosté: Dim 18 Mar 2012 21:25
de thomas
Bonjour,

Je voudrais tester le Kit IR.
J'ai ajouté la librairie correspondante mais quand je compile un programme d'essai, j'ai le message d'erreur suivant:

/Users/thomas/Documents/Arduino/libraries/IRremote/IRremote.cpp:529:
error: 'volatile struct irparams_t' has no member named 'rawlen'

Re: Problème avec kit IR

Message non luPosté: Dim 18 Mar 2012 22:23
de seb03000
Bonjour thomas .

Travaille tu sur une carte Arduino ???

Quel version du logiciel Arduino a tu télécharger , prend la version 23.

Quel kit IR possède tu ???

Re: Problème avec kit IR

Message non luPosté: Lun 19 Mar 2012 08:35
de SesechXP
Salut,

Pareil que Seb, quelle version d'Arduino utilises-tu ? Quelle version de la bibliothèque IRremote ? Si j'en crois celle que je viens de regarder, elle est développée pour Arduino 0023. Ce qui expliquerait que ça ne fonctionne pas si tu utilises Arduino 1.0.

Par contre et si tu utilises Arduino 1.0, je serais plutôt partisan d'adapter la bibliothèque IRremote plutôt que de travailler avec une vieille version (0023) qui a vocation à être remplacée :roll:

++

Re: Problème avec kit IR

Message non luPosté: Lun 19 Mar 2012 10:14
de thomas
J'utilise Arduino 1.0, mais je ne sais pas dire quelle version de IRemote.

Comment adapter IRemote?

Re: Problème avec kit IR

Message non luPosté: Lun 19 Mar 2012 11:33
de seb03000
Alors pour commencé télécharge la version 23 du logiciel Arduino , car tu et en version 1.0 et c'est pas bon.

Et voici la librairie IR Remote http://www.dfrobot.com/image/data/DFR0107/IRremote.zip

Et pour branché se capteur voici comment faire

File rouge du capteur tu le branche sur le 5V de ta carte Arduino

File noir du capteur tu le branche sur une pin GND ( c'est la masse ) de ta carte Arduino

Et le file vert tu le branche sur une pin digitale donc ( exemple sur la pin 2 ) de ta carte Arduino.

Image

Après le petit programme pour débuté et pour comprendre son fonctionnement:

Code: Tout sélectionner
#include <IRremote.h>

int RECV_PIN = 2;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Début du récepteur
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Recevoir la prochaine valeur
  }
}



Quand tu change les valeur sur ton code dans la parti
Code: Tout sélectionner
void setup()
comme se si

Code: Tout sélectionner
Serial.println(results.value, HEX);


Si j’appuie sur la touche 1 de la télécommande j’obtiens se résulta FD08F7 sur l'écran du sérial monitor du logiciel Arduino.

ou

Code: Tout sélectionner
Serial.println(results.value, DEC);


Si j’appuie sur la touche 1 de la télécommande j’obtiens se résulta 16582903 sur l'écran du sérial monitor du logiciel Arduino.

ou

Code: Tout sélectionner
Serial.println(results.value, BIN);


Si j’appuie sur la touche 1 de la télécommande j’obtiens se résulta 11111101000100011110111 sur l'écran du sérial monitor du logiciel Arduino.

on obtiens différent chiffre ou lettre sur l’écran du serial monitor du logiciel Arduino.

Voila , je pence que je tes tous dit hésite pas si ta d'autre question.

édité:

A en passent c'est bien se kit IR que tu utilise ????

Image

Re: Problème avec kit IR

Message non luPosté: Lun 19 Mar 2012 11:37
de SesechXP
thomas a écrit:J'utilise Arduino 1.0, mais je ne sais pas dire quelle version de IRemote.

Comment adapter IRemote?


D'après cette page, il suffit de remplacer dans le fichier IRremoteInt.h ligne 15 :
Code: Tout sélectionner
#include <WProgram.h>

par
Code: Tout sélectionner
#include <Arduino.h>


Edit : je viens de tester, ça compile sans problème avec Arduino 1.0 une fois cette modification effectuée.

Re: Problème avec kit IR

Message non luPosté: Lun 19 Mar 2012 12:13
de subreptice
Bonjour.

Quel version du logiciel Arduino a tu télécharger , prend la version 23.

-> NON : on ne retourne pas au silex sous prétexte que "il parait que certains auraient essayés le couteau et qu'ils auraient eu des problèmes". Il conviens de vérifier un peu avant de colporter.
EDIT: ce passage est particulièrement mal formulé, désolé ; j'ai pu lire ailleurs que certains déconseille l'IDE 1, sans vraiment avoir d'arguments, sans même sembler l'avoir testé, je trouve que c'est dommage. Ce gros ralage ne concerne pas les différents acteurs de ce fil, et n'a rien à faire ici :mrgreen:
Par contre et si tu utilises Arduino 1.0, je serais plutôt partisan d'adapter la bibliothèque IRremote plutôt que de travailler avec une vieille version (0023) qui a vocation à être remplacée :roll:


Quel kit IR possède tu ???

Soyons optimiste : probablement celui correspondant à ce forum : celui du Snootlab...
Il peut arriver, parfois, que les gens poste un message au bon endroit.

J'utilise Arduino 1.0, mais je ne sais pas dire quelle version de IRemote.

Il me semble que la 0.11, aout 2009 soit la seule disponible, non ?

Edit : je viens de tester, ça compile sans problème avec Arduino 1.0 une fois cette modification effectuée.

Merci d'avoir pointé la source.
Il me semble qu'il est possible de modifier, toujours dans la librairie, le fichier IRtrucmuch.cpp :
ainsi la librairie peut être utilisée sans modifications avec l'IDE 1, ou une plus ancienne ;
au début de IRtrucmuch.cpp , modifier pour avoir :
Code: Tout sélectionner
#if (ARDUINO >=100)
#include <Arduino.h>
#else
#include <WProgram.h>
#endif

Re: Problème avec kit IR

Message non luPosté: Lun 19 Mar 2012 13:39
de SesechXP
subreptice a écrit:Il me semble qu'il est possible de modifier, toujours dans la librairie, le fichier IRtrucmuch.cpp :
ainsi la librairie peut être utilisée sans modifications avec l'IDE 1, ou une plus ancienne ;
au début de IRtrucmuch.cpp , modifier pour avoir :
Code: Tout sélectionner
#if (ARDUINO >=100)
#include <Arduino.h>
#else
#include <WProgram.h>
#endif


Autant oublier totalement le silex :lol: Surtout que Thomas n'utilise pas de version antérieure à la v1.0...

Re: Problème avec kit IR

Message non luPosté: Lun 19 Mar 2012 13:45
de thomas
J'ai modifier la librairie (trés facilement avec vos infos) et ça fonction très bien merci!

Re: Problème avec kit IR

Message non luPosté: Lun 19 Mar 2012 18:20
de thomas
Je me suis attaqué a l'émission IR, mais ... rien ne fonctionne.
mon teste:
j'ai mis face a face l'émeteur et le récepteur.
J'envois une info à interval régulier(5s) et je lis l'info.
Cela fonction quand j'utilise une télécommande mais je ne reçois pas l'info que j'envoie.

Re: Problème avec kit IR

Message non luPosté: Mar 20 Mar 2012 10:49
de Lionel
Bonjour,

pourrait on avoir le code de l'émetteur, celui du récepteur, ainsi qu'une photo ou un plan du câblage ?

Re: Problème avec kit IR

Message non luPosté: Mer 21 Mar 2012 11:44
de thomas
J'ai simplifier la chose:

j'ai programmé pour lire le code de la télécommande de mon macbook -> 77E1D069 (HEX) (monter le volume)

Puis j'ai essayer de l'envoyer avec se programme: (que j'ai copié)

#include <IRremote.h>
IRsend irsend;

void setup()
{
Serial.begin(9600);
}

void loop() {
if (Serial.read() != -1) {
for (int i = 0; i < 3; i++) {
IRsend.send(77E1D069,HEX);
delay(100);
}
}
}

Re: Problème avec kit IR

Message non luPosté: Mer 21 Mar 2012 13:34
de subreptice
Salut.

Ce code compile un peu mieux (Arduino 0.23).

Code: Tout sélectionner
#include <IRremote.h>

IRsend irsend;

void setup()
{
Serial.begin(9600);
}

void loop()
{if (Serial.read() != -1) {
for (int i = 0 ; i < 3; i++)
IRsend send(77E1D069,HEX);
}
delay(100);
}


Il reste l'erreur :
Code: Tout sélectionner
invalid suffix "D069" on floating constant

mais je ne sais si c'est le nombre en lui-même qui cloche, ou la syntaxe utilisée pour l'insérer dans le programme.

Je n'ai absolument pas calculé ce que faisait ton code, pas le temps.
Tu utilises deux broches de l'Arduino, mais elles ne sont pas déclarées dans le programme ? Je me rappelle pas si la Librairie octroie des broches et leur fonctions par défaut, mais ça m'étonnerai.

j'ai mis face a face l'émeteur et le récepteur.

Bof ;) pour moi l'émetteur vise le ciel, et le récepteur regarde les pattes de l'émetteur.
A vérifier en regardant leurs angles respectifs d'actions dans leur datasheets.
Il me semble aussi,
que dans le cadre d'un montage sans intervention de télécommande extérieure,
il faut dédier un micro-contrôleur à la réception et un autre à l'émission.

Allez, courage.

Re: Problème avec kit IR

Message non luPosté: Mer 21 Mar 2012 13:57
de SesechXP
Bonjour,

thomas a écrit:
Code: Tout sélectionner
IRsend.send(77E1D069,HEX);


Cette ligne pose problème pour plusieurs raisons :
- il faut utiliser l'instance de la classe ;
- indiquer que 77E1D069 est une valeur hexadécimale ;
- utiliser une méthode qui existe.

Avec les deux premiers points corrigés, ça donne :
irsend.send(0x77E1D069,HEX);

Ensuite la classe IRsend ne propose pas de méthode send mais :
Code: Tout sélectionner
 
void sendNEC(unsigned long data, int nbits);
void sendSony(unsigned long data, int nbits);
void sendRaw(unsigned int buf[], int len, int hz);
void sendRC5(unsigned long data, int nbits);
void sendRC6(unsigned long data, int nbits);


Il faut donc choisir la méthode appropriée à ton utilisation.

Au final ton code devrait ressembler à l'exemple livré avec la bibliothèque IRremote :
Code: Tout sélectionner
/*
 * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
 * An IR LED must be connected to Arduino PWM pin 3.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */

#include <IRremote.h>

IRsend irsend;

void setup()
{
  Serial.begin(9600);
}

void loop() {
  if (Serial.read() != -1) {
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa90, 12); // Sony TV power code
      delay(100);
    }
  }
}

Re: Problème avec kit IR

Message non luPosté: Mer 21 Mar 2012 20:09
de subreptice
Merci SesechXP d'avoir pris le temps d'expliquer tout ça. :)

Ensuite, je me réponds partielement :
Tu utilises deux broches de l'Arduino, mais elles ne sont pas déclarées dans le programme ? Je me rappelle pas si la Librairie octroie des broches et leur fonctions par défaut, mais ça m'étonnerai.

He bé si, perdu : il suffit de remonter un peu le code de l'exemple pour voir dans les commentaires :
* An IR LED must be connected to Arduino PWM pin 3.

Ce qui est le cas sur le montage en photo.

Pour finir, contrairement à ce que j'avais pu lire, il doit être possible de recevoir et d'envoyer basé sur la même carte, même si je vois pas d'autre intérêts que le test ou la fabrication d'un répétiteur.

Re: Problème avec kit IR

Message non luPosté: Mar 3 Avr 2012 20:25
de Bemolu
Bonsoir

subreptice a écrit:Pour finir, contrairement à ce que j'avais pu lire, il doit être possible de recevoir et d'envoyer basé sur la même carte, même si je vois pas d'autre intérêts que le test ou la fabrication d'un répétiteur.


J'ai trouvé sur le site du développeur de la librairie IRremote (http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html) la note suivante:
The library does not support simultaneous sending and receiving of codes; transmitting will disable receiving. (voir info additionelle en fin de message)
Ce qui en bon français veut dire que la librairie IRremote ne permet pas de faire de faire ça. A mon avis c'est faisable avec une Arduino, mais pas avec cette librairie: le programme de Thomas ne peut pas marcher.

Info additionelle: confirmation dans le code de la librairie, dont voici l'extrait:
Code: Tout sélectionner
IRsend::enableIROut(int khz) {
[...]
  // Enables IR output. [...]
  // Disable the Timer2 Interrupt (which is used for receiving IR)
  TIMSK2 &= ~_BV(TOIE2); //Timer2 Overflow Interrupt
[...] }

Re: Problème avec kit IR

Message non luPosté: Mer 4 Avr 2012 02:31
de subreptice
Bonsoir Bemolu.

Merci beaucoup pour cet éclairage : je peut enfin répondre à cette question sans ambiguité,
et surtout comprendre pourquoi, et c'est encore plus important !
(Cette page de Ken Shirriff , je l'avait déjà lu quelques fois pourtant, ...)

Une argumentation succinte, sans failles, sourcée :
au plaisir de vous lire !