Show Posts
Pages: [1]
1  Using Arduino / Project Guidance / Re: SFEMP3Shield + IRremote on: July 25, 2013, 04:19:23 am
I solved my problem.
You can see that here (in French)
2  International / Français / Re: SFEMP3Shield + IRremote on: July 25, 2013, 03:54:21 am
oui j'ai testé begin () pour relancer le player après un end ().
C'est justement ça qui ne marchait pas.

Le end () n'est pas pareil que le stop () :
Il permet de mettre en veille le lecteur MP3 et donc d'économiser du courant.
Pratique si on est sur batterie.

J'ai bêtement essayé de modifier la librairie comme tu l'avais fait pour la pause.
J'ai remplacé (à la ligne 1677 de SFEMP3Shield.cpp)
Code:
#elif defined(USE_MP3_REFILL_MEANS) && USE_MP3_REFILL_MEANS == USE_MP3_Polled
  refill();
#endif
par
Code:
#elif defined(USE_MP3_REFILL_MEANS) && USE_MP3_REFILL_MEANS == USE_MP3_Polled
  if ((playing_state != paused_playback) && (playing_state != deactivated))
    refill();
#endif
et ça marche !
Je n'ai plus qu'à comprendre ce que j'ai fait smiley-lol

Encore un grand merci à toi gallegojm pour ton aide.
Je vais pouvoir passer ce post en "résolu".
Je vais aussi reporter ce bug à l'auteur de la librairie et lui proposer notre patch.
3  International / Français / Re: SFEMP3Shield + IRremote on: July 24, 2013, 08:37:09 am
Je confirme que ta modif marche pour la mise en pause lorsqu'on est en mode "polled".

Faute de temps libre, je n'ai pas encore compris ce qu'implique cette correction.
Mais je vais peut-être pouvoir m'en inspirer pour corriger le problème de mise en veille.

Je vous tiendrais informé.

Merci gallegojm
4  International / Français / Re: SFEMP3Shield + IRremote on: July 23, 2013, 03:20:30 am
Merci gallegojm,

Je vais regarder ton projet avec beaucoup d'intérêt.

Pour ma part, je ne souhaite pas utiliser de connexion Ethernet comme télécommande.
Pas de prise Ethernet là où sera le lecteur mp3.
Mais pourquoi pas du wifi.
Je vais y penser pour la v2.
Merci pour cette idée.

J'ai testé le mode "polled".
Voir mon test 3.
C'est avec lui que j'arrive à utiliser la télécommande IR en même temps que le player MP3.
Par contre, certaines fonctionnalité du player MP3 ne marche plus dans ce mode comme pauseMusic.
Et lorsque je le met en veille (fonction end), là plus rien ne marche.

Je viens de voir sur ce post que tu as détecté le même problème que moi pour la mise en pause.
Par contre, je n'ai pas compris la réponse qui t'as été donné.
Pourrais-tu me l'expliquer, stp ?
5  Using Arduino / Project Guidance / Re: SFEMP3Shield + IRremote on: July 22, 2013, 08:40:35 am
Thanks joe mcd for your help but I don't understand that you explain.
Quote
Atmega timers are not symmetrical
Can you tell me more ?

I don't use timers and interrupts in my sketch.
They are only used in libraries SFEMP3Shield and IRremote.
I think these librairies are good.
I probably set something wrong.
6  International / Français / Re: SFEMP3Shield + IRremote on: July 22, 2013, 08:23:41 am
Merci skizoh pour ton aide

J'ai testé de mettre le capteur IR sur différentes pins (11, A0 à A5) et rien n'a changé.
Je suis quasiment sûr que le MP3 player shield n'utilise pas les sorties analogiques.

Mon avis est que le conflit se situe au niveau des interruptions et/ou des timers.
Mais je pensais que les tests décrits précédemment auraient empêchés ça, mais non.
Difficile pour moi de déboguer ces librairies : ça dépasse de trop loin mon niveau.

Si personnes ne peut m'aider, je vais m'orienter vers une solution avec 2 arduino : 1 pour le MP3 player shield et 1 pour le capteur IR.
Et je les ferai communiquer ensemble via l'interface série.
Mais cette solution ne me plait pas trop et j'aimerai vraiment trouver comment résoudre ce problème.
7  Using Arduino / Project Guidance / [SOLVED] SFEMP3Shield + IRremote on: July 20, 2013, 10:35:22 am
Hi all !

Sorry for my english (I'm french).

I would like create an MP3 player controlled with an IR remote control.
But I am having some problems with implementation.
So I need your help.

Materials used :

Arduino libraries used :

First, I have tested le MP3 Shield with the exemple FilePlayer provided with the library SFEMP3Shield.
All is ok.

So, I do a sketch to receive the remote signal (Attached file : Telecommande_receiver.ino).
All is ok too.
Then, I was able to get the key codes that interest me and make a new sketch (Attached file : Skeleton.ino) which will serve as my base to control the MP3 shield.

I proceeded to mix it with the example sketch FilePlayer (Attached file : PlayerMP3.ino).
That is where the problems appeared.
The first time I use the remote, it works.
As the song is not complete, the code of the key pressed recovered is wrong.
When the song is over, the IR receiver returns the correct code.
And so on.

After doing some research on the net, I deduced it was conflict between the external interrupts used by the two libraries SFEMP3Shield and IRremote.

The Arduino UNO can handle two external interrupts.
So I first tried to change the libraries that they use a different interrupt.
Test 1 :
I try to change IrremoteInt.h line 66 to 67 :
Code:
//#define IR_USE_TIMER1 // tx = pin 9
#define IR_USE_TIMER2 // tx = pin 3
by
Code:
#define IR_USE_TIMER1 // tx = pin 9
//#define IR_USE_TIMER2 // tx = pin 3
Nothing change : always an wrong code while a song is playing.

Test 2 :
Come back to the original file IrremoteInt.h and I try to change SFEMP3ShieldConfig.h line 187 :
Code:
#define MP3_DREQINT          0
by
Code:
#define MP3_DREQINT          1
In the case, the remote is good but no music.

So I tested different things on SFEMP3Shield library
Test 3 :
Come back to the original file SFEMP3ShieldConfig.h and I changed the line 220 :
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_INTx
by
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_Polled
And I also added the following line at the beginning of my loop ():
Code:
MP3player.available ();
In this case, it works pretty well: the remote control is used even when a song is playing.
By cons, some SFEMP3Shield library functions do not work as :
  • pauseMusic
  • resumeMusic
And when I use end () then nothing works.
Same when I tested with the example FilePlayer

Test 4 :
I left the original files and I re-edited the file SFEMP3ShieldConfig.h changing the line 220 :
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_INTx
by
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_Timer1
I installed the library TimerOne and have included it in my code.
I also putted the following line at the beginning of my loop ():
Code:
MP3player.available ();
Then I return to the basic problem: the remote control is no longer usable as a song is playing.

Test 5 :
I left the original files and I re-edited the file SFEMP3ShieldConfig.h changing the line 220 :
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_INTx
by
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_SimpleTimer
I installed the library SimpleTimer and have included it in my code.
Then I return to the test 2 : remote is ok but no music.

I do not know what else to do!
I need help.
Thank you in advance.
8  International / Français / [Résolu] SFEMP3Shield + IRremote on: July 20, 2013, 07:21:10 am
Salut à tous.

J'ai pour projet de créer un lecteur MP3 piloté avec une télécommande IR (infrarouge).
Mais je rencontre quelques problèmes de mise en oeuvre.
J'ai donc besoin de votre aide.

Matériels utilisés :

Librairies Arduino utilisées :

J'ai tout d'abord testé le shield MP3 grâce à l'exemple FilePlayer fourni avec la librairie SFEMP3Shield.
Tout marche nickel.

J'ai ensuite fait un sketch pour récupérer les signaux de la télécommande (Pièce-jointe : Telecommande_receiver.ino).
Lui aussi marche nickel.
J'ai ainsi pu récupérer le code des touches qui n'intéressaient et faire un nouveau sketch (Pièce-jointe : Skeleton.ino) qui me servira de base pour contrôler le shield MP3.

J'ai alors entrepris de mixer ce sketch avec l'exemple FilePlayer (Pièce-jointe : PlayerMP3.ino).
C'est là que les problèmes sont apparus.
La 1ère fois que j'utilise la télécommande, ça marche.
Tant que la chanson n'est pas terminée, le code de la touche appuyée récupéré est erroné.
Lorsque la chanson est finie, le récepteur IR renvoi le bon code.
Et ainsi de suite.

Après avoir fait des recherches sur le net, j'en ai déduit qu'il s'agissait de conflits entre les interruptions externes utilisées par les 2 librairies SFEMP3Shield et IRremote.

L'arduino UNO peut gérer 2 interruptions externes.
J'ai alors d'abord essayé de modifier les librairies pour qu'ils utilisent une interruption différente.
Test 1 :
J'ai essayé de changer IrremoteInt.h ligne 66 à 67 :
Code:
//#define IR_USE_TIMER1 // tx = pin 9
#define IR_USE_TIMER2 // tx = pin 3
par
Code:
#define IR_USE_TIMER1 // tx = pin 9
//#define IR_USE_TIMER2 // tx = pin 3
Cela n'a rien changé : toujours un code erroné tant qu'une chanson est jouée.

Test 2 :
J'ai remis le fichier IrremoteInt.h original et j'ai essayé de modifier SFEMP3ShieldConfig.h ligne 187 :
Code:
#define MP3_DREQINT          0
par
Code:
#define MP3_DREQINT          1
Dans ce cas, la télécommande marche mais aucune chanson ne se lance pas.

J'ai alors testé différentes choses sur la librairie SFEMP3Shield :
Test 3 :
J'ai remis le fichier SFEMP3ShieldConfig.h original et je l'ai re-modifié en changeant la ligne 220 :
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_INTx
par
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_Polled
Et j'ai aussi ajouté la ligne suivante au tout début de mon loop () :
Code:
MP3player.available ();
Dans ce cas, ça marche plutôt bien : la télécommande est utilisable même lorsqu'une chanson est en cours de lecture.
Par contre, certaines fonctions de librairie SFEMP3Shield ne marchent plus comme :
  • pauseMusic
  • resumeMusic
Et lorsque j'utilise end () là plus rien ne marche.
Idem lorsque je teste avec l'exemple FilePlayer

Test 4 :
Je suis reparti des fichiers originaux et j'ai re-modifié le fichier SFEMP3ShieldConfig.h en changeant la ligne 220 :
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_INTx
par
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_Timer1
J'ai alors installé la librairie TimerOne et l'ai inclus dans mon code.
J'ai aussi remis la ligne suivante au tout début de mon loop () :
Code:
MP3player.available ();
Là je reviens au problème de base : la télécommande n'est plus utilisable tant qu'une chanson est en cours de lecture.

Test 5 :
Je suis reparti des fichiers originaux et j'ai re-modifié le fichier SFEMP3ShieldConfig.h en changeant la ligne 220 :
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_INTx
par
Code:
#define USE_MP3_REFILL_MEANS USE_MP3_SimpleTimer
J'ai alors installé la librairie SimpleTimer et l'ai inclus dans mon code.
Là je reviens au test 2 : la télécommande marche mais aucune chanson ne se lance pas.

Je ne sais plus quoi tester !
J'ai besoin d'un coup de pouce.
Merci d'avance pour votre aide.
9  International / Français / Re: Mega 2560 r2 : problème d'upload on: June 09, 2011, 02:22:55 am
J'ai enfin trouvé le temps de tester cette procédure de mise à jour du fireware.
Tout c'est déroulé sans problème.

Encore un grand merci à toi Snootlab.
En espérant un jour te rendre service à mon tour (mais j'en doute vu ton niveau et le mien).
10  International / Français / Re: Mega 2560 r2 : problème d'upload on: May 31, 2011, 12:36:25 pm
Génial, dommage que je ne puisse pas tester ça avant la semaine prochaine.

Je vous tiendrais au courant.

Merci Snootlab.
11  International / Français / [résolu] Mega 2560 r2 : problème d'upload on: May 30, 2011, 07:29:33 am
Bonjour à tous et merci d'avance pour votre aide.

J'ai reçu récemment mon premier arduino : la mega 2560.
Le 1er jour, tout allait bien : j'ai pu testé le script blink avec plusieurs valeurs de vitesse de clignotement.
Le 2ème jour et les suivants : impossible d'uploader mes scripts.

J'ai l'erreur suivante :
Code:
avrdude: stk500_2_ReceiveMessage(): timeout

Je suis sous Linux Ubuntu et lorsque je passe sous Windows 7 je n'ai pas ce problème.

Après de nombreuses recherches, je pense que je suis sujet au problème évoqué là : http://www.gr-slb.com/blog/2011/04/02/arduino-mega-2560-upgrade/ (problème de connexion au port série sous GNU/Linux).

J'ai donc voulu upgrader mon firmware pour le micro-contrôleur ATmega8u2 comme indiqué mais la méthode pour réinitialiser le micro-contrôleur en court-circuitant des contacts n'est pas valable pour mon arduino car j'ai la révision 2 or la méthode donnée est pour la révision 1.
Voir ici les différences entre les 2 cartes : http://www.logiquefloue.ca/circuits/arduino/arduino-mega-2560-revisions-materielles/

J'ai eu beau chercher, je n'ai pas trouvé comment faire.
L'un de vous a t-il l'info ?

PS : Je préfère une méthode sans soudure et en français (car mon anglais est très pauvre)
Pages: [1]