Il s’agit d’un projet très simple et c’est aussi mon premier Instructables...
Description du projet :
Une caisse de résonance qui lit un fichier de ma voix et permet au spectateur de baisser le ton de ma voix lorsque le fichier joue.
Ce qui a motivé la réalisation de la pièce :
Un nombre croissant d’intérêt dans les plates-formes pédagogiques telles communautés Instructables et fabricant de partager les ressources et compétences - stimuler la curiosité. Je suis intéressé par les moyens par lesquels technologie est utilisée, partagée, romancée et appliquée. J’ai choisi de se concentrer sur la fiction acoustique comme un point de départ pour une conversation sur l’Agence : J’ai placé un diagramme ci-dessus le « joueur » que tracée de manière relativement précise les effets physiologiques, les mythes et les applications qui découlent de son (hauteur et volume) selon son abaissement en Hz et niveau sonore en dB ; avec tout de fréquence zone correspondant au fantôme sightings Brown Note, de Vladimir Gavreau arme sonique et l’acoustique de tests, le bruit d’un bébé pleure, grenades, une moto, une voix humaine, etc.
Liste des pièces :
1. waveshield d’adafruit : http://www.adafruit.com/products/94
2. arduino uno
3. perf Conseil
4. LED
5. bouton
6. résistance de 10 K ohms (marron noir orange doré)
7. tout petit haut-parleur / / j’ai utilisé un haut-parleur rechargeable tech & go : http://www.drugstore.com/tech-and-go-rechargable-portable-speaker-blue/qxp460069
8. boîte de projet
9. boîte pour haut-parleur
10. Sugru http://sugru.com
11. audio mousse / mousse /
12. fer à souder de
Première étape :
Souder le blindage de la vague et formater la carte SD en conséquence. Didacticiels fournis ici :
http://www.RobotShop.com/content/PDF/Adafruit-Wave-Shield-User-Guide.pdf
Notez que la Bibliothèque utilisée dans ce tutoriel est maintenant obsolète. Reportez-vous à gitHub pour télécharger le nouveau WaveHC bibliothèque http://code.google.com/p/sdfatlib/downloads/list
Deuxième étape :
Circuit:
Parce que je voulais faire mon petit joueur aussi intuitif que possible, j’ai décidé d’ajouter un bouton « play » qui jouerait seulement le fichier (pas l’interrompre), une lumière qui tournerait sur uniquement lorsque le fichier joue et un potentiomètre pour ralentir la fréquence d’échantillonnage du fichier pendant la lecture.
Code:
/*................... Exemple de Adafruit SampleRateMod.pde modifié pour utiliser WaveHC.
Déposer les pièces lorsque vous appuyez sur le bouton. Ralentit le taux d’échantillonnage avec pot sur analogique 0.
Un grand Merci WaveHC Library, Adafruit, David Casey, Tom Jennings!!!
Projet : Niveau de DB
modifié le 30 avril 2013... * /
#include
#include
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 répertoire racine de volumes
Fichier FatReader ; Cet objet représente le fichier WAV
WaveHC vague ; C’est le seul objet (audio) de la vague, puisque nous allons jouer seulement un à la fois
/*
Définir des macros pour mettre des messages d’erreur dans la mémoire flash
*/
#define error(msg) error_P(PSTR(msg))
buttonValue int ;
const int ledPin = 15 ; Il s’agit de 1 vraiment analogiques sur arduino
void setup() {}
pinMode (ledPin, sortie) ;
Serial.Begin(9600) ;
Serial.println ("vague test!") ;
Essayez card.init(true) si des erreurs se produisent sur bouclier vague V1.0
Si (! card.init()) {}
erreur ("carte init. a échoué!") ;
}
Enable optimiser la lecture - certaines cartes peuvent timeout
card.partialBlockRead(true) ;
Si (! vol.init(card)) {}
erreur ("aucune partition!") ;
}
Si (! root.openRoot(vol)) {}
erreur ("Impossible d’ouvrir racine") ;
}
putstring_nl ("fichiers trouvés:") ;
root.ls() ;
}
declarition avant
void playcomplete (FatReader & fichier) ;
void loop() {}
uint8_t i, r ;
nom c, Char [15] ;
dir_t dir ;
buttonValue = digitalRead(7) ;
root.Rewind() ;
Faites défiler les fichiers dans le répertoire
tandis que (root.readDir(dir) > 0) {}
seulement jouer. Fichiers WAV
Si (! strncmp_P ((char *) & dir.name[8]. PSTR("wav"))) continuer ;
Si (! file.open (vol, dir)) {}
putstring ("Impossible d’ouvrir ») ;
printEntryName(dir) ;
Serial.println() ;
continuer ;
}
putstring ("\n\rPlaying") ;
printEntryName(dir) ;
Serial.println() ;
Si (buttonValue == HIGH) {}
playcomplete(file) ;
}
digitalWrite (ledPin, basse) ; doit être en dehors le f pour tourner led éteint
}
}
/////////////////////////////////// HELPERS
/*
imprimer des message d’erreur et arrêter
*/
void error_P (const char * str) {}
PgmPrint ("erreur:") ;
SerialPrint_P(str) ;
sdErrorCheck() ;
while(1) ;
}
/*
imprimer des message d’erreur et en cas d’erreur d’e/s SD, idéal pour le débogage !
*/
void sdErrorCheck(void) {}
Si (! card.errorCode()) retourner ;
PgmPrint ("\r\nSD I/O erreur:") ;
Serial.Print(Card.ErrorCode(), HEX) ;
PgmPrint (",") ;
Serial.println(Card.ErrorData(), HEX) ;
while(1) ;
}
int16_t lastpotval = 0 ;
#define hystérésis 3
/*
* lire le fichier avec les modifications de taux d’échantillonnage
*/
void playcomplete (FatReader & file) {}
int16_t potval ;
uint32_t newsamplerate ;
Si (! wave.create(file)) {}
putstring_nl ("pas un valide" WAV") ;
retour ;
}
Wave.Play() ;
Si {(wave.isplaying)
digitalWrite (ledPin, HIGH) ;
}
alors que {(wave.isplaying)
potval = analogRead(0) ;
Si (((potval-lastpotval) > hystérésis) || ((lastpotval-potval) > hystérésis)) {
putstring ("pot =") ;
Serial.println (potval, DEC) ;
putstring ("tickspersam =") ;
Serial.Print (wave.dwSamplesPerSec, DEC) ;
putstring ("->") ;
newsamplerate = wave.dwSamplesPerSec ;
newsamplerate * = potval ;
newsamplerate / = 512 ; Nous voulons « split » entre accéléré et ralenti.
Si {(newsamplerate > 24000)
newsamplerate = 24000 ;
}
Si {(newsamplerate < 1000)
newsamplerate = 1000 ;
}
wave.setSampleRate(newsamplerate) ;
Serial.println (newsamplerate, DEC) ;
lastpotval = potval ;
}
Delay(10) ;
}
sdErrorCheck() ;
file.Close() ;
}
Troisième partie :
Ajuster les tripes à la conception de la capote. Percer des trous en conséquence. Parce que je suis en utilisant un petit haut-parleur, je peux le pouvoir le tout hors d’une pile de 9V qui rend juste plus facile à installer comme source d’énergie est une question d’uniforme.
Voici un lien vers les documents de travail :
https://Vimeo.com/66703542