E-theremin

De Wiki d'activités IMA
Révision datée du 23 mars 2015 à 13:37 par Lchaucha (discussion | contributions) (Semaine 7 (16 mars - 21 mars))


Cahier des charges

Présentation générale du projet

Le Thérémine (Theremin en anglais) est l'un des premiers instruments de musique électronique, inventé en 1919 par l'ingénieur russe Léon Theremin. C'est un instrument qui possède la particularité de fonctionner sans aucun contact physique de la part du musicien.

En effet, il est composé généralement de deux antennes.

  • Une antenne verticale (contrôlée par la main droite) qui va commander la hauteur (tonalité) de la note
  • Une antenne horizontale, utilisée pour faire varier le volume de la note

Le simple fait d’effectuer un mouvement plus ou moins des antennes va permettre de générer un son de fréquence et de volume variable.

Léon Theremin
Thérémine actuel de la marque Moog


Objectif du projet

L'objectif de ce projet est donc de développer et réaliser dans un premier temps notre propre Thérémine.

Puis dans un second temps, trouver un moyen de l'utiliser comme contrôleur (émuler une souris par exemple) une fois connecté à un système embarqué.

Une fois ces deux étapes réalisées et si le temps nous le permet, nous tenterons de mettre en réseau ce dispositif de contrôle (par le biais du système embarqué) afin de pouvoir contrôler n'importe quelle machine fonctionnant sous Linux.

Description du projet

Ce projet sera donc composé de deux grandes parties:

  • Une partie électronique où nous réaliserons un Thérémine analogique
  • une partie informatique qui va permettre le traitement des données analogiques obtenues, par le système embarqué. En plus de l'émulation d'une souris, il sera possible de reconfigurer les paramètres du Thérémine à partir de ce système

Choix techniques : matériel et logiciel

  • Pour la réalisation du Thérémine (la réalisation du PCB se fera sur Altium Designer)
    • Composants électroniques de base (résistances, condensateur, potentiomètre, portes logiques) (disponibles en salle C205) [POTENTIOMETRE LOG 10K 4A/250V AC SWITCH commandé chez Farnell au 18/2/2015, 1 fourni le 9/02/2015]
    • 6 boîtiers de six portes logiques inverseuses de type CD4069 exemple ou exemple ou exemple [20 commandés chez Farnell au 18/2/2015, 10 fournis le 9/02/2015]
    • Amplificateur audio LM386 exemple [référence différente trouvée en salle C205]
    • 2 antennes (ou tiges en cuivre ou métallique) (à demander au matériaux ou récupération, car pas de fournisseur trouvé...)
    • Haut-parleur 8 Ohms 1W exemple [ on en a en stock ]
    • Alimentation autonome (batterie 9V avec régulateur) exemple
    • Matériau pour la réalisation du boîtier contenant l'ensemble "Thérémine et arduino" (surement du plastique) [ soit bois soit plexiglas + découpe laser ]
  • Pour la partie émulation d'un dispositif de commande (Le programme sera codé en C)
    • Arduino (pour le traitement des données analogiques obtenues) [fourni le 4/2/2015 en E304]
    • Shield Ethernet (si avancement du projet rapide) [à commander]

Étapes du projet

  • Élaboration complète du cahier des charges
  • Étude bibliographique sur les différents Théremines déjà réalisés afin de comprendre le fonctionnement
  • Réalisation d'un prototype (sur plaque de test)
    • Conception du premier étage (Tonalité de la note)
    • Conception du second étage (Volume de la note)
  • Réalisation du Thérémine final
    • Création du PCB
    • Réalisation de la carte finale
    • Réalisation du boîtier
  • Utilisation des données analogiques fournies pour émuler un dispositif de commande
  • Mise en réseau du dispositif pour contrôler plusieurs machines (optionnel)

Planning prévisionnel

Planning Previsionnel.PNG
  • Suite à l'élaboration du cahier des charges (première semaine), le but est de concevoir rapidement un prototype (semaine 2 et 3) afin de valider son bon fonctionnement et avancer sur la seconde partie (partie informatique) qui nous semble plus compliquée à réaliser (environ 4 semaines).
  • Les deux dernières semaines de projet permettront de réaliser les tests finaux, de résoudre les problèmes possibles ainsi que la vidéo de présentation.

Avancement du Projet

Semaine 1 (21 janvier - 31 janvier)

  • Élaboration du cahier des charges après entretiens avec nos encadrants
  • Étude bibliographique sur les Thérémines déjà réalisés
  • Recherche et énumération des composants nécessaires pour la réalisation du prototype

Semaine 2 (2 février - 7 février)

  • Fonctionnement du Thérémine

Lorsqu'on alimente le Thérémine, on crée un champ électromagnétique autour des deux antennes. Ces antennes vont capter les variations d'ondes électromagnétiques qui sont créées par la main du joueur. Plus on approche la main de l'antenne verticale (antenne gérant la tonalité), on augmente la fréquence de la note. On aura donc une note aiguë. En ce qui concerne l'antenne horizontale (antenne gérant le volume de la note), le déplacement de la main près de l'antenne va diminuer le volume et le fait d'éloigner la main va l'augmenter.

Il existe actuellement plusieurs montages électroniques différents permettant de créer son propre Thérémine. Cependant, le schéma général de fonctionnement reste assez identique.

Schéma général de fonctionnement (détail des différentes fonctions)

Le principe de base (que ce soit pour la gestion de la tonalité ou du volume) est d'utiliser deux oscillateurs Haute Fréquence. Un oscillateur va générer une fréquence fixe (aussi appelée fréquence de référence) tandis que l'autre va générer une fréquence variable. Ces deux signaux (de l'ordre de plusieurs kHz) vont ensuite être implantés dans un mélangeur afin d'obtenir à la sortie de ce mélangeur, la somme de ces signaux ainsi que leur différence. L'oreille humaine ne pouvant distinguer que des sons compris entre 20 Hz et 20 kHz, un filtre (de type "passe-bas") doit être placé à la suite du mélangeur afin de ne garder que la différence des deux signaux. Selon les signaux choisis, la différence devrait être comprise dans la bande de fréquence audible par l'oreille humaine.

(Exemple)

Pour la gestion du volume, on retrouve à peu près le même principe. Seul le filtrage à la sortie du mélangeur sera différent. En effet, ce ne sera plus un filtre "passe-bas ", mais un convertisseur "fréquence-tension".

Enfin, les deux informations fournies par ces deux étages (tonalité et volume) sont ensuite multipliées puis amplifiées afin d'obtenir des signaux utilisables par le haut-parleur.

Semaine 3 (9 février - 14 février)

  • N'ayant pas tout le matériel et ne pouvant donc pas réaliser le prototype, nous avons commencé l'étude de la deuxième partie concernant le traitement des données analogiques par l'arduino.
  • Début de l'élaboration du schéma électrique du Thérémine possédant une seule antenne (volume non géré)


Semaine 4 (16 février - 21 février)

  • Schéma électrique du Thérémine finalisé
Fichier:Schématique Altium.PNG
Schéma électrique du Thérémine avec une seule antenne réalisé sous Altium Designer (détail des différentes fonctions)

Semaine 5 (23 février - 28 février)

  • Avancement du programme en Langage C permettant de récupérer les données analogiques d'un signal périodique.

Il est nécessaire de numériser avec l’Arduino le signal créé par le Thérémine afin de pouvoir traiter ce signal et émuler un dispositif de commande.

Nous avons, pour commencer, utilisé un générateur basse fréquence afin de simuler le signal que nous devrions obtenir avec le Thérémine.

Ce signal audio est un signal périodique. Ses véritables caractéristiques (plage de fréquence, amplitude…) seront déterminées ultérieurement, une fois le prototype conçu et les tests réalisés. Le signal ainsi crée est connecté sur l'entrée A0 de l'Arduino. Ensuite les échantillons seront stockés dans un tableau d'entiers. Ce tableau permet de stocker temporairement les différentes valeurs qui vont servir ensuite à la fonction réalisant le calcul de la fréquence.

Pour le calcul de la fréquence du signal, il faut repérer le maximum de la fonction et ensuite compter le nombre de points pour atteindre le second maximum. En multipliant le nombre de points obtenu par la durée entre deux échantillons on obtient alors la période du signal. La valeur de la fréquence (de type int) calculée doit être ensuite convertie en un caractère (de type char) pour ainsi être envoyée par la liaison série de l’Arduino vers le PC. Après cet envoi, le tableau d’entiers est ensuite réinitialisé pour permettre un nouveau calcul de la fréquence du signal entrant.

Après tests, il apparaît que notre fonction de calcul de la fréquence n'est pas opérationnelle...

Semaine 6 (9 mars - 14 mars)

  • Elaboration du circuit électrique sur plaque d'essai:

Schémas de câblage des composants
Amplificateur audio LM386
Portes inverseuses CD4069UBE

  • Début de la réalisation du PCB sur altium

Semaine 7 (16 mars - 21 mars)

  • Fin du câblage sur plaque d'essai

Après les tests, nous obtenons bien un son qui varie selon la distance entre la main et l'antenne (cette distance est encore faible). Le son obtenu initialement était bien trop faible même après avoir agit sur le potentiomètre de volume. Après plusieurs hypothèses et tests, il apparaît que l'étage permettant le filtrage basse fréquence ne donne pas un bon fonctionnement.

Montage sur plaque d'essai du prototype(avec une seule antenne (hauteur de la note)
Oscillogramme: Oscillateur de référence
Oscillogramme: Oscillateur variable







  • Fin d'élaboration du PCB sur Altium

Suite aux conseils de Monsieur Flamen certaines modifications sont nécessaires (optimisation des pistes, changement d'empreintes, plan de masse à insérer...)

Semaine 8 (23 mars - 28 mars)

Semaine 9 (30 mars - 4 avril)

Semaine 10 (6 avril - 11 avril)

Semaine 11 (13 avril - 18 avril)

Semaine 12 (20 avril - 25 avril)

Fichiers Rendus