LOCODUINO

Parlons Arduino => Vos projets => Discussion démarrée par: Yves21000 le février 18, 2020, 11:18:26 am

Titre: Carte son DFR0534
Posté par: Yves21000 le février 18, 2020, 11:18:26 am
Bonjour à tous

Comme je l'ai deja évoqué par ailleurs, je suis en train de réaliser un passage à niveau à l'identique.
Il sera bientot greffé sur une maquette HO avec les moteurs alsthom trouvés ici https://www.decapod.fr/passages-a-niveau/769-demi-barrieres-de-pn-sur-moteur-alsthom-ho--2001500028967.html (https://www.decapod.fr/passages-a-niveau/769-demi-barrieres-de-pn-sur-moteur-alsthom-ho--2001500028967.html)
et les feux correspondants trouvés ici https://www.production-ludo-modelisme.fr/Feux-doubles-2-Leds-Resistances-cbaaaaaTa.asp (https://www.production-ludo-modelisme.fr/Feux-doubles-2-Leds-Resistances-cbaaaaaTa.asp)

Grace au site et aux contributions de plusieurs d'entre vous, mon projet PN est quasiment terminé (photo en P.J.).

Tout ceci fonctionne :

Il me reste un point où je bute depuis plusieurs jours (semaines même puisque je l'avais acheter en décembre).
J'ai une carte son DFR0534 qui me paraissait interessante.
Par contre, je ne comprends pas son fonctionnement.
J'ai pu y ajouter mes sons, les faire jouer sur une carte individuelle (uno ou mega) avec l'exemple fourni (en boucle), mais je n'arrive pas à commander comme je le souhaite.

Plusieurs points nébuleux :
l'utilisation de la bibliothèque softwareserial :
pourquoi une déclaration de variable Serial1 (il n'y a qu'un port série sur uno)
Pourquoi ça marche sur les bornes 10 et 11, alors que la liaison est en Tx et Rx (normalement 0 et 1 sur uno) ?

Comment choisir le son voulu (ce sont des adresses en hexa), mais je ne comprends pas "char order [4]
A quoi servent les serial1.write (order, 4), (play, 6), volume, 5) : le chiffre dans la parenthèse ?

Pour commencer, je voudrai, à partir d'un inverseur, commander le son 17 (hex 11) ou le son 20 (hex14) et l'arreter au bout de 10s.
Je joins mon croquis en l'état et la doc de la carte. Helas, je ne trouve quasiment rien sur ce produit sur le net.

S'il y avait une bonne ame pour m'aider à comprendre l'usage de cette carte (surtout du langage C !) et me sortir du gué, je pourrais finir proprement   ;)

Merci par avance


https://drive.google.com/file/d/1S2yN067opf4_LBSVU3QdSNBBUJ6oP7TW/view?usp=sharing (https://drive.google.com/file/d/1S2yN067opf4_LBSVU3QdSNBBUJ6oP7TW/view?usp=sharing)







Titre: Re : Carte son DFR0534
Posté par: Tony04 le février 18, 2020, 12:11:34 pm
Bonjour Yves,

pourquoi ne pars-tu pas des DFPlayer avec carte microSD, ce sont des produits super fiables et très faciles à mettre en œuvre. Voici une bonne explication: https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299

Un énorme avantage, c'est de pouvoir en mettre 2 sur le même Arduino avec la librairie SoftwareSerial pour pouvoir superposer les sons ce qui quand même plus réaliste.

Tu les trouve à même pas 2€ ici: https://fr.aliexpress.com/item/33047673289.html?src=google&src=google&albch=shopping&acnt=494-037-6276&isdl=y&slnk=&plac=&mtctp=&albbt=Google_7_shopping&aff_platform=google&aff_short_key=UneMJZVf&&albagn=888888&albcp=6459793138&albag=77316928277&trgt=743612850714&crea=fr33047673289&netw=u&device=c&gclid=EAIaIQobChMI-KGzpfra5wIVkETTCh25pAx2EAQYASABEgKsa_D_BwE&gclsrc=aw.ds

Mais tu as peut-être des raisons pour ton choix.

Cordialement
Antoine
Titre: Re : Carte son DFR0534
Posté par: CATPLUS le février 18, 2020, 12:53:30 pm
Bonjour Yves

Regarde ces 2 posts

http://forum.locoduino.org/index.php?topic=157.0
http://forum.locoduino.org/index.php?topic=255.0

Cordialement
Marcel
Titre: Re : Carte son DFR0534
Posté par: Yves21000 le février 18, 2020, 02:13:42 pm
@ Antoine
Merci pour ta réponse rapide.
Non, je n'ai aucune raison d'avoir choisi cette "maudite" carte. Tout simplement, je croyais que ce serait plus facile à mettre en oeuvre.
Je vais me commander un DFPlayer pour voir si je peux l'adapter. J'espère ne pas avoir les mêmes problèmes.

@ Marcel
Merci également pour cette solution qui me semble plus facile (!) pour mon niveau de connaissances.
Par contre je n'ai jamais utilisé les entrées SPI, SCK, MISO,....
Je dois avoir un module de carte SD dans une boite. Je regarde si je peux tester cette solution.

A bientot

Yves
Titre: Re : Re : Carte son DFR0534
Posté par: Tony04 le février 18, 2020, 03:35:04 pm
Merci également pour cette solution qui me semble plus facile (!) pour mon niveau de connaissances.

Ce n'est pas une bagarre entre Marcel et moi, on s'entend trop bien, mais je cherche la difficulté dans l'exemple joint.

Cordialement
Antoine

Titre: Re : Re : Re : Carte son DFR0534
Posté par: Yves21000 le février 18, 2020, 05:15:12 pm
Merci également pour cette solution qui me semble plus facile (!) pour mon niveau de connaissances.

Ce n'est pas une bagarre entre Marcel et moi, on s'entend trop bien, mais je cherche la difficulté dans l'exemple joint.

Cordialement
Antoine

Aaah !!!

Non, je ne cherche pas à vous opposer, loin de moi cette idée  :)

Je ne vois aucune difficulté de cablage ni d'un coté ni de l'autre.
C'est juste que le module DFPlayer, je ne l'ai pas sous la main et que j'ai un module de carte SD que je n'ai jamais testé.

Si difficulté il y a, ce serait plutot dans l'adaptation du code du DFPlayer qui est un module DFRobot comme mon DFR0534 et où je bute sur les différentes commandes.
J'ai regardé le site DFRobot, et effectivement, le code parait plus simple que pour mon module.
Je testerai et te ferai un retour.

Mais si je peux utiliser plusieurs solutions, je ne serai pas pris s'il me reste une carte son de coté : j'ai d'autres projets où je pourrai l'utiliser sans problème (surtout au prix où on peut la trouver).

Ce qui m'importe c'est d'apprendre : je suis quand même débutant en arduino depuis peu. Et plus j'en découvre, plus ça m'interesse.
Il me reste encore un peu de temps avant d'être atteint par les maladies de la mémoire (quoique !!!).

Cordialement

Yves

 

 

Titre: Re : Carte son DFR0534
Posté par: Tony04 le février 18, 2020, 05:27:17 pm
Je peux t'en envoyer 1 ou 2 si cela t’arrange, j'en ai pas mal en stock pour mon train de jardin
Titre: Re : Re : Carte son DFR0534
Posté par: Yves21000 le février 18, 2020, 06:35:23 pm
Je peux t'en envoyer 1 ou 2 si cela t’arrange, j'en ai pas mal en stock pour mon train de jardin

Super !
J'en veux bien 1.
Je viens d'en commander chez banggod, mais au moins 3-4 semaines de délai et peut être farcies du virus.

Je te la renverrai dès ça arrive.
Je te fournis mon adresse en MP

Merci
Titre: Re : Re : Carte son DFR0534
Posté par: Yves21000 le février 20, 2020, 02:49:54 pm
Bonjour Yves

Regarde ces 2 posts

http://forum.locoduino.org/index.php?topic=157.0
http://forum.locoduino.org/index.php?topic=255.0

Cordialement
Marcel

Bonjour Marcel


J'ai bien pu tester cette première solution avant de voir celle avec DFPlayer.

Après avoir bien formatter les fichiers wav avec les bonnes caractéristiques, j'ai pu lancer mes sons sans souci sur une platine d'essai avec 2 lettres dans le moniteur série et 2 sons (voir le croquis ci-joint).

Mais je butte sur un problème :
Dans la bibiothèque TMRpcm, il est bien dit : "Lecture asynchrone: permet au code de la boucle principale de s'exécuter pendant la lecture audio."

Or quand je lance le son au moment du déclenchement de mon annonce PN, ça fonctionne, mais au démarrage des servos (7s après), les servos ne répondent pas.
Je décrémente bien le compteur de l'angle de fermeture, mais les moteurs restent fixes !
Dans mon programme, je n'ai aucun delay(). Tout est géré avec des compteurs utilisant millis().

Est-ce que quelqu'un a déja remarqué le phénomène, ou bien j'aurais raté quelque chose ?

J'ai fait quelque chose de simple puisque je n'ai qu'un son à envoyer :
pour la commande :
     if (digitalRead(PIN_CSR_T) == 0){etat_CSR_T = false; audio.play("annonce1.wav"); son1= 1;}   // memorisation du CSR

pour l'arrêt, je stoppe le son à environ 8° de l'horizontal, soit 1190, alors que la fin de course du servo est à 1100 :
if ((angle_SR1 <= 1190) && (son1 == 1)) {audio.pause(); son1 = 0;} // arrêt du son

Quand je remonte les barrières, il y a un mouvement des servos qui se remettent en concordance avec la valeur 1100 et ça remonte normalement.
Quand j'enlève audio.play("annonce1.wav");, tout fonctionne normalement
J'ai l'impression qu'il y a interférence.

Un indice ?