(41 versions intermédiaires masquées) | |||
Ligne 1 : | Ligne 1 : | ||
{{avertissement}} | {{avertissement}} | ||
- | {{vidéo|numérovidéo = <videoflash type="mediaspip" num ="1">http://mediaspip.ptitdeb.infini.fr/IMG/ | + | {{vidéo|numérovidéo = <videoflash type="mediaspip" num ="1">http://mediaspip.ptitdeb.infini.fr/IMG/flv/piano_8_bits-encoded.flv|400|300</videoflash>}} |
- | ==Présentation du projet Arduino | + | ==Présentation du projet Arduino== |
Piano 8 touches , recréant 8 notes. | Piano 8 touches , recréant 8 notes. | ||
+ | |||
+ | A travers ce tuto , nous allons vous apprendre à réaliser un piano !!! | ||
+ | Pas de panique , la vidéo vous guidera pas à pas , de plus le code informatique vous est donné et commenté. | ||
+ | Alors à vos plaques et câblez . | ||
+ | |||
+ | Bon courage à vous !!!! | ||
==Liste du matériel== | ==Liste du matériel== | ||
- | + | ||
* [[Image:Arduino_Diecimila.jpg|50px]] La carte [[Arduino]] Uno | * [[Image:Arduino_Diecimila.jpg|50px]] La carte [[Arduino]] Uno | ||
* [[Image:Arduino_Uno_logo.png|50px]] Le logiciel Arduino | * [[Image:Arduino_Uno_logo.png|50px]] Le logiciel Arduino | ||
- | * [[Image:Fils1.jpg|50px]] | + | * [[Image:Fils1.jpg|50px]] 20 [[fils électrique]] (noir, rouge…) |
* [[Image:Plaque2.jpg|50px]] Une plaque labdec ou [[Breadboard]] | * [[Image:Plaque2.jpg|50px]] Une plaque labdec ou [[Breadboard]] | ||
- | * [[Image:Résistance.jpg|50px]] | + | * [[Image:Résistance.jpg|50px]] Huit [[résistances]] de 150 Ohm |
* [[Image:Ordi.jpg|50px]] Un [[ordinateur]] pour programmer | * [[Image:Ordi.jpg|50px]] Un [[ordinateur]] pour programmer | ||
+ | *[[Image:poussoir.jpg|50px]] Huit [[Bouton poussoir]] | ||
+ | *[[Image:potentiomètre.jpg|50px]] Un [[Potentiomètre]] | ||
==réalisation du projet== | ==réalisation du projet== | ||
- | === | + | ===Explications=== |
+ | Le piano 8 bits sous arduino permet la réalisation de 8 notes différentes à l'aide de boutons poussoirs et d'un buzzer. | ||
+ | Enjoy :) | ||
+ | Pour mettre le code sur l'arduino , suivez les étapes décrites ci-dessous: | ||
+ | #Ouvrez le logiciel Arduino | ||
+ | #Copiez-collez le code donné sous le schéma fritzing dans la fenêtre de l'ide arduino. | ||
+ | |||
+ | [[Fichier:CaptureArd.PNG|500px]] | ||
+ | #Cliquez sur fichier ->téléverser et voilà le code est envoyé sur l' arduino. | ||
+ | #Pour vous amusez appuyez sur les boutons pour produire de la musique. | ||
+ | |||
===Schéma Fritzing=== | ===Schéma Fritzing=== | ||
+ | [[Image:Piano.png]] | ||
+ | |||
===Code=== | ===Code=== | ||
<pre> | <pre> | ||
- | + | //Definitions des fréquences des notes | |
- | // | + | #define NOTE_C3 131 |
+ | #define NOTE_CS3 139 | ||
+ | #define NOTE_D3 147 | ||
+ | #define NOTE_DS3 156 | ||
+ | #define NOTE_E3 165 | ||
+ | #define NOTE_F3 175 | ||
+ | #define NOTE_FS3 185 | ||
+ | #define NOTE_G3 196 | ||
+ | #define NOTE_GS3 208 | ||
+ | #define NOTE_A3 220 | ||
+ | #define NOTE_AS3 233 | ||
+ | #define NOTE_B3 247 | ||
+ | #define NOTE_C4 262 | ||
+ | #define NOTE_CS4 277 | ||
+ | #define NOTE_D4 294 | ||
+ | #define NOTE_DS4 311 | ||
+ | #define NOTE_E4 330 | ||
+ | #define NOTE_F4 349 | ||
+ | #define NOTE_FS4 370 | ||
+ | #define NOTE_G4 392 | ||
+ | #define NOTE_GS4 415 | ||
+ | #define NOTE_A4 440 | ||
+ | #define NOTE_AS4 466 | ||
+ | #define NOTE_B4 494 | ||
+ | #define NOTE_C5 523 | ||
+ | #define NOTE_CS5 554 | ||
+ | #define NOTE_D5 587 | ||
+ | #define NOTE_DS5 622 | ||
+ | #define NOTE_E5 659 | ||
+ | #define NOTE_F5 698 | ||
+ | #define NOTE_FS5 740 | ||
+ | #define NOTE_G5 784 | ||
+ | #define NOTE_GS5 831 | ||
+ | #define NOTE_A5 880 | ||
+ | #define NOTE_AS5 932 | ||
+ | #define NOTE_B5 988 | ||
+ | #define NOTE_C6 1047 | ||
+ | |||
+ | #define NB_TOUCHES 8 //Régler ici le nombres de touches correspondant à votre clavier | ||
+ | #define POTARD 1 //Cette variable permet de choisir si l'on veut utiliser | ||
+ | //le potentiomètre pour changer d'octave ou non (1 pour oui, 0 pour non) | ||
+ | |||
+ | int notes3 = {NOTE_C3, NOTE_D3, NOTE_E3, NOTE_F3,NOTE_G3,NOTE_A3,NOTE_B3,NOTE_C4}; | ||
+ | //Notes3 est l'octave la plus grave | ||
+ | int notes4 = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4,NOTE_G4,NOTE_A4,NOTE_B4,NOTE_C5}; | ||
+ | int notes5 = {NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5,NOTE_G5,NOTE_A5,NOTE_B5,NOTE_C6}; | ||
+ | int notesOcarina = {NOTE_D4, NOTE_F4, NOTE_A4, NOTE_B4,NOTE_D5}; | ||
+ | |||
+ | //Chacun de ces tableau définit une octave ou le mode ocarina, que l'on peut choisir | ||
+ | //à l'aide du potentiomètre (si on en a mis un) | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(0,INPUT); | ||
+ | pinMode(1,INPUT); | ||
+ | pinMode(2,INPUT); | ||
+ | pinMode(3,INPUT); | ||
+ | pinMode(4,INPUT); | ||
+ | pinMode(5,INPUT); | ||
+ | pinMode(6,INPUT); | ||
+ | pinMode(7,INPUT); | ||
+ | pinMode(9,OUTPUT); | ||
+ | } | ||
+ | void loop() { | ||
+ | int fq = 0;// Cette variable sert à contenir la fréquence correspondant à la note | ||
+ | int* notes; | ||
+ | int nb_notes = NB_TOUCHES; | ||
+ | //Notez que l'ocarina de zelda n'as que 5 notes | ||
+ | if (POTARD) | ||
+ | {// Si on a choisi de mettre un potentiomètre, ce code permet de régler les modes | ||
+ | //en fonction de celui-ci | ||
+ | int potardValue = analogRead(A0); | ||
+ | if (potardValue < 255/4) | ||
+ | { | ||
+ | notes = notes3; | ||
+ | } | ||
+ | else if (potardValue < 255/2) | ||
+ | { | ||
+ | notes = notes4; | ||
+ | } | ||
+ | else if (potardValue < 255*3/4) | ||
+ | { | ||
+ | notes = notes5; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | notes = notesOcarina; | ||
+ | nb_notes = 5; | ||
+ | } | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | notes = notes4; | ||
+ | } | ||
+ | |||
+ | for (int thisSensor = 0; thisSensor < nb_notes ; thisSensor++)// Cette fonction | ||
+ | {// permet à l'arduino de détecter si une touche du piano a été pressée | ||
+ | int sensorReading = digitalRead(thisSensor); | ||
+ | if (sensorReading == HIGH) | ||
+ | {// Si une touche du piano est pressée la note est recopiée dans fq | ||
+ | fq = notes[thisSensor]; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | if (fq) | ||
+ | {// Si il y a une note, on fait marcher le buzzer | ||
+ | tone(9, fq); | ||
+ | } | ||
+ | else | ||
+ | {// Si il n'y a pas de note, on empêche le buzzer de fonctionner | ||
+ | noTone(9); | ||
+ | } | ||
+ | } | ||
- | |||
</pre> | </pre> | ||
==Liens avec d'autres projets arduino== | ==Liens avec d'autres projets arduino== | ||
- | + | ||
+ | Un piano en utilisant de la pâte à modeler et un arduino [http://wikidebrouillard.org/index.php/PATADUINO PATADUINO] | ||
==Pour aller plus loin== | ==Pour aller plus loin== | ||
+ | Si vous le souhaitez l'ajout d'un potentiomètre permet la modification des octaves | ||
==Liens avec le quotidien== | ==Liens avec le quotidien== | ||
- | + | Un lien vers une autre possibilité de créer un piano à l'aide d'un arduino: | |
+ | [http://www.semageek.com/podcast-1-transformer-un-clavier-ps2-en-piano-avec-un-kit-arduino/ Transformer un clavier d'ordinateur en clavier de piano] | ||
[[Catégorie:Arduino]] | [[Catégorie:Arduino]] |
Sommaire |
Piano 8 touches , recréant 8 notes.
A travers ce tuto , nous allons vous apprendre à réaliser un piano !!! Pas de panique , la vidéo vous guidera pas à pas , de plus le code informatique vous est donné et commenté. Alors à vos plaques et câblez .
Bon courage à vous !!!!
Le piano 8 bits sous arduino permet la réalisation de 8 notes différentes à l'aide de boutons poussoirs et d'un buzzer. Enjoy :) Pour mettre le code sur l'arduino , suivez les étapes décrites ci-dessous:
//Definitions des fréquences des notes #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NB_TOUCHES 8 //Régler ici le nombres de touches correspondant à votre clavier #define POTARD 1 //Cette variable permet de choisir si l'on veut utiliser //le potentiomètre pour changer d'octave ou non (1 pour oui, 0 pour non) int notes3 = {NOTE_C3, NOTE_D3, NOTE_E3, NOTE_F3,NOTE_G3,NOTE_A3,NOTE_B3,NOTE_C4}; //Notes3 est l'octave la plus grave int notes4 = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4,NOTE_G4,NOTE_A4,NOTE_B4,NOTE_C5}; int notes5 = {NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5,NOTE_G5,NOTE_A5,NOTE_B5,NOTE_C6}; int notesOcarina = {NOTE_D4, NOTE_F4, NOTE_A4, NOTE_B4,NOTE_D5}; //Chacun de ces tableau définit une octave ou le mode ocarina, que l'on peut choisir //à l'aide du potentiomètre (si on en a mis un) void setup() { pinMode(0,INPUT); pinMode(1,INPUT); pinMode(2,INPUT); pinMode(3,INPUT); pinMode(4,INPUT); pinMode(5,INPUT); pinMode(6,INPUT); pinMode(7,INPUT); pinMode(9,OUTPUT); } void loop() { int fq = 0;// Cette variable sert à contenir la fréquence correspondant à la note int* notes; int nb_notes = NB_TOUCHES; //Notez que l'ocarina de zelda n'as que 5 notes if (POTARD) {// Si on a choisi de mettre un potentiomètre, ce code permet de régler les modes //en fonction de celui-ci int potardValue = analogRead(A0); if (potardValue < 255/4) { notes = notes3; } else if (potardValue < 255/2) { notes = notes4; } else if (potardValue < 255*3/4) { notes = notes5; } else { notes = notesOcarina; nb_notes = 5; } } else { notes = notes4; } for (int thisSensor = 0; thisSensor < nb_notes ; thisSensor++)// Cette fonction {// permet à l'arduino de détecter si une touche du piano a été pressée int sensorReading = digitalRead(thisSensor); if (sensorReading == HIGH) {// Si une touche du piano est pressée la note est recopiée dans fq fq = notes[thisSensor]; } } if (fq) {// Si il y a une note, on fait marcher le buzzer tone(9, fq); } else {// Si il n'y a pas de note, on empêche le buzzer de fonctionner noTone(9); } }
Un piano en utilisant de la pâte à modeler et un arduino PATADUINO
Si vous le souhaitez l'ajout d'un potentiomètre permet la modification des octaves
Un lien vers une autre possibilité de créer un piano à l'aide d'un arduino: Transformer un clavier d'ordinateur en clavier de piano
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique