Bonjour Ă tous,
sur le forum, plusieurs fois j’ai retrouvé la question « Comment émettre des messages sonores avec l’IPX800 ? ».
Certains membres de la communauté ont opté pour des diffusions sur enceintes connectées, je vais vous présenter ici un moyen simple et autonome.
Introduction
Il existe un grand choix d’appareils ou de cartes ayant pour fonction de diffuser des messages pré-enregistrés en fonction de déclencheurs. Certains ont une mémoire flash de 2 à 16 MB, d’autres ont une carte SD. Souvent les cartes se comportent comme une clé USB qu’il suffit de brancher sur le PC afin d’y déposer ses propres fichiers MP3, WAVE ou OGG, en fonction des formats supportés.
DY-HV20T
A ma disposition, j’ai la carte DY-HV20T.
Cette carte possède un emplacement où insérer une carte Micro SD, 32 GB maximum.
Les fichiers stockés sur la carte SD doivent être nommés avec un préfixe sur 5 chiffres correspondant à la séquence du fichier.
Exemples de noms autorisés :
- 00001.mp3 correspond au fichier séquence 1
- 00008 annonce nouveau message.mp3 correspond à la séquence 8.
Exemple de contenu :
Les modes de diffusion sont programmables par micro DIP.
Control Mode | DIP 3 | DIP 2 | DIP 1 |
---|---|---|---|
IO integrated Mode 0 | 0 | 0 | 0 |
IO integrated Mode 1 | 0 | 0 | 1 |
IO Independent Mode 0 | 0 | 1 | 0 |
IO Independent Mode 1 | 0 | 1 | 1 |
UART Mode | 1 | 0 | 0 |
Principe général : les entées IO0 à IO7 sont à l’état HIGH (1) par défaut. Elles sont actives à l’état LOW (0).
Les 2 modes « IO Independent » permettent la diffusion de 8 fichiers différents, chacun correspondant à une IO.
Les 2 modes 'IO Integrated" permettent la diffusion de 255 fichiers différents, en combinant les 8 IO (IO0 à IO7).
Exemples :
- Si IO0 est passée à l’état LOW, le fichier 1 (20) est joué
- Si IO1 ET IO3 sont toutes 2 passées à l’état bas simultanément, le fichier numéro 10 (21 + 23)
- Si les 8 IO sont reliées au GND, le fichier 255 (20 + 21 + 22 + 23 + 24 + 25 + 26 + 27) est lu
Dans ce tutoriel, nous utiliserons les Modes Independent IO et UART.
La programmation relative aux modes IO Integrated vous est présentée sous forme de diagramme dans un message plus bas.
Les modes avec IO indépendantes
Dans ces 2 modes, Il est possible de jouer 8 fichiers maximum.
Pour diffuser un message, il suffit de relier l’IO correspondante au GND pour la faire passer à l’état LOW (0).
IO | Fichier lu |
---|---|
IO1 | 00001.mp3 |
IO2 | 00002.mp3 |
IO3 | 00003.mp3 |
IO4 | 00004.mp3 |
IO5 | 00005.mp3 |
IO6 | 00006.mp3 |
IO7 | 00007.mp3 |
IO8 | 00008.mp3 |
Exemple de connexion Ă une extension X-8R
Sur l’IPX800 V4 ou V5, il suffit de fermer un relais pour que le fichier correspondant soit lu (l’IO du module passe à 0).
Sur le schéma, j’ai représenté une connexion sur un haut parleur. Ceci permet la construction d’appareils autonomes.
Pour les tests, j’ai connecté la sortie Jack sur l’entrée AUX d’un appareil audio.
Cela permet d’appliquer un volume sonore plus élevé à la diffusion.
IO Independant Mode 0
Ce mode permet de jouer un fichier dès que l’entrée correspondante passe à l’état bas.
Il suffit d’une impulsion pour lancer la lecture complète du fichier.
Le fichier est lu jusqu’à réception d’une autre impulsion. Dans ce cas, la lecture est interrompue et la diffusion du nouveau fichier commence.
Il est possible de jouer 8 fichiers maximum
Programmation sur IPX800 V4
pour lire un fichier audio, il suffit de fermer le relais correspondant, une impulsion suffit. Cependant, pour plus de facilité, nous maintiendrons le relais fermé toute la durée du MP3.
-
Créez une sortie virtuelle « BUSY-MP3 » et une autre « BUSY-MP3a »
-
Réglez le TB de chaque relais en fonction de la durée du fichier MP3 lié
-
Écrivez ces 2 scénarii qui déterminent si le lecteur est occupé
- Busy 1
événement : RELAIS1OURELAIS2OURELAIS3OURELAIS4
Action : ON/OFF
RĂ©sultat : BUSY-MP3b - Busy 2
événement : BUSY-MP3bOURELAIS5OURELAIS6OURELAIS7OURELAIS8
Action : ON/OFF
RĂ©sultat : BUSY-MP3
- Busy 1
-
Écrivez un scénario pour chaque relais :
- relais 1 sur condition 1
Événement :NONBUSY-MP3ETCONDITION1
Action : ON
Résultat : RELAIS1 - …
- Relais 8 sur condition 8
Événement :NONBUSY-MP3ETCONDITION8
Action : ON
RĂ©sultat : RELAIS8
- relais 1 sur condition 1
Programmation sur IPX800 V5
Les relais sont pilotés via une impulsion.
Créez 8 objets impulsion avec TA=0 et TB=1, liez chaque impulsion à l’entrée CMD d’un relais.
Créez 8 scènes pour piloter les relais (remplacez CONDITIONx par l’événement que vous souhaitez)
CONDITION1 ON PULSE1.START
CONDITION2 ON PULSE2.START
CONDITION3 ON PULSE3.START
…
CONDITION8 ON PULSE8.START
Pour bloquer toute nouvelle diffusion pendant la lecture d’un fichier, vous pouvez vous reporter à l’exemple suivant concernant le Mode 1
IO Independant Mode 1
Ce mode permet de jouer un fichier tant que l’entrée correspondante passe à l’état bas.
Le fichier est lu en entier à moins qu’une autre commande soit reçue. Dans ce cas, la lecture est interrompue et la diffusion du nouveau fichier commence.
Il est possible de jouer 8 fichiers maximum.
Exemple de programmation sur IPX800 V4
Rappel : le fichier est lu tant que l’IO correspondante est maintenue à l’état bas, l’IPX800 doit donc fermer le relais pendant toute la durée du message sonore.
La programmation est identique à l’exemple précédent.
Exemple de programmation sur IPX800 V5
-
Créez 8 temporisations nommées BUSY-MP3-1 à BUSY-MP3-8 et réglez chaque TB à la durée du fichier correspondant. Liez ces temporisations aux relais correspondants
-
Créez ces règles (avec la clause résultat vide) qui déterminent si le player est occupé.
→ règle « Occupé-MP3b »
événement : [BUSY-MP3-1.Output]OU [BUSY-MP3-2.Output]OU [BUSY-MP3-3.Output]OU [BUSY-MP3-4.Output]
->règle « Occupé-MP3 »
événement : [règle Occupé-MP3b].resultOU [BUSY-MP3-5.Output]OU [BUSY-MP3-6.Output]OU [BUSY-MP3-7.Output]OU [BUSY-MP3-8.Output] -
créez ces 8 autres règles, chacune pilotant un relais au travers de la temporisation correspondante.
Nous utiliserons la tuile correspondant à la règle précédente pôur inhiber toute action si le lecteur est occupé
NON[règle Occupé-MP3].result ET CONDITION1 ON [BUSY-MP3-1.START]
NON[règle Occupé-MP3].result ET CONDITION2 ON [BUSY-MP3-2.START]
NON [règle Occupé-MP3].result ET CONDITION3 ON [BUSY-MP3-3.START]
NON [règle Occupé-MP3].result ET CONDITION4 ON [BUSY-MP3-4.START]
…
NON[règle Occupé-MP3].result ET CONDITION8 ON [BUSY-MP3-8.START]
Remarque :
Pour répéter la lecture d’un fichier vocal ou obtenir le son d’une sirène sur une durée plus longue, il est possible d’associer un objet clignotant sur V4 comme sur V5.
Le mode UART
Le mode UART permet la lecture de 65535 fichiers sonores.
- Avantage : ne consomme aucune Entrée/Sortie physique sur l’IPX, fonctionne par Push
- Inconvénient : cette mise en œuvre nécessite l’usage d’une carte à microprocesseur, telle que Rpi, Arduino, ESP32, ESP8266, …
Nous étudierons ce mode de communication ultérieurement dans une seconde partie.
Autre carte
La carte Adafruit Audio FX permet de jouer 11 morceaux différent grâce à 11 IO, elle se pilote également par port série (UART).
Elle ne comporte pas de commutateur DIP, le mode de diffusion est programmable via un préfixe devant le nom de chaque fichier. Ainsi, chaque fichier peut être diffusé différemment (lecture en boucle, lecture simple, …). Elle prend en charge les fichiers OGG (compressés) et WAV (non compressé).
Voici un tutoriel pour ceux que cela intéresse .