Table des matières

Partie Théorique


Nous nous plaçons, dans la cas d'un accordage classique (cf Présentation du projet).

Nous allons identifier les montages utiles et indispensable pour notre montage, ainsi que la détermination des caractéristiques des composants que nous allons avoir besoin.

Filtrage du Bruit


Sur une guitare , les harmoniques fondamentales vont de $Mi_1 (E_1)$ à $Mi_ 2 (E_3)$, nous décidons de n’utiliser que les fréquences incluses dans cet intervalle.

Corde Note Fréquence ($H_z$)
6 Mi (E1) 82.41
5 La (A1) 110
4 Ré (D2) 146.83
3 Sol (G2) 196
2 Si (B2) 246.94
1 Mi (E3) 329.63

Nous avons besoin d'un filtre qui permettra d'éliminer les fréquences indésirables (tel le bruit) et ainsi “isoler” les fréquences qui nous intéresse, soit les fréquences correspondantes aux notes de nos cordes. Le filtre pourra donc nous aider à respecter cette plage de fréquence.

Ainsi le filtre passe bas du début de la chaine sera de type passif d'ordre 1 avec une fréquence de coupure $f_c = 400 H_z$.On le réalise grâce à une résistance et un condensateur.

Schéma


Schéma pour la filtrage du bruit :


Pour la détermination des valeurs de la résistance et du condensateur, on peut le faire à notre guise. En effet, la fréquence de coupure étant définie par : $ \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad f_c = \dfrac{1}{2 \pi\ RC}$

On peut choisir de fixer soit $R$ soit $C$ et de résoudre l'équation.On décide de fixer $C=0.47µF$.
Les composants utilisés seront donc:
$ \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \quad R=850Ω$
$ \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \quad C=0.47µF$

Matlab & Bode

Grâce à matlab, on peut vérifier les caractéristiques de notre montage :

filtre_bruit.m
 
%Composer d'un filtre passe bas d'ordre 2 
 
%Gain & facteur de qualité du filtre:
K =1;Q=0.707;
%Plage de fréquence :
w= [0:0.1:2500];
%fréquence coupure passe-bas (Hz) 
wb =2*pi*400; 
 
%Fonction de transfert passe-bas H(p) = K*w0^2/(p^2+w0*p/Q+w0^2)
numb = [0 K*wb^2];
denb = [1 wb/Q wb^2];
sysb = tf(numb,denb);
%Trace les diagrammes de Bode 
bode(sysb);
legend('Filtre passe-bas du second ordre');


Diagramme d'un filtre passe-bas second ordre :
On se place au point où nous avons $-3dB$, et l'on voit que l'on est notre fréquence de coupure. Il est très important de vérifier si notre fréquence de coupure est à ce point, car après nous avons une atténuation de notre signal de $-20 dB$ par décade (Une décade est un facteur de 10 entre deux nombres).
Nous avons donc dimensionner notre filtre passe-bas.

Structure de Rauch


Nous souhaitons maintenant réaliser un filtre laissant passer que la fréquence propre de la corde. Pour cela, nous utiliserons des cellules de filtres passe-bande de Salen-Key et plus précisément les structures de Rauch. Ce qui nous permet de réaliser des filtres dimensionnés de telle sorte que la fréquence de coupure soit la fréquence fondamentale de vibration de chaque cordes.

Schéma du montage $^{(6)}$


La structure de Rauch nous permet de réaliser des filtres nécessitant un fort gain et un coefficient de qualité élevé. La structure de Rauch permet de régler, de façon indépendante le facteur de qualité $Q$, le gain à la résonance $K_m$ et l'impulsion de résonance $ω_m$ tandis que la structure de Sallen & Key ne permet pas de modifier simultanément $Q$ et $K_m$.

Lorsque l'on fixe $C=C_1=C_2=1μF$, on a :
Fonction de transfert associé à la structure de Rauch : $\quad$ $H(s)=-\dfrac{C\dfrac{R_2R_3}{R_1+R_3}s}{\dfrac{R_1R_2R_3}{R_1+R_3}C^{2}s^{2}+2C\dfrac{R_1R_3}{R_1+R_3}s+1}$


Fréquence centrale du filtre: $\quad\qquad\qquad\qquad\qquad\qquad ω_m = \dfrac{1}{C} \sqrt{\dfrac{R_2(R_1+R_3)}{R_1 R_2 R_3}}$

Gain à cette fréquence: $\quad\qquad\qquad\qquad\qquad\qquad\qquad K_m = - \dfrac{R_2}{2R_1} $

Coefficient de qualité: $\quad\quad\qquad\qquad\qquad\qquad\qquad\qquad Q = \dfrac{1}{2} \sqrt{\dfrac{R_2(R_1+R_3}{R_1R_3}}$

Largeur bande passante du filtre: $\quad\qquad\qquad\qquad\qquad BW = \dfrac{2}{R_2C}$

Nous décidons de fixer $K_m$, $ω_m$ et $Q$, on obtient donc les formules suivantes pour déterminer la valeur de nos résistances :

$\qquad\qquad\qquad\qquad R_2 = \dfrac{2Q}{ω_m C} \qquad\qquad\qquad\qquad R_1 = - \dfrac{R_2}{2K_m} \qquad\qquad\qquad\qquad R_3 = \dfrac{K_m R_1}{2Q^2 + K_m}$

Calculs

Nous allons avoir 6 Structures de Rauch à faire car nous avons 6 cordes qui ont chacune une fréquence différente. Nous déterminons aisément la valeur de nos composants (pour nos filtres) via Matlab.


Dim_Filtre_Rauch.m
%Programme Permettant dimensionnement des filtres
 
%Structure de Rauch - Passe bande
 
%1er Partie : Calcule des composants
 
    %definition des fréquences de chacune des cordes (E1 A1 D2 G2 S2 E3):
    fm = [82.41;110;146.83;196;246.94;329.63];
    %fréquence centrale du filtre
    wn = 2*pi.*fm;
    %on pose le facteur de qualité:
    Q=[150;200;300;400;500;600];
    %Gain à la fréquence de coupure
    K = -2;
    %on fixe les condensateurs (on impose C=C1=C)
    C=10^(-6);
 
    %résistances :
    R2 = (2.*Q)./(wn*C)
    R1 = -R2/(2*K)
    R3 = -(K*R1)./(2.*Q.^2+K)
 
    %Bande passante du filtre 
    BW = 2./(R2*C)
 
 
 
%---------------------------------------------------
 
 
 
 %2ème partie : Calcule de la fonction de transfert & diagramme de Bode 
 
    %Fonction de transfert sous la forme H(p) = (z*p)/(ap²+bp+c)
 
    %On va créer une boucle qui permettra de calculer la fonction de transfert 
    %associés à chacune des résistances que nous avons obtenue dans la 1er partie 
    for i=1:6
        z = C*R2(i)*R3(i)/(R1(i)+R3(i));
        a = (C^2)*(R1(i)*R2(i)*R3(i))/(R1(i)+R3(i));
        b = 2*C*R1(i)*R3(i)/(R1(i)+R3(i));
        c = 1;
        num = [-z 0];
        den= [a b c];
        sys(i) = tf(num,den);   % /!\ tf = transfert function (et non transformé de fourier)
    end
 
    %Trace les 6 diagrammes de Bode 
    bode(sys(1),sys(2),sys(3),sys(4),sys(5),sys(6));
    %Les légendes sinon on ne comprend rien, surtout qu'il y en 6
    legend('Filtre Mi','Filtre La','Filtre Re','Filtre Sol','Filtre Si','Filtre Mi');
 

Grâce à ce code, on détermine :

On a volontairement mis un facteur de qualité différent pour chacun nos filtres. Plus le facteur qualité est important plus la bande passante sera sélective, or il nous faut une petite marge pour nos réglages. Globalement, on a $3H_z$ de bande passante pour chacun de nos filtres.

Pour les résistances:

$R_1 (kΩ)$ $R_2 (kΩ)$ $R_3 (Ω)$ $BW$
$E_1$ 144.8 579.4 6.4 3.452
$A_1$ 144.7 578.8 3.6 3.4558
$D_2$ 162.6 650.4 1.8 3.0752
$G_2$ 162.4 649.6 1.0 3.0788
$B_2$ 161.1 644.5 0.6 3.1031
$E_3$ 144.9 579.4 0.4 3.4519


Fonctions de transfert associé à chacun des filtres:

Corde E1 : $ \qquad \qquad \qquad \qquad \qquad H_{E1}(s) =\dfrac{-2.575.10^{-5}s}{3.73.10^{-6}s^{2}+1.288.10^{-5}s+1}$

Corde Aa : $ \qquad \qquad \qquad \qquad \qquad H_{A1}(s) =\dfrac{-1.447.10^{-5}s}{2.093.10^{-6}s^{2}+7.234.10^{-6}s+1}$

Corde D2 : $ \qquad \qquad \qquad \qquad \qquad H_{D2}(s) =\dfrac{-7.226.10^{-6}s}{1.175.10^{-6}s^{2}+3.613.10^{-6}s+1}$

Corde B2 : $ \qquad \qquad \qquad \qquad \qquad H_{B2}(s) =\dfrac{-4.06.10^{-6}s}{6.594.10^{-6}s^{2}+2.03.10^{-6}s+1}$

Corde E3 : $ \qquad \qquad \qquad \qquad \qquad H_{E3}(s) =\dfrac{-2.578.10^{-6}s}{4.154.10^{-6}s^{2}+1.289.10^{-6}s+1}$


Diagrammes de Bode:
On peut voir que nous avons un seul et unique pic pour chacun des filtres, correspondant à la fréquence de fondamentale de notre corde. Lorsque que nous arrivons vers la fréquence de coupure, le gain augmente et plus on s'éloigne et plus celle-ci s'atténue. C'est exactement ce qu'il nous fallait, il ne nous reste plus qu'à faire les test pour s'assurer que notre filtre est aux normes !

On peut aussi mettre en avant l'influence du facteur de qualité sur notre système, et ainsi voir que la bande-passante (le “pic”) est plus étroite quand le facteur de qualité est plus important.


-

Amplification

Comme le signal en sortie de guitare est assez faible ($\approx 100mV$ par corde), nous avons besoin d'amplifier le signal pour la suite. On veut amplifier le signal de tel sorte à avoir environ 1 volt en sortie.

Schéma

On veut avoir 1 Volt en sortie avec $100mV$ en entrée. Il nous faut alors une amplification de 10. On utilisera le montage d'un amplificateur non inverseur.

$ \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad Gain = 1 + \dfrac{R_2}{R_1}$

Pour avoir un gain de 10, il faut donc que: $\qquad\qquad \dfrac{R_2}{R_1} = 9 \qquad d'où \qquad R_2 = 9R_1$

On prendra $R_1 = 1kΩ$ et $R_2 = 10kΩ$.

Une amplification de 10 ou de 11 ne fera aucune différence car nous voulons au moins 1 Volt à la sortie de notre amplificateur.
Si l'on veut augmenter d'avantage l'amplification, il faudra alors faire attention à ne pas avoir de saturation en sortie d'amplification. Il faut regarder la datasheet du composant pour connaitre alors la limite d'amplification.

Redressement


Le redresseur, en double alternance, nous permettra de transformer le signal sinusoïdale en un signal constant. Il est constituer d'un pont de diode ainsi qu'une charge Résistance-Condensateur en parallèle.
Il y a deux broches (correspondant aux deux côtés du pont), sur l'une d'elle, on aura la composante positive de notre signal et sur l'autre la composante négative.
Dans un premier temps, on avait essayer notre redressement en branchant notre signal sur une broche seulement. Pour d'obscure raison cela marchait mais ce n'était pas très . Pour pallier à ça, nous allons rajouter un amplificateur inverseur, il nous permettra d'avoir un déphasage de $\pi$ et ainsi avoir un redressement double alternance fonctionnant parfaitement.



Amplificateur Inverseur



Nous avons besoin que le signal reste inchangé, nous avons donc besoin d'un gain de $-1$ pour que notre signal soit inversé. Le gain se calcule de la façon suivant :

$ \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad Gain = -\dfrac{R_1}{R_2}$

On prend naturellement $R=R_1=R_2=1kΩ$

Voici le montage:


Schéma Redresseur

Pour redresser le signal, on va utiliser un pont de diode qui nous permettra d'obtenir un redressement en double alternance.


Comment ça fonctionne ?


Explications:

L'entrée de cette partie correspond à la sortie de l'AOP précédent. N'oublions pas que cette dernière est un signal sinusoïdal avec un offset de $4,5V$, puisque nous travaillons toujours en double alternance. Pour que le redressement double alternance fonctionne correctement, il faut amener au pont de diode (à droite du schéma) deux signaux:




Dans notre cas, l'amplitude de la tension en sortie $V_{out}$ sera moduler en fonction de la fréquence à laquelle on est. On a donc un $V_{out}$ maximum à la fréquence de coupure.

Pour résumé :
On a donc un montage qui nous permet de :

  1. Filtrer la fréquence qui nous intéresse
  2. Amplifier le signal d'entrée
  3. Obtenir un signal constant dont l'amplitude varie en fonction de la fréquence


Alimentation asymétrique

Lorsque nous avons testé nos montages, nous partions sur une alimentation symétrique, c'est-à-dire $[-9V;+9V]$ (avec un générateur) car c'est très simple et rapide à réalisé, et ça permet dans un premier temps de pouvoir expérimenter nos montages pour s'assurer de leurs bons fonctionnement. Néanmoins, faire une alimentation symétrique dans un système qui est embarqué est un peu plus compliqué car cela demande d'avoir plusieurs batteries (donc coût de fabrication plus cher) et d'espace dans notre boitier. L'alternative serait de partir sur une alimentions asymétrique en $[0V;9V]$, il y aura en conséquences quelques modifications sur nos montages.

Comme on veut alimenter nos AOP en $[0V;9V]$, il faut créer une tension de référence $V_{ref}$. $V_{ref}$ est toujours définit de la façon suivant :

$\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad \qquad V_{ref} = \dfrac{V_{dd}}{2}$

En faisant un pont diviseur de tension, on obtient aisément notre $V_{ref}$. La formule d'un pont diviseur de tension est :

$ \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad V_{ref}=V_{pile}\dfrac{R_2}{R_1 + R_2}$

On fixe :


On détermine les valeurs de nos résistance et on a : $R_1 = R_2 = 1kΩ$

Création de Vref

Pont diviseur de tension:

Nous avons ajouté un interrupteur et une led , ce qui nous permet avoir une indication quand notre système est sous tension. On reste dans un montage classique et sans surprise. Nous rajoutons à notre $V_{ref}$ un suiveur.

Suiveur:

Le suiveur permet de faire en sorte que l'impédance de sortie de notre AOP soit plus petite que l'impédance d'entrée de l'autre AOP.
À partir de ce point, nous avons créer notre point $V_{ref}$.

Remarque:
On aurait pu, avec une seule batterie, faire une branche $+V_{cc}$, et une autre $-V_{cc}$ en faisant rentrer notre tension dans un amplificateur inverseur. Mais cela peut impliquer une consommation beaucoup plus importante dans notre montage final.


Alimention mono-tension des AOP

Les broches d'alimentation de l'AOP vont maintenant être mis à $[0V;9V]$.Il y aura quelques changements sur nos montages :

  1. Toutes nos masses (sur $V_+$ et $V_-$ de l'AOP) seront remplacés par des $V_{ref}$.
  2. Notre signal sera décalé, l'ajout d'un $V_{ref}$ dans le montage va ajouter un $offset$ à notre signal.
  3. On devra mettre un filtre passe-haut pour supprimer la composante continue.


Montage pour Rauch:
Pas de grand changement sur ce montage, si ce n'est les masses qui sont remplacés par $V_{ref}$.

Montage Amplificateur non inverseur:
Ici encore, la masse est remplacé par notre $V_{ref}$ et on a notre petit filtre passe haut à notre sortie d'AOP ! Comme on a un signal décalé de $+V_{ref}$, le rôle de notre filtre passe haut sera de remettre notre signal centré en 0 et en conséquence de supprimer la composante continue que nous avons ajouté.
Comme pour le filtre passe bas, la fréquence de coupure est déterminer par : $f_c = \dfrac{1}{2 \pi RC}$

On choisit nos composant tel que la fréquence de coupure laisse passer notre signal (ce serait bête d'avoir un signal complètement atténué à ce stade du montage).
En prenant $R=1kΩ$ et $C=22μF$, on a un $f_c \approx 7.2 H_z$. On gardera ses valeurs de résistance et condensateur si on a besoin d'utiliser d'autre filtre passe-haut.

Montage amplificateur inverseur:
Nous mettons un filtre passe haut en entrée pour enlever l'offset de notre signal. En effet, si nous ne faisons pas ça, nous allons rajouter un offset sur le signal et par conséquence avoir un signal offset, non plus à $4.5V$ mais à $9V$ et nous risquons de faire saturer notre AOP.
Mise à part ça, le montage est soumis aux mêmes changements que pour l'amplificateur non inverseur.
Il n'y a pas de changement quant au redressement du signal.

Moteur


Pour choisir nos moteurs, il faut déterminer la force à appliquer sur les clés de la guitare ainsi que le couple du moteur et sa puissance.
Pour cela nous avons réalisé à l'aide de la découpeuse laser une pièce aux dimensions connues permettant de faire tourner une clé de la guitare avec un dynamomètre.



Nous accrochons un dynamomètre numérique à l'anneau et faisons tourner la cheville en tirant dessus. Cette méthode est marche très bien malheureusement le dynamomètre n'est pas adapté pour la mesure car il a une précision de $0.1N$. Nous avons un ordre de grandeur et notons une force de:

$\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad F=0.1N$

Nous cherchons le couple nécessaire pour faire tourner une cheville tel que : $C= F.r$

On a : $r = 79,79mm \qquad$ & $\qquad C=7mN.m$

Il nous faut ensuite la puissance, on veut un moteur qui ne tourne pas très vite donc $ω = 0,2 tours/s$

On utilise donc la formule: $\qquad\qquad\qquad\qquad\qquad P = C.ω = 1mW$

Il nous faut donc un moteur d'un couple de $7mN.m$ et de puissance $1mW$.

Méthode d'accordage


Grâce à nos filtres, nous arrivons à faire varier l'amplitude de notre signal en fonction de la fréquence. Plus la fréquence est proche de la fréquence de coupure et plus l'amplitude sera grande. L'avantage est que pour une faible variation de la fréquence, nous avons une grande variation de l'amplitude. Pour mieux comprendre, regardons le schéma suivant :

Du fait de la précision qu'il faut à nos fitlres (aux $Ohms$ près), il nous sera difficile de fabriquer un filtre parfait (à cause de la précision des composants). Il y a de donc forte chance que la fréquence qui nous intéresse se situe sur une des pentes de notre courbes, donc il nous faudra déterminer manuellement la tension que l'on a à la fréquence de la corde. Dans le cadre d'un filtre parfait, la tension maximale correspondrait à la fréquence de coupure.

Lorsque l'on mesure une tension $V_{mes}$ nous avons deux valeurs de fréquences possibles, de part et d'autre de la cloche. Plaçons nous dans la partie gauche du schéma. La fréquence de notre corde étant sur la pente de la cloche, on pourra comparer la valeur de nos mesures $V_{mes}$ avec la valeur de la tension théorique $V_{théorique}$ que l'on aura déterminer au préalable. Nous avons trois cas possible :

  1. $V_{mes} > V_{théorique}$ : $f_{mesure} > f_{corde}$
  2. $V_{mes} < V_{théorique}$ : $f_{mesure} < f_{corde}$
  3. $V_{mes} = V_{théorique}$ : $f_{mesure} = f_{corde}$



Pour ajuster la fréquence, nous aurons besoin d'activer le moteur sur la clé de la guitare. Pour cela, on va utiliser un arduino, le signal de sortie $V_{out}$ sera lu sur une de ses entrées analogiques. Il ne faut pas avoir de tensions négatives car l'arduino ne les lit pas (il faut que le signal soit compris en $0V$ et $5V$) d'où l'intérêt de redresser notre signal. On aurait pu aussi mettre un offset pour décaler le signal (on utilisera cette méthode pour la partie numérique).


Contrôle moteur

On utilise un moteur à courant continue, il ne recevra de l'arduino que du $5V$ ou $0V$. Pour pouvoir faire tourner le moteur dans un sens puis dans l'autre, il faut utiliser un pont en H, ce qui nous permet d'avoir une tension positive et négative simplement.
Le pont en H se fait avec des BJET : 2 PNP et 2 NPN.


Fonctionnement du pont en h
Les diodes servent à protéger le moteur.

Montage complet

Dans l'ensemble voici à quoi ressemble notre montage



On a rajouté :

  1. Led pour indiquer l'état de la batterie
  2. Des pins pour que l'on puisse contrôler nos signaux en toute simplicité
  3. Une tension de6V pour alimenté notre moteur, on s'est aperçu que 5V n'était pas suffisant pour tourné efficacement la clé de la guitare

Code Arduino

Nous avons fais le test avec un gbf pour simuler le signal de la guitare. Ayant mesuré la tension que l'on obtient à la fréquence de coupure, nous mesurons aussi la tension que l'on obtient lorsque l'on est à $ \pm5H_z$. Cette précaution nous permettra d'arrêter l'arduino pour éviter que la corde ne se brise ou se détende complètement.

/*
  *
  * frequence de coupure du filtre à ~105Hz => U = 4.32V
  *
  */
 
// On se laisse une plage de plus ou moins 10Hz
long ampliWrongMax = 5360; //ampli maximum atteinte +5Hz
long ampliCorrect = 4320;  //ampli pour la bonne fréquence
long ampliWrongMin = 3600; //ampli pour une fréquence de -5hz
 
const int entreSignal = 0; // entrée sur le pin analogique A0
const int sensHoraire = 13; 
const int sensAnti = 12; 
 
void setup()
{
pinMode (sensHoraire, OUTPUT);
pinMode (sensAnti, OUTPUT);
 
}
 
void loop()
{
int val = analogRead(entreSignal);
int mv = map(val, 0, 1023, 0, 5000);
if ((mv > ampliCorrect-400)||(mv < ampliCorrect+400))   //Si on est dans un intervalle
{
digitalWrite(sensHoraire, 0);
digitalWrite(sensAnti, 0);
}
if (mv < ampliCorrect - 500) //Si la tension est plus faible que celle attendu, il faut tendre la corde 
{
digitalWrite(sensHoraire, 1);
digitalWrite(sensAnti, 0);
 
}
if (mv > ampliCorrect + 500) // Si la tension est plus grande que celle attendu, il faut détendre la corde
{
digitalWrite(sensAnti, 1);
digitalWrite(sensHoraire, 0);
}
if ((mv < ampliWrongMin)|| (mv>ampliWrongMax)) //précaution pour ne pas exploser/détendre la corde ;) 
{
digitalWrite(sensAnti, 0);
digitalWrite(sensHoraire, 0);
}
delay(1);
}


ajouter la partie code pour la led de la batterie

Pour augmenter notre précision, on peut



On vous donne rendez-vous sur la partie expérimental pour en savoir plus pour la suite ;)