ADAFRUIT-AUDIO-FX-port-série
Utiliser le port série
Si pour une raison quelconque vous ne voulez pas utiliser le mode de déclenchement, parce que vous avez besoin d'un système de lecture audio plus complexe, alors vous pouvez utiliser le mode série. Le mode série permet de contrôler la carte son par l'intermédiaire du port série. Le mode série permet de à un microcontrôleur équipé d'un UART TTL 9600 d'envoyer des commandes sur le module.
Les carte audio d'Adafruit peuvent être utilisées en mode UART ou en mode GPIO (avec des boutons d'activation) - mais pas les deux en même temps!
Nous allons utiliser un Arduino comme exemple mais vous pouvez adapter les informations suivantes (et la bibliothèque) à n'importe quel autre microcontroleur.
Crédit: AdaFruit Industries www.adafruit.com
Bibliothèque Arduino
Si vous avez un Arduino, vous pouvez réaliser les branchements comme sur l'image ci-dessus. Cela permet de contrôler la carte son à l'aide du simple programme d'exemple proposé par Adafruit.
Voici les raccordements:
- UG sur la masse/GND (pour activer le mode série),
- TX sur Arduino #5,
- RX sur Arduino #6,
- RST sur Arduino #4
Vous aurez besoin de télécharger la bibliothèque Adafruit_Soundboard depuis le dépôt GitHub pour prendre le contrôle de la puce de la carte son. Vous pouvez télécharger la bibliothèque en visitant le dépôt GitHub d'Adafruit et télécharger (Download) manuellement l'archive -OU- plus simplement cliquer sur le bouton de téléchargement ci-dessous.
Décompressez le contenu de l'archive ZIP puis renommé le répertoire décompressé comme Adafruit_Soundboard. Verifiez que le répertoire Adafruit_Soundboard contienne bien le fichier Adafruit_Soundboard.cpp et Adafruit_Soundboard.h
Placez le répertoire Adafruit_Soundboard dans votre répertoire répertoire_des_croquis_arduino/libraries/. Vous pourriez avoir besoin de créer le sous répertoire libraries si ce dernier n'existe pas encore. Redémarrez votre Editeur Arduino.
En cas de besoin, vous pouvez consulter notre tutoriel "Installer des bibliothèques Arduino
Charger le croquis de démo
Vous pouvez maintenant ouvrir l'exemple avec le point de menu Fichiers->Exemples->Adafruit_Soundboard->menu et téléverser le programme sur votre Arduino UNO raccordé sur la carte son.
Crédit: AdaFruit Industries www.adafruit.com
Ouvrez ensuite une console série à 115200 baud pour interagir avec le programme!
Crédit: AdaFruit Industries www.adafruit.com
Utilisation du programme
Pour les connexions, nous recommandons au minimum les connexions suivantes
- Connecter UG sur GND (la masse, permet de démarrer la carte son en mode Uart)
- Connecter RX sur la broche sortie de donnée (TX) de votre microcontroleur
- Connecter TX sur la broche entrée de donnée (RX) de votre microcontroleur
- Connecter RST sur une autre broche de votre microcontrôleur. La carte son sera réinitialisée lorsque le signal passera au niveau bas (LOW). Cela permet d'avoir une carte son dans un état connu.
Si vous désirez être averti lorsque la carte reproduit un fichier audio alors la broche ACT est le signal qu'il vous faut. La broche ACT pass au niveau bas lorsque la carte audio lit un fichier audio - cette sortie contrôle également l'état de la LED rouge ACT (qui s'allume lorsqu'un fichier audio est joué).
Vous pouvez utiliser une logique 3.3V ou 5V sur la broche RX, elle est équipée d'un level shifter (convertisseur de niveau logique). La broche TX est une sortie à 3.3v ce qui permet à un microcontrôleur 3.3v ou 5v de lire le signal en toute sécurité.
Pour la broche RST, cette broche est ramenée à un signal de 3.3V à l'aide d'une résistance pull-up. Passez le signal au niveau bas (LOW) pour réinitialiser la carte, ENSUITE, reconfigurez votre broche en entrée pour désactiver le niveau logique bas et laisser le signal flottant (qui sera en fait ramener à 3.3V par la résistance pull-up de la carte son):
digitalWrite(reset_pin, LOW); pinMode(reset_pin, OUTPUT); delay(10); pinMode(reset_pin, INPUT); delay(1000); // donner assez de temps à la carte son pour qu'elle démarre.
Après la réinitialisation (Reset), la carte son affichera une série d'information.
Crédit: AdaFruit Industries www.adafruit.com
La première ligne indique quand le firmware à été écrit (10/21/14) ainsi que le nom de la carte - le nom est identique pour toutes les cartes SFX (mais vous pourriez avoir des firmware de différente fate)
La seconde ligne indique FAT puis un chiffre en hexadécimal qui indique la taille de partition sur laquelle sont stockés tous les fichiers (en secteur de 512 octets). Dans le cas présent nous avons 0x7FC0 = 32704. Soit 32704 * 512 octets = 16,744,448 (16 MB)
Sur la troisième ligne, vous pouvez lire Files puis un nombre décimal sur 5 digits. Ce nombre indique le nombre de fichier sur la carte. Dans le cas présent, la carte contient 16 fichiers.
Commandes
Les commandes sont divisées en deux ensembles.
- Un ensemble de commande peut être exécuté en mode IDLE (pendant que la carte ne fait rien)
- Un autre ensemble de commande peut être exécuté pendant la lecture de piste audio (en mode PLAY).
Commandes en mode IDLE
Ces commandes peuvent être utilisées pendant que la carte ne lit pas de fichier audio!
Liste des fichiers
- L - envoi L\n (L plus un retour à la ligne/new line) pour lister les fichiers
Crédit: AdaFruit Industries www.adafruit.com
Les fichiers sont listés au format suivant:
FILENAMEEXTtaille_fichier
où "FILENAMEEXT" est le nom complet du fichier au format 8.3 (8 caractères pour le nom de fichier, 3 caractères pour l'extension du fichier). Le nom de fichier n'inclus pas le point. Si le nom du fichier contient moins de 8 caractères alors celui-ci sera complété avec des espaces (padded est le terme informatique anglophone correspondant).
La taille_fichier s'exprime en octet (byte) et est également paddé avec des zéros.
Modifier le volume
Vous pouvez ajuster le volume sonore depuis 0 (silence) à 204 (volume max) par incrément de 2. Pour accroitre le volume, envoyez +\n (symbole plus suivit d'un retour à la ligne.
Pour décroitre le volume, envoyez -\n (symbole moins suivit d'un retour à la ligne).
La carte son répondra avec le nouveau volume (5 caractères ascii, deux qui seront des zeros puis 3 digits de volumes, plus un caractère de retour clavier)
Crédit: AdaFruit Industries www.adafruit.com
Jouer une piste par numéro
Chaque piste dispose d'un numéro correspondant au moment ou le fichier à été copié sur la mémoire flash. La première piste porte le numéro 0, la numérotation suit l'ordre des fichiers tels qu'il sont affichés par la commande 'L' (liste des fichiers).
Le plus rapide pour jouer un fichier est de d'envoyer la commande #NN\n (symbole #, puis le numéro de la piste, et le caractère retour clavier pour finir). Par exemple, pour jouer la première piste (soit la piste 0), il faut envoyer la commande #0\n et pour jouer la 11ieme piste il faut envoyer la commande #10\n
Crédit: AdaFruit Industries www.adafruit.com
Si le fichier n'a pas été trouvé, la carte son répondra NoFile\n
Si le fichier est trouvé, la carte son répondra playNNNNNFILENAMEEXT\n
Où:
- NNNNN est ne numéro de piste,
- FILENAMEEXT le nom de fichier en 11 caractères (sans point, 8 caractères pour le fichier, 3 pour l'extension)
Lorsque le fichier est joué, la carte son affiche done\n pour vous indiquer que l'opération est terminée
Jouer une piste par nom
Peut être aurez vous envie de jouer une piste à partir de son nom (et non de son numéro). Pas de problème, vous pouvez utiliser la commande P
Envoyez la commande PFILENAMEEXT\n - lettre 'P' plus les 11 caractères du nom de fichier (8.3 sans le point de séparation) suivit du caractère 'retour à la ligne'. Si le nom de fichier fait moins de 8 caractères, remplissez le nom de fichier avec des blancs.
Par exemple:
- Pour lire le fichier T00NEXT5.WAV, il faut envoyer la commande PT00NEXT5WAV\n
- Pour lire le fichier T09.OGG, il faut envoyer la commande PT09 OGG\n (notez les espaces dans le nom de fichier).
Si le fichier n'est pas trouvé, la carte son répond NoFile\n sinon elle répondra comme précédemment avec playNNNNNFILENAMEEXT\n
Commandes en mode lecture
Maintenant que nous savons jouer des fichiers audio, vous pouvez également réaliser des actions pendant la lecture des fichiers.
Les actions ci-dessous ne sont disponible que durant la lecture d'un fichier audio.
Pause et reprise
Vous pouvez mettre la lecture en pause à n'importe quel moment en envoyant le caractère =, la caractère retour clavier n'est pas nécessaire. Pour redémarrer la lecture, il faut envoyer le caractère >
Ces caractères seront renvoyés par l'UART, c'est une façon de savoir qu'il a bien été recu!
Crédit: AdaFruit Industries www.adafruit.com
Arrêter la lecture
Vous pouvez également arrêter instantanément la piste audio en envoyant la commande q (pour 'quit'). Le fichier audio est stoppé et la carte audio revient en mode IDLE.
Crédit: AdaFruit Industries www.adafruit.com
Position de la lecture
Vous pouvez interroger la carte pour savoir combien de temps est déjà écoulé dans la lecture de la piste. Envoyez le caractère t
Vous obtiendrez une réponse en 5 digits, une : et 5 autres digits.
Les 5 premiers 5 digits représente le nombre de secondes écoulées, la seconde partie est le temps total de lecture rapporté par le codec (cette valeur à toujours été à 0, nous vous recommandons de vous penchez sur la première partie)
Notez que cette opération est bloquante, l'utiliser trop souvent pourrait causer des parasites dans le rendu audio!
Crédit: AdaFruit Industries www.adafruit.com
Taille de fichier et autre
Pour finir, vous pouvez demander la taille d'un fichier et savoir a quelle position vous vous trouvez dans ce dernier (durant la lecture).
C'est un peu comme connaître le temps écoulé, cela peut varier pour les fichiers OGG compressés. Mais cela reste toujours très pratique!
Vous pouvez obtenir la taille du fichier et le nombre d'octets restant en envoyant le caractère 's'
Crédit: AdaFruit Industries www.adafruit.com
La taille est rapportée en décimal (le nombre d'octets), taille exprimée avec 10 digits séparé par un '/'
Le premier numéro est le nombre d'octets restant et le second est le nombre total d'octets.
Attention: il s'agit d'une opération bloquante. L'utiliser trop souvent peut causer des effets audio indésirables (parasites)!
Source: Adafruit Audio FX Sound board Crédit: AdaFruit Industries
Créé par Ladyada pour AdaFruit Industries.
Traduit par Meurisse D. pour MCHobby.
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.
Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com