2015 Accordeur de guitare automatique Epreuve de Soutenance de projet Session 2015 Delaunay Sylvain Brianceau Maud Nivelais Quentin
Présentation commune Pour notre projet de terminal S, Sciences de l'ingénieur nous avons choisi de créer un accordeur de guitare semi-automatique. Pour accorder une guitare, le musicien doit agir sur les clés, soit à l'oreille soit à l'aide d'un accordeur. Ainsi nous voulons créer un dispositif à placer sur une clé, pour lui faciliter la tâche. Celui-ci accorde automatiquement la corde que le guitariste a choisie, selon la note qu il a sélectionnée sur notre dispositif. - Cahier des charges : L accordeur de guitare permettra de : De choisir la note voulue sur la corde souhaitée Trouver la fréquence de la note enregistré lorsque le guitariste fait vibrer la corde Déterminer si la fréquence de la note enregistrée est plus ou moins aigue que la note voulue Faire tourner la clé jusqu'à la note voulue - Diagramme / Répartition des taches Maud Sylvain Quentin Choix du moteur Choix du microphone Choix du microprocesseur Modélisation des pièces Test des microphones Programmation Création de l'embout adaptable sur la clef Gestion de la fréquence dans le programme Calcul du couple Le moteur dans le programme Analyse des spectres Le moteur dans le programme Masse linéaire
Organigramme
Au cours de ce projet, je me suis donc chargé de la partie programmation, que ce soit au niveau de la sélection de la carte micro programmable, jusqu'à code pur. J avais dû arrêter la programmation au travers de la Simulation assez rapidement, le programme au travers de proteus ne reconnaissait pas le micro, je n ai donc put faire que le «menu» permettant de sélectionner la note que l on souhaite pour l accordage. <Immage du menu sous proteus> Voici une image de la programmation (j ai remplacé tout le code à l intérieur des conditions, par des mots qui sont plus explicites sur les actions réalisées) Nous utilisons la variable «Etape» pour les différentes étapes du menu, pour l affichage des différentes notes, j ai utilisé la variable «Note». Je suis donc passé relativement vite au choix des composants, j ai regardé avec Sylvain, a l issue de la simulation, le nombre d'entrées et de sorties dont nous allons avoir besoin. Notre programme ne demandant pas beaucoup de puissance, la puissance de la carte n'était pas à prendre en compte. Nous sommes donc partis sur une arduino mega au début, car notre premier lcd utilisait 6 ports digitaux, et nous n avons pas assez de place sur une arduino uno, pour placer le moteur, les boutons, et l'entrée analogique. Après nous avons commandé un lcd utilisant un port I2C, pour pouvoir repasser sur une arduino uno, et essayer de minimiser la place prise par le système.
Nous avions donc besoin d une arduino uno, d une carte motor shield (pour la gestion du moteur, pouvoir modifier sa vitesse de rotation et l arrêter comme nous le souhaitons) et d un module groove, pour faciliter la connection des 3 boutons et du lcd. Ayant tout le matériel nécessaire, j ai commencé à faire les premiers tests sur arduino, du menu tout simplement, celui-ci marchait, mais tout le programme autour lui ne marchait pas, j ai donc décidé de tout recommencer, de repartir à 0, pour avoir l esprit clair sur les variables, les entrée etc. que j allais utiliser. J ai commencé par reprogrammer le menu, pour tester l affichage sur un lcd I2C Voici les différentes étapes du menu, la sélection de la note, la confirmation, puis la validation (si nous restons appuyés 2sec sur le bouton de validation, l écran de confirmation apparait dès l appui sur le bouton de validation) Ensuite j ai aidé Maud a la programmation du moteur, elle s est occuper de faire une sorte de programme à vide, avec les fonctions servant à le faire tourner dans un sens, dans l autre, de l'arrêter, et enfin de modifier sa vitesse. J ai donc juste repris sa programmation, et je l ai ajouté dans le programme principal, avec les conditions qui vont avec. Pour débuter les test,pour faire tourner le moteur, nous avons essayé le programme à vide seul, qui marchait bien, puis nous l avons pris dans le gros programme, ne m étant pas encore occupé de la détection de
fréquence, nous le faisant tourner par simple appuis sur un bouton, pour changer la vitesse on appuyait sur un autre bouton, et pour changer de sens sur le dernier bouton. Ce programme marchait très bien Le menu et le moteur était donc opérationnels, je me suis donc renseigné sur la partie du programme qui me permettrait de détecter la fréquence, après quelque recherches sur internet, je me suis aperçu que c était vraiment très compliqué, car utilisant un simple micro, il aurait fallu isoler le son de la guitare, par rapport aux autres sons et bruits ambiants, pour ensuite calculer sa fréquence, j ai donc trouvé quelques bouts de code sur internet, et je me suis penché dessus, pour premièrement comprendre leurs fonctionnement, les adapter à notre système et enfin les assembler. La compréhension des bouts de programme était vraiment essentielle, pour pouvoir changer les ports utilisés (certain ports était utilisés pour le moteur, d autre pour les boutons ) Ayant eu des problèmes avec le micro, nous avons fait tout nos tests de moteur à l aide d un générateur basse fréquence, qui simulait les fréquences que le micro pouvait nous donner, le programme marchait très bien dans ces circonstances. Ici une photo d un test par rapport à la détection de fréquence, qui nous montre que celle-ci fonctionne bien.