Les tasses interactives (10 / 10 étapes)

Étape 10 : Codes

Télécharger arduino 1.0.
En outre, avant d’utiliser le code allez à http://www.ladyada.net/make/waveshield/use.html.
Vous devriez formater la carte SD, convertir des fichiers audio comme le suggère dans ce site.
Aussi, n’oubliez pas de mettre l’audio convertir vers la carte SD.

Arduino Code que nous avons utilisé :

#include < FatReader.h >
#include < SdReader.h >
#include < avr/pgmspace.h >
#include « WaveUtil.h »
#include « WaveHC.h »

Carte de SdReader ;    Cet objet conserve les informations de la carte
Vol FatVolume ;    Il conserve les informations pour la partition sur la carte
FatReader racine ;   Il conserve les informations pour le système de fichiers sur la carte
FatReader f ;      Il conserve les informations pour le fichier que nous allons jouer

WaveHC vague ;  C’est le seul objet (audio) de la vague, puisque nous allons jouer seulement un à la fois

#define DEBOUNCE 100 / / bouton debouncer

Cette fonction pratique retournera le nombre d’octets actuellement libres en RAM, grand pour le débogage !
int freeRam(void)
{
extern int __bss_end ;
extern int * __brkval ;
int free_memory ;
Si ((int) __brkval == 0) {}
free_memory = ((int) & free_memory)-((int) & __bss_end) ;
}
else {}
free_memory = ((int) & free_memory)-((int) __brkval) ;
}
Return free_memory ;
}

Sub sdErrorCheck(void)
{
Si (! card.errorCode()) retourner ;
putstring ("\n\rSD I/O erreur:") ;
Serial.Print(Card.ErrorCode(), HEX) ;
putstring (",") ;
Serial.println(Card.ErrorData(), HEX) ;
while(1) ;
}

void setup() {}
mettre en place le port série
Serial.Begin(9600) ;
Serial.println(freeRam()) ;      s’il s’agit moins de 150 octets Il peut épeler ennuis !

Définissez les broches de sortie pour le contrôle de la DAC. Ce broches sont définis dans la bibliothèque

Si (! card.init(true)) {//play avec 4 MHz spi si 8MHz ne fonctionne pas pour vous
Si (! card.init()) {//play avec spi 8 MHz (par défaut plus rapide!)
putstring_nl ("carte init. a échoué!") ;  Quelque chose a mal tourné, permet d’imprimer les raisons pour lesquelles
sdErrorCheck() ;
while(1) ;                            puis « arrêter » - ne rien faire !
}

Enable optimiser la lecture - certaines cartes peuvent timeout. Désactiver si vous rencontrez des problèmes
card.partialBlockRead(true) ;

Maintenant, on va chercher une partition FAT !
uint8_t partie ;
pour (partie = 0; partie < 5; partie ++) {/ / nous avons jusqu'à 5 emplacements de regarder dans
Si (vol.init (carte, partie))
rupture ;                             Nous avons trouvé un, laisse en liberté sous caution
}
Si (partie == 5) {/ / si nous avons fini ne pas trouver un:(
putstring_nl ("aucun FAT partition valide!") ;
sdErrorCheck() ;      Quelque chose a mal tourné, permet d’imprimer les raisons pour lesquelles
while(1) ;                            puis « arrêter » - ne rien faire !
}

Permet d’indiquer à l’utilisateur sur ce que nous avons trouvé
putstring ("partition à l’aide") ;
Serial.Print (partie, DEC) ;
putstring (", est de type FAT") ;
Serial.println(vol.fatType(),DEC) ;     FAT16 ou FAT32 ?

Essayez d’ouvrir le répertoire racine
Si (! root.openRoot(vol)) {}
putstring_nl ("Impossible d’ouvrir le répertoire racine!") ; Quelque chose a mal tourné,
while(1) ;                             puis « arrêter » - ne rien faire !
}

Ouf ! Nous avons passé les parties difficiles.
putstring_nl("Ready!") ;
}

void loop() {}
putstring(".") ;            Décommentez pour voir si la boucle n’est pas en cours d’exécution
int sensorValue ;

sensorValue = analogRead(2) ;   lire les broches d’entrée analogique 2

if(sensorValue<100) {/ / ce détermine la chanson nous jouons
playcomplete ("l’eau. « « « WAV ») ;
playcomplete ("vendredi. « « « WAV ») ;
}

ElseIf (sensorValue > = 100 & & sensorValue < 250) {}
playcomplete "(milkbaby. « « « WAV ») ;
playcomplete ("baby. "WAV");}

else {playcomplete ("coke. « « « WAV ») ;
playcomplete "(myjeans. « « « WAV ») ;
}
}

void playcomplete(char *name) {}
Appelez notre aide pour trouver et jouer ce nom
playfile(Name) ;

tandis que (wave.isplaying) {//while il joue !

int16_t potval = 450 ;
uint32_t newsamplerate ;
int16_t lastpotval = 0 ;
#define hystérésis 3


int sensorValue ;
sensorValue = analogRead(5) ; lu 5 d’entrée qui est le capteur de lumière ambiant

if(sensorValue<10) {}
Break;} Si nous arrivons à proximité du capteur de lumière ambiant, il arrête la chanson et remplacez-la par une autre musique


C’est le code qui change la vitesse
potval = analogRead(0) ; lire le capteur coude et modifications de ce code, la vitesse en fonction du capteur
Si (((potval-lastpotval) > hystérésis) || ((lastpotval-potval) > hystérésis)) {
newsamplerate = wave.dwSamplesPerSec ;  obtenir la fréquence d’échantillonnage original
newsamplerate * = potval ;                       mettre à l’échelle de la valeur analogique
newsamplerate / = 512 ;   Nous voulons « split » entre 2 x accéléré et ralenti.
wave.setSampleRate(newsamplerate) ;  Réglez-le immédiatement !
Serial.println (newsamplerate, DEC) ;  pour le débogage
lastpotval = potval ;

}

Serial.Print(potval,DEC) ;
Delay(100) ;
}
maintenant sa fait jouer
}

void playfile(char *name) {}
voir si l’objet vague est en train de faire quelque chose
Si (wave.isplaying) {/ / déjà jouer quelque chose, alors arrêtez d’elle !
Wave.Stop() ;

Arrête
}
Regardez dans le répertoire racine et ouvrir le fichier
Si (! f.open (racine, nom)) {}
putstring ("Impossible d’ouvrir le fichier") ; Serial.Print(Name) ; retour ;
}
OK, lire le fichier et le transformer en un objet vague
Si (! wave.create(f)) {}
putstring_nl ("pas un valide" WAV") ; retour ;
}

OK le temps de jouer ! Démarrer la lecture
Wave.Play();}

Articles Liés

Les tasses décoratives (DIY)

Les tasses décoratives (DIY)

tasses sont de très bonne chose pour décorer.étape 1:-collecter quelques tasses inutiles..étape 2:-dessiner des visages sur les tasses..étape 3:-mettre le sol dans des tasses..étape 4:-faire pousser des plantes petites coupes..étape 5:-décorer des ta
Mieux que les tasses de beurre d’arachides Reese

Mieux que les tasses de beurre d’arachides Reese

Dans cet épisode de dans la cuisine avec Matt, je vais vous montrer comment faire mieux que les tasses de beurre d'arachides Reese. Ils goûtent beaucoup mieux que la Reese Peanut Butter Cups. Ils sont faciles à faire et bien sûr d'impressionner lors
Comment remplir les tasses k

Comment remplir les tasses k

Comment remplir Keurig tasses avec votre propre café, thé en vrac, ou même des cubes de bouillon de pouletÉtape 1: Étape 1: matériaux Vous aurez besoin : une tasse k utilisé, un couteau, d'aluminium, bandes de caoutchouc et votre propre caféÉtape 2:
Plateau à la main pour les tasses à café

Plateau à la main pour les tasses à café

préparationRonde de bâtons en bois longueur 25-30cmTrois crochetsPulvérisateur de peinture blanchePeinture jauneColle de laitPerceuse à mainÉtape 1 : Couper en bois ronde de bâtons en différentes longueurs, vous avez besoin au sujet des bâtonnets de
Les chaussures - Interactive Art chaussures par hamou

Les chaussures - Interactive Art chaussures par hamou

Voir plus en détail au Tuang Studioou connectez-vous avec la fanpageJe viendra avec l'instruction. ! Ce sont dur pour moi de l'expliquer, je suis maintenant trouver comment.
Tasses de concombre comestibles pour les Cocktails

Tasses de concombre comestibles pour les Cocktails

j'ai eu envie d'essayer ce projet de tasse de concombre comestibles pendant une longue période.  Super facile à faire, il s'avère que, voici un excellent moyen pour le plaisir des invités à votre prochaine fête ou événement.Vous aurez besoin :2-3 con
Comment faire vos propres tasses de semences-démarreur-qui sont bons pour les plantes !

Comment faire vos propres tasses de semences-démarreur-qui sont bons pour les plantes !

Un moyen d'utiliser des matériaux recyclés pour faire vos propres tasses de semences libres. Elles sont biodégradables, donc il n'y a aucun choc de transplantation et incluent certains café moulu pour une source de nutriments naturelle que les graine
Table de ping-pong interactif LED bière

Table de ping-pong interactif LED bière

Créer votre propre Table de ping-pong de bière LED interactif !Cette instructable vous guidera à travers toutes les étapes d'afin de créer une table de ping-pong d'one-of-a-kind bière complète avec coupe détection RGB gousses, rondelles de balle auto
Tasses de délicieux petit-déjeuner

Tasses de délicieux petit-déjeuner

J'aime cuisiner. Je veux dire, j'adore cuisiner. J'aime essayer de nouvelles idées de recette sur internet, mais tous vous pouvez trouver est parfois une image avec aucune recette. Tel est le cas avec ces mauvais garçons. J'ai vu plusieurs photos sur
Comment préparer un bonne tasse de thé

Comment préparer un bonne tasse de thé

thé est une boisson qui beaucoup de gens boire par hasard tous les jour, mais dans le thé de nombreuses cultures, est considéré comme une forme d'art. Dans ce mode d'emploi vous serez non seulement en savoir plus sur les différents types de thé, mais
Interactive Multitouch Display

Interactive Multitouch Display

entre l'iPhone d'Apple et table interactive de Microsoft, multi-touch affiche font fureur. Cette instructable vous montrera comment transformer votre projecteur lcd dans une table interactive multi-touch écran à l'aide de quelques composants bon marc
Comment nettoyer les bijoux argent et coutellerie

Comment nettoyer les bijoux argent et coutellerie

La semaine dernière nous avons effectué une expérience dans la classe de chimie engageant les réactions d'oxydo-réduction (pour ceux qui ne connaissent pas le terme, je vais vous expliquer brièvement, mais il y a également une explication dans Wikipe
Boîte de survie chez les adolescentes - la Graduation meilleure présenter jamais !

Boîte de survie chez les adolescentes - la Graduation meilleure présenter jamais !

Grande. Un titre écrit par le capitaine Hyperbole. Peut-être, mais je vous mets au défi. Si l'on excepte des véhicules, grosses sommes d'argent et les voyages exotiques, me parler de meilleure graduation actuelle qui est plus utile et dit que vous vo
Les graines de lin sans oeufs Pomme cannelle Cake

Les graines de lin sans oeufs Pomme cannelle Cake

Envie d'un gâteau délicieux pomme cannelle ? Il s'agit de la butée de droite pour vous. Ce gâteau Flax Seed pomme cannelle s'avère magnifique et délicieux. La majesté de ce gâteau provient du fait que non seulement délicieux et beau, mais est égaleme