Programmation piano numérique

bonjour a tous !
je suis en terminal technologique et j'ai comme projet un piano numérique pour personne poly-handicapé composé de 5 touches. Pour cela, je dispose d'une arduino uno, d'une rasberry pi 3 d'un haut parleur et de 5 capteur pression SEN-PRESSURE02. Il faut que j'arrive à modifier le volume du haut parleur en fonction de la pression exercé sur le capteur...
j'ai fais mon programme est- ce que cela fonctionnerai et avez vous des idées me permettant d'améliorer le programme ?

int capteur_force = A0; // capteur branché sur pin Analog 0
int hp = 13; //connecter hp sur pin 3 (pin PWM)
int lecture_capteur;  //Lecture analogique de la tension du pont diviseur du capteur
int volume;

void setup(void) {
   Serial.begin(9600); // Envoi de message de déboggage sur connexion série
   pinMode(capteur_force, INPUT);
   pinMode(hp, OUTPUT);
}

void loop(void) {
   lecture_capteur = analogRead(capteur_force);
   //Nous devons convertir la valeur analogique lue (0-1023)
   // en une valeur utilisable par analogWrite (0-255).
   // C'est ce que fait l'instruction map!

   volume = map(lecture_capteur, 0, 1023, 0, 255);
   // Ecrire sur le HP la valeur décimal volume (en fonction de la pression)
   analogWrite(hp, volume);
   delay(100);

}

Bonjour,

Bien venu à toi sur le forum.

Dans l'idée, ce que tu a écris marche.

Dans le détails, la sortie 13 est une sortie dite PWM, il serait bon que tu lise un peu sur le sujet PWM pour comprendre ce que cela induit.

A mon humble avis, il faudrait que tu puisse faire quelques essais avec le hard branché pour pouvoir étalonner tes capteurs en fonction de la force des appuis et éventuellement adapter les valeurs de la Map.

Idem pour ta sortie 13 et évaluer à l'oreille comment réagir ton haut parleur en fonction de la valeur "volume" dans analogWrite(hp, volume);

Si tu n'a pas ton matériel à disposition, tu sais qu'il y a de trés bons simulateurs pour tester ton code (wolkwi, tinkercad...).

Dans l'IDE de Arduino, il y a aussi des exemples "musicaux" dans le menu
Fichiers
__Exemples
____02 Digital
______toneKeyboard
______toneMelody
______toneMultiple (intéressant pour toi)
______tonePitchFollower

Comment interagissent les différents éléments les uns avec les autres.
Que fait le Raspi, que fait la Uno?

Le programme fonctionne dans le sens où tu lis un capteur et tu fais quelque chose avec le résultat obtenu. Mais ce que tu n'as pas dit c'est ce que cela devrait faire.

tel quel pas du tout, car tu ne peux pas modifier la note que tu joue.
Comme tu passe par un PWM, c'est à dire envois un signal carré à fréquence fixe(celle du PWM), mais avec un rapport cyclique variable.

Pour faire ce que tu veux, il faudrait que ton programme calcule la valeur donné à analogwrite en fonction du volume et d'une forme d'onde(sinusoïde ou carré représentant de la fréquence voulu)

Il y a surement d'autre possibilité.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.