Page créée avec « {{Tuto Details |Main_Picture=Piano_invisible_avec_arduino_500px-FritzingPianoInvisiblePotentio.png |Licences=Attribution (CC-BY) |Description=Un piano c'est sympa mais ça... » |
Pierreb (discussion | contributions) Créer et modifier les pages et tutoriels, Lire les contenus, Bureaucrates, Administrateurs, Administrateurs 879 modifications update property name |
||
| Ligne 3 : | Ligne 3 : | ||
|Licences=Attribution (CC-BY) | |Licences=Attribution (CC-BY) | ||
|Description=Un piano c'est sympa mais ça prend de la place alors pourquoi ne pas en créer un invisible ? Pour se faire on utilisera une carte arduino et un capteur, facile non ? | |Description=Un piano c'est sympa mais ça prend de la place alors pourquoi ne pas en créer un invisible ? Pour se faire on utilisera une carte arduino et un capteur, facile non ? | ||
| | |Disciplines scientifiques=Arduino | ||
|Difficulty=Technical | |Difficulty=Technical | ||
|Duration=1 | |Duration=1 | ||
Auteur
Tess | Dernière modification 15/10/2019 par Pierreb
Piano_invisible_avec_arduino_500px-FritzingPianoInvisiblePotentio.png
</div><div>Certains nécessitent une tension continue, d'autres nécessitent une tension alternative. Cette page recense les types de buzzer les plus répandus.Pourquoi ne pas réaliser la fiche expérience pour Wikidébrouillard !
</div><div>Arduino, et son synonyme Genuino sont des micro-controleurs libres.
</div><div>C'est le logiciel libre développé pour accompagner et programmer la carte Arduino
</div><div>Dès sa mise sous tension, un ordinateur exécute, l'une après l'autre, des instructions qui lui font lire, manipuler, puis réécrire un ensemble de données auquel il a accès. Des tests et des sauts conditionnels permettent de changer d'instruction suivante, et donc d'agir différemment en fonction des données ou des nécessités du moment. Les données à manipuler sont obtenues, soit par la lecture de mémoires, soit par la lecture de composants d'interface (périphériques) qui représentent des données physiques extérieures en valeurs binaires (déplacement d'une souris, touche appuyée sur un clavier, température, vitesse, compression...). Une fois utilisées, ou manipulées, les données sont réécrites, soit dans des mémoires, soit dans des composants qui peuvent transformer une valeur binaire en une action physique (écriture sur une imprimante ou sur un moniteur, accélération ou freinage d'un véhicule, changement de température d'un four ...). L'ordinateur peut aussi répondre à des interruptions qui lui permettent d’exécuter des programmes de réponses spécifiques à chacune, puis de reprendre l’exécution séquentielle du programme interrompu. La technique actuelle des ordinateurs date du milieu du xxe siècle. Ils peuvent être classés selon plusieurs critères1 (domaine d'application, taille ou architecture).
</div><div>L'avantage de ce système est d'être totalement réutilisable, car il ne nécessite pas de soudure. Ce dernier point distingue les platines Labdec des stripboards (ou veroboards), des perfboards ou des circuits imprimés qui sont, eux, utilisés pour réaliser des prototypes permanents et que l'on sera donc moins à même de démonter. On peut de plus câbler sur une platine Labdec une grande variété de composants afin de réaliser des circuits électroniques, du plus simple circuit jusqu'au microprocesseur.
</div><div>Un potentiomètre est un type de résistance variable à trois bornes, dont une est reliée à un curseur se déplaçant sur une piste résistante terminée par les deux autres bornes.On relie :
int trig = 8; int echo = 7; long lecture_echo; long cm; int sortie_son = 12; int offset = 0; void setup() { pinMode(trig, OUTPUT); digitalWrite(trig, LOW); pinMode(echo, INPUT); pinMode(sortie_son,OUTPUT); } void loop() { digitalWrite(trig, HIGH); delayMicroseconds(10); digitalWrite(trig, LOW); lecture_echo = pulseIn(echo, HIGH); cm = (lecture_echo / 58) + offset; delay(200); if(cm<=5) { tone(sortie_son,150); } else if((cm>5)&&(cm<=10)) { tone(sortie_son,300); } else if((cm>10)&&(cm<=15)) { tone(sortie_son,500); } else if((cm>15)&&(cm<=20)) { tone(sortie_son,700); } else if((cm>20)&&(cm<=25)) { tone(sortie_son,900); } else if((cm>25)&&(cm<=30)) { tone(sortie_son,1100); } else { noTone(sortie_son); } }
On restera sur le principe du piano invisible en ajoutant la possibilité de faire varier les fréquences à l'aide de potentiomètre.
On ajoute au montage précédent les 6 potentiomètres relié sur :
int trig = 8;
int echo = 7;
long lecture_echo;
long cm;
int sortie_son = 12;
int offset = 0;
void setup() {
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
pinMode(sortie_son,OUTPUT);
}
void loop() {
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);
cm = (lecture_echo / 58) + offset;
delay(200);
if(cm<=5) {
tone(sortie_son,analogRead(A0));
}
else if((cm>5)&&(cm<=10)) {
tone(sortie_son,analogRead(A1));
}
else if((cm>10)&&(cm<=15)) {
tone(sortie_son,analogRead(A2));
}
else if((cm>15)&&(cm<=20)) {
tone(sortie_son,analogRead(A3));
}
else if((cm>20)&&(cm<=25)) {
tone(sortie_son,analogRead(A4));
}
else if((cm>25)&&(cm<=30)) {
tone(sortie_son,analogRead(A5));
}
else {
noTone(sortie_son);
}
On voit que si on met un obstacle devant le capteur, l'arduino envoie un son au buzzer : selon où on se met par rapport au capteur, le son change.
Pour la variante : Si l'on tourne un des potentiomètre, la fréquence du son varie.
Le capteur utilisé est un capteur à ultrason : lorsqu'il détecte un obstacle il va renvoyer au programme la distance qui le sépare de l'obstacle. Selon la distance renvoyée, la carte va envoyer une fréquence au buzzer.
Pour modifier la fréquence ou la distance, il faut modifier les dernières lignes du programme :
Il peut arriver qu'il faille réaliser un calibrage du capteur, pour cela on va jouer sur l'offset (la marge d'erreur). Pour cela, on va utiliser la règle afin de voir si les distances correspondent. Dans le cas contraire, on ajoutera ou soustraira l'erreur :
int offset = 0;
Il suffit de changer ici la valeur et le signe de :
cm = (lecture_echo / 58) + offset;
Pour la variante
Un potentiomètre est une résistance variable : le courant va passer dedans et être atténué permettant de moduler le signal. On peut ainsi aller de 0 à 1023 en règle général. Ce chiffre est récupéré à l'aide la fonction "analogRead", il est ensuite substitué à la fréquence.
On peut lire des sons MP3 sur arduino à l'aide d'un shield spécifique mais est-il possible d'obtenir des sons plus agréables sans ajout d'un shield ?
Les capteurs à ultrason sont utilisés dans de nombreux dispositifs, l'expérience peut servir d'introduction à la programmation de capteurs (en vu d'un robot par exemple) ou en finalité d'une séance sur la musique.
Plutôt dans un atelier avec des ordinateurs disposant du logiciel arduino.
Dernière modification 15/10/2019 par user:Pierreb.
Draft
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #