AdaFruit Wave Shield Exemples
Erreur de dépassement de pile?
Vous avez une erreur "Stack overflow"?
Tous les exemples ont été testés (et fonctionnent) avec la version 13 (et suivantes).
Si vous rencontrez des problèmes, essayez cette version là (si possible)
Avoir plus de RAM et de Flash!
Note MCHobby: Les plateformes Arduino sont maintenant distribuée avec un ATmega328.
Cette section n'est vraiment pertinente que si vous ne possédez pas d'ATmega328.
Avant d'essayer de jouer de l'audio, vous aurez besoin de faire un peu de place
la mémoire RAM d'Arduino, cela évitera que cela se termine en vilain
dépassement de pile (stack-overflow). Manquer de mémoire RAM est difficile à déboguer et frustrant, d'autant plus si vous disposez d'un ATMega168
Suivez ces instructions (anglais) pour savoir comment avoir plus
de RAM en réduisant la taille de la mémoire tampon de la librairie série (Serial library).
Vous n'aurez pas besoin de faire cela si vous avez un ATmega328.
Notez que la librairie est vraiment grosse (approximativement 10K). Si vous voulez faire beaucoup plus avec Arduino, il est vivement conseillé de faire un Upgrade vers un ATmega328. Ce shield a été développé en prévoyant la disponibilité d'un ATmega328.
Générer de la parole
Si vous désirez une voix humaine dans vos projets, vous povez utiliser le générateur gratuit AT&T Text-to-Speech demo page (Il sais aussi parler en français :-) )
Ce générateur créera des fichier audios 16KHz en 16-bit, ce qui permet de les utiliser directement.
Bibliothèque d'échantillons sonores
Par là, vous trouverez une gigantesque collection d'échantillon sonore sous la licence C.C. Attribution! Beaucoup d'entre eux sont déjà au format mono, 16 ou 22KHz
Lecteur Audio Numérique
Aussi appelé DAP pour Digital audio player.
C'est l'exemple le plus simple. Il joue en boucle chacun des fichiers audio trouvé sur la carte SD. Ce sketch inclus également la librairie.
- Le Sketch (pour la librairie originale AF_Wave)
- Le Sketch (pour la nouvelle librairie waveHC. Vérifiez aussi le zip de la librairie WaveHC au cas où une version plus récente serait disponible).
6 boutons, 6 sons, de multiples possibilités!
Voici un ensemble de 6 techniques différents de lectures utilisant les 6 boutons (connectés sur les entrées analogiques 0-5)
Vous pouvez changer le nombre de boutons, ils sont faciles à raccorder. Ce n'est pas une liste exhaustive mais cela vous donnera quelques idées de ce que vous pouvez réaliser ç l'aide de la librairie WaveHC .
Notez que toutes les modifications sont faites dans loop(). Le code de vérification des boutons (et tout le reste) sont identiques.
- Joue le fichier Wave en entier et une seule fois
- Joue le fichier Wave en entier en boucle
- Joue tous les fichiers Wave pressés en entier et en boucle
- Joue le fichier Wave seulement pendant que le bouton est maintenu pressé et seulement une fois (Une sorte d'orgue musical)
- Joue le fichier Wave en boucle seulement pendant que le bouton est pressé (Une sorte d'orgue musical)
- Joue le fichier Wave en entier et en boucle, mais permet aux autres boutons de l'interrompre
- Joue le fichier Wave en entier une seule fois et permet aux autres boutons de l'interrompre
Lectures de morceaux sur base d'entrée
Cet exemple lit 6 fichiers différents en fonction de la pression sur l'un des 6 boutons raccordés sur les 6 broches analogique. (Pour librairie AF_wave)
Exemple similaire jouant 6 fichiers différents et prévus pour la librairie WaveHC (voir sa présentation ici)
Cet exemple lit 4 fichiers différents en fonction de caractères reçus sur la liaison série. Une chouette application si vous avez un xbee sous la main.
Changer la vitesse de lecture
[Vous pouvez manipuler la vitesse de lecture et créer des effets intéressants] en manipulant l'interruption utilisée pour le rendu audio.
[Voici le sketch], connectez un potentiomètre sur la broche analogique 0 (ou adaptez le code)
Citrouille d'Halloween
Cet exemple utilise un senseur pour déclencher le son et modifie la luminosité de la LED en fonction du volume.
Volume control via software
By changing the #define DVOLUME 1 in wave.cpp and recompiling you can do rudimentary software volume control as in this sketch