IMA3/IMA4 2020/2022 P8

De Wiki de Projets IMA

Sommaire

Présentation générale

Contexte

L'informatique se pose de plus en plus comme un outil incontournable dans le monde. De nombreuses applications apparaissent afin de nous faciliter la vie, que ce soit dans le milieu universitaire ou de l'entreprise.

Par exemple, le logiciel Zoom a permis à de nombreux étudiants et professionnels de continuer à travailler à distance lors des différents confinements provoqués par la crise sanitaire.

Depuis 2020, nous avons pu nous rendre compte que l'utilisation de Zoom n'est pourtant pas si évident. Il est facile de se perdre entre les fenêtres de chat, de partage d'écran, de caméra, les boutons d'allumage/arrêt du micro, ou encore de la webcam.

Description

Pour palier à ces difficultés, nous avons décidé de développer un objet connecté permettant d'accéder facilement à différentes actions importantes de Zoom (micro, caméra, volume...).

Néanmoins, entre les feuilles de notes, la souris et le clavier, il semble difficile d'ajouter un objet supplémentaire à utiliser avec les mains. C'est pourquoi notre objet connecté a pour vocation d'être utilisable par les pieds, nous appellerons cette objet : Pédalier.

Celui-ci sera composé de différents capteurs.

Fonctionnalités et Solutions adoptées

  • Push-to-Talk : Pédale permettant de détecter une pression du pied.
  • Allumage/Extinction continu du micro : Interrupteur pouvant être ouvert ou fermé par un simple mouvement du pied.
    La pédale push-to-talk allumera le micro si l’interrupteur est sur OFF, et l’éteindra si ce dernier est sur ON.
  • Défilement (~ scroll de souris) : Joystick permettant des mouvements/passages de documents de haut en bas, et de droite à gauche.
  • Réglage du volume : Potentiomètre.

Afin de réaliser le traitement des données collectées par les capteurs utilisés, nous utiliserons une carte de type Arduino.

Réalisation du Projet

Projet S6

Compte-Rendu Projet S6

Projet S7

Semaine 41

Lors de cette séance, nous avons :

  • Fait un état d'avancement de notre projet.
  • Fait un point avec notre tuteur sur le travail restant et les échéances à venir.
  • Effectué un Diagramme de Gantt pour répartir dans le temps le travail qu'il nous reste à faire. Diagramme de Gantt
Diagramme de Gantt - S41


Semaine 42

Afin d'anticiper les délais de commande de composants, nous nous sommes tout d'abord concentrés sur la réalisation du bon de commande nécessaire à la réalisation du projet.

Microcontrôleur

La priorité était de trouver des microcontrôleurs Avr32u4, en accord avec les conseils donnés par notre tuteur la semaine précédente.

Ce composant n'était plus en stock chez les distributeurs parmi lesquels nous pouvons commander (Farnell, Mouser et Radiospare). Nous en avons néanmoins trouvé sur le site de Digikey.

N'étant pas sûr qu'il y en aura encore en stock quand la commande sera passée, nous allons également recommander des Arduino Leonardo comme solution de repli.

Dans les deux cas nous en commandons 4 afin d'avoir de la marge de manœuvre si nous cassons un composant lors de nos manipulations.

Ainsi, si nous pouvons recevoir les 32u4, nous réaliserons le PCB intégralement, sinon, nous effectuerons un shield de la Leonardo sur le PCB.

Capteurs & Pédales

Dans un second temps, nous avons effectué de nouvelles recherches d'interrupteurs, boutons poussoirs et pédales adaptées à la réalisation du prototype final.

En effet, les éléments commandés lors du semestre précédent servaient davantage à faire des essais à petite échelle.

Ces recherches sont à compléter lors de la semaine à venir.

Composants électroniques

A partir d'un exemple de PCB de manette de jeu, et de son schéma électronique, nous avons pu trouver des références de résistances, capacités, inductances ou encore leds bien dimensionnées à notre projet.

Il nous reste à estimer le nombre de chaque composant à commander afin d'émettre le bon de commande.


Semaine 43

Finalisation du bon de commande

La priorité cette semaine était d'estimer les quantités de composants électroniques à commander (résistances et leds).

Le PCB n'étant pas encore réalisé, nous avons manqué d'informations concernant les capacités et inductances dont nous allons avoir besoin. Nous ne les avons donc pas indiqué sur ce bon de commande. Nous verrons à un stade intermédiaire du projet pour en effectuer une nouvelle via l'école si possible, ou sinon par nous-même.

De même, nous n'avons pas commandé de nouveaux capteurs. Ceux que nous avons récupéré au Semestre 6 sont suffisants pour effectuer des tests et faire fonctionner notre projet à la main.

A terme, l'objectif est que notre objet connecté soit utilisable au pied, mais cela relèvera davantage de la mécanique. Ce n'est donc pas notre priorité, nous nous y pencherons une fois la finalisation électronique/informatique de notre pédalier.

Voici le lien vers notre bon de commande : Bon de commande

Initiation à la réalisation de PCB

Comme nous avons finalisé le bon de commande assez rapidement, nous avons pris de l'avance sur les prochaines séances de projets.

A partir de la semaine 45, nous devons nous pencher sur la réalisation d'un PCB.

Nous avons trouvé un logiciel gratuit, utilisable de façon collaborative : EasyEDA.

Afin d'en comprendre le fonctionnement, nous avons trouvé divers tutoriels.


Semaine 45

Conception du PCB

A l'aide de d'exemples de PCB présentant des fonctionnalités similaires aux besoins de notre projet, nous avons commencé à réaliser le notre.

Il nous a tout d'abord fallu trouver les bons composants dans les bibliothèques d'Easy EDA. De nombreux composants presque identiques étant disponibles, nous avons fait attention à bien sélectionner ceux correspondant à la commande que nous avons émise quelques semaines plus tôt.

A l'aide de la datasheet de l'Atmega 32u4 que nous utilisons, nous avons effectué les premiers câblages de capacités de découplage, masse, alimentation...

Nous avons également ajouté des tunnels qui nous permettront par la suite de relier les pins de notre microcontrôleur aux différentes fonctions électroniques de notre montage.

Le choix des pins sera peut-être à revoir par la suite, afin d'assurer une impression plus facile du PCB.

Câblage Avr32u4

Ecriture du programme

Recherches sur le programme, notamment les différentes possibilités pour modifier le son de l'ordinateur via un potentiomètre. Afin de récupérer les données de volume, un programme sur le PC est indispensable.

On décide donc de faire notre driver, ce choix nous permettrait également de ne plus considérer l'USB directement comme un clavier, mais gérer les entrées via le driver. Il permet également de changer de langage de programmation, par exemple le python, et de simplifier le code et sa portabilité sur les différents systèmes d'exploitation.


Semaine 46

Conception du PCB

Suite à notre premier cours sur la réalisation PCB, nous avons réalisé un schéma fonctionnel.

Celui-ci permet de mieux visualiser les éléments nécessaires à sa réalisation au travers des fonctions principales le constituant.

Nous l'avons communiqué à notre enseignant, afin qu'il puisse le vérifier et nous aider dans la suite de réalisation de notre PCB.

Schéma fonctionnel


En parallèle, nous avons continué d'avancer sur la schématisation du PCB avec Easy EDA.

Nous avons notamment réalisé les schémas électrique du joystick et du bouton poussoir, qui sont présentés ci-dessous.

Une fonction led a également été ajoutée. Ces leds serviront à vérifier le fonctionnement de notre PCB une fois qu'il sera imprimé (une led allumée lorsqu'il est alimenté, une autre lorsque le bouton est appuyé, etc...)

Schéma électrique joystick
Schéma électrique bouton

Ecriture du programme

Suite des recherches sur la façon de faire notre programme.


Semaine 47

Conception du PCB

Suite des recherches sur le PCB, réalisation d'un schéma pour aider à la réalisation. Néanmoins des difficultés se font ressentir sur la compréhension de la transmission des données et l'alimentation du PCB.

Ecriture du programme

Création du GitLab du projet et début de la rédaction du programme afin de gérer les différents modules, notamment le potentiomètre pour régler le son.

Schéma du Pédalier

Schéma du pédalier sur Google Drawings afin d'avoir un plan avant de commencer la conception 3D, mais certains détails sont encore sujets au changement.


Compte-Rendu Projet S7

Compte-Rendu Projet S7


Projet S8

Semaine 03

En amont de cette séance, nous avons fait un point sur l'état d'avancement de notre projet ainsi que sur la répartition des tâches.

Comme discuté avec les enseignants lors de la soutenance de projet du Semestre 7, nous avons fait en sorte de travailler en parallèle sur davantage de tâches.

A partir de cela, nous avons établi un nouveau diagramme de Gantt s'articulant autour de la réalisation d'interfaces numérique et physique, en continuité avec le travail du semestre précédent.

Diagramme de Gantt - S03

Nous avons ensuite pu reprendre en main notre travail (notamment la partie code et le PCB) pour réfléchir aux changements et améliorations qui avaient été évoqués lors de la soutenance.

Interface numérique

Afin d'implémenter l'interface, nous avons dû effectuer des recherches sur différents frameworks et leur prise en main.

Nous avons utilisé PyGame TKinter afin de tester le framework QT.

De plus, des premiers schémas de l'interface numérique ont été réalisés afin de guider la conception.

Schéma interface numérique
Schéma interface numérique - Potentiomètre

PCB

Concernant le PCB, nous avons principalement pris le temps d'effectuer des corrections, d'ajouter des capacités de liaisons et autres éléments qui faisaient défaut au modèle présenté lors de la soutenance.

Conception boîtier

Afin de pouvoir réaliser l'interface mécanique, nous avons tout d'abord pris le temps de réfléchir à son design, de façon réaliste.

Nous avions déjà fait une ébauche lors du semestre précédent, mais nous nous sommes rendus compte qu'en terme de dimensionnement, des éléments ne fonctionneraient pas bien pour une utilisation au pied. Un nouveau schéma a alors été défini :

1er Schéma du boîtier

Semaine 04

Interface numérique

Nous avons continué de tester QT, ainsi que d'autres frameworks.

Plusieurs d'entre eux étaient plus simples d'utilisation que QT, mais ce dernier s'utilisait d'une façon similaire à ce que l'on étudie en Java lors des cours de Conception Logicielle à Objet.

Finalement, nous avons donc décidé d'utiliser ce framework pour la réalisation de notre interface numérique.

PCB

Un point avec le tuteur a été fait afin de décider de la direction que nous allions prendre pour continuer notre PCB.

L'impossibilité de recevoir les micro-contrôleurs dont nous avions besoin pour notre format de PCB nous a poussé à revoir sa construction.

Nous nous sommes dirigés vers la réalisation d'un shield avec une Arduino Leonardo que nous avions déjà utilisé précédemment pour nos tests.

Cela nous permet d'utiliser le micro-contrôleur de la carte, qui est le même que ceux que nous devions recevoir.

Conception boîtier

Pour continuer sur le design de l'interface mécanique, il a fallu réfléchir au dimensionnement des capteurs.

En effet, nos capteurs sont de petite taille. Il nous a fallu réfléchir à la taille adaptée pour une utilisation au pied.

A partir de là, nous avons pu réfléchir à un moyen " d'agrandir " artificiellement nos capteurs par de la mécanique simple.

Notamment pour remplacer la boule d'arcade du joystick et de d'allonger la course du potentiomètre à l'aide d'un système d'engrenage.

Bon de commande

Nous avons effectué un nouveau Bon de commande, afin d'obtenir des connecteurs qui seront nécessaires à la réalisation de notre shield.

Nous avons également commandé des leds traversantes. Le reste du matériel de microélectronique peut être obtenu à l'école.

Bon de commande S8


Semaine 05

Interface numérique

Nous avons pris en main QT, sans logiciel annexe.

Pour être à l'aise avec cet outil, nous avons effectué des bases d'interface de test.

PCB

Nous avons débuté la réalisation du shield.

La principale difficulté est de prévoir les emplacements des connecteurs et surtout le type de connecteur. Après un point avec M. Vantroys, nous avions mal compris ce qu'il fallait faire.

Le shield ne sera pas sur une Arduino Leonardo mais sur une carte Arduino Uno, nous avons alors mis a jour les pins et mis a jour le dimensionnement physique.

Le schéma électrique du shield a alors été réalisé.

Schéma électrique du Shield

On remarque un schéma très basique contenant que des résistances. La difficulté sera sur le routage de cette carte car cela est une découverte pour nous. Nous avons ensuite parlé avec notre tuteur et nous avons commencé l'étape routage.

Voici le premier essai de routage :

Routage - Premier essai

Formations au Fabricarium

Afin de pouvoir réaliser les éléments de mécaniques nécessaires à la réalisation finale du pédalier, il est nécessaire d'avoir des formations sur les machines disponibles au Fabricarium.

Une partie du groupe a effectué la formation découpe laser puis la formation de la fraiseuse numérique.


Semaine 06

Interface numérique

L'outil QT étant pris en main, nous avons modélisé l'interface graphique nécessaire pour notre projet.

Nous avons fait un WireFrame en utilisant diagrams.net pour visualiser l'objet.

PCB

Concernant le PCB, le schéma à été validé avec le tuteur pour le Shield.

En plus de ces cartes, il nous a été conseillé de réaliser d'autres cartes servant de 'HUB' permettant d'éviter les câbles suspendus et donc de sortir les câbles sur les capteurs proches.

Ces cartes ont été réalisées mais nous n'étions pas certains du fonctionnement du connecteur He10 que nous voulions au préalable vérifier (montage série).

Voici le schéma d'un HUB pour les interrupteur et la pédale:

Schéma électrique du HUB

Voici le schéma d'un HUB pour les LEDs:

Schéma électrique du HUB 'Leds'

Voici le schéma d'un HUB pour le Joystick analogique:

Schéma électrique du HUB 'Joystick'

Après essais, nous sommes rentrés en contact avec M. Flamen pour prévoir l'étape impression de ceux-ci.

N'ayant pas Altium, nous avons utilisé Easy EDA comme designer, le logiciel que nous utilisions déjà les semestres passés, mais que ne connaissait pas vraiment M. Flamen.

Nous avons tout de même progressé et retravaillé le shield. Nous avons aussi décider de changer les résistances traversantes choisies par des résistances CMS 12*6 afin de faciliter la visibilité du circuit et ainsi éviter les passage sur l'autre face.

Formations au Fabricarium

Une formation pour utiliser l'imprimante 3D était prévue, mais a été reportée. Nous avons donc profité de ce temps pour effectuer des tests avec la découpe laser, afin de la prendre en main.

Nous avons également réalisé un prototypes en carton du boîtier afin de visualiser la forme et les dimensions.


Semaine 08

Interface numérique

Nous avons découvert l'existence d'un IDE créé spécialement pour la mise en place d'interfaces graphiques utilisant le framework Qt : QtCreator.

Nous avons donc décidé de le prendre en main afin de mieux visualiser l'interface et être capable de l'implémenter plus rapidement.

PCB

Une fois le PCB terminé, nous avons fait un point avec notre tuteur avant de rencontrer M. Flamen, avec lequel nous avons remarqué que les pistes de résistances étaient trop proches et trop fine.

En effet, les pistes utilisées étaient trop fine, bien qu'elles étaient dans les marges de faisabilité de la machine.

Après avoir vu le rendu et avoir raté plusieurs tentatives de soudure sur une carte d'essai, nous avons changé les pistes et surtout leur espacement.

Nous avons donc essayé d'optimiser un maximum la disposition des composants avant de retourner auprès de M. Flamen pour des tentatives d'impression.

En travaillant sur un design plus 'propre', nous avons fait un autre point avec notre tuteur et avons décidé de passer la carte sur une carte Micro Arduino, ce qui change les dimensions.

Nous avons donc mis a jour le routage sur le temps restant.

Formations Fabricarium et Modélisation

La formation imprimante 3D a finalement pu être effectuée.

Après la prise de mesure des éléments, la première modélisation de l'extension du joystick a été réalisée après découverte de l'outil de conception Onshape.

Il a été choisi de réaliser un joystick plat afin de faciliter l'utilisation au pied, une incurvation est prévue afin de permettre au pied de ne pas glisser lors de l'utilisation.

Il a pu alors être imprimé en 3D par la suite.

Modélisation 3D de l'extension du joystick


Semaine 09

Interface numérique

N'ayant pas compris le fonctionnement de QtCreator, nous avons décidé de revenir au framework initial sans logiciel tiers dans le courant de la semaine.

Nous avons donc créé les différentes interfaces nécessaires sans mise en forme, à l'exception de l'une d'entre elles qui nous a posé problème.

Cette dernière nécessitait de placer des widgets (des objets tels que des boutons ou des zones de texte par exemple) à l'intérieur d'un autre (QWidget, la classe générique).

PCB

Nous avons rencontré Mr Flamen qui m'a fait une initiation a la conception électronique en voyant une incohérence dans notre schéma.

En effet, sur un PCB les pistes ne peuvent pas être du même coté que les connecteurs, j'ai donc au début passé les pistes sur la face "Bottom" mais vous avons remarqué que le Shield ne correspondrait alors plus aux pins choisis.

Nous avons alors retourné les headers ce qui implique alors un aspect "miroir" qui a croisé l'ensemble des routages. Les démonstrations de M. Flamen ont été très formatrices.

Nous avons appris que la machine ne permet pas la réalisation de trous métallique, ce qui s'avère être bloquant pour notre shield double face.

Des trous plus larges pour les connecteurs ont alors été prévus afin d'y passer un brin de fil conducteurs que nous souderons sur chaque pastilles Bottom et Top.

Nous avons aussi remarqué une erreur qui est maintenant corrigée. En effet, le joystick que nous avions initialement était un petit joystick de manette analogique. Or notre tuteur nous a fourni un nouveau Joystick d'arcade qui correspondait a nos attentes mécanique (plus résistant et plus grand), et surtout ce joystick est numérique !

Il a alors fallu alors changer les 2 pistes analogique en 4 numériques. Nous avons aussi déplacé l'interrupteur de la broche 10 à la broche 3 afin d'équilibrer le nombres de composants sur la carte puis nous mettons a jour le routage sur le modèle final qui est :

Schéma électrique du Shield


Le changement de broche sera alors réalisé aussi sur les HUB tel que :

Schéma électrique du HUB
Schéma électrique du HUB 'Joystick'

Nous avons ensuite pu refaire une tentative d'impression auprès de M. Flamen qui puisse prendre en compte l'ensemble des capteurs du joystick.

Modélisation

Après impression de la première version, les bords du joystick nous ont semblé trop épais, et la tige trop courte.

Des modifications ont donc été apportées et après impression du nouveau modèle il a pu être vissée sur le joystick.

Modélisation 3D de l'extension du joystick

Des essais de dimensionnements pour l'allongement de la course du potentiomètre sont également réalisés.


Semaine 10

Interface numérique

Nous avons rencontré quelques soucis notamment pour l'interface du potentiomètre, pour définir la couleur de fond du widget parent et non pas celle de chaque widget à l'intérieur de celui-ci.

Cependant nous avons tout de même terminé l'implémentation et la mise en forme de chaque interface nécessaire à l'utilisateur pour personnaliser son pédalier.

Fenêtre de réglage du potentiomètre en cours de construction

Nous avons également créé un fichier de configuration qui enregistrera comme son nom l'indique la configuration du pédalier.

L'objectif est de le modifier lorsque l'utilisateur souhaite associer d'autres actions aux capteurs.

PCB

Suite à des discussions avec différents camarades et professeurs sur l'aspect double face que nous avions du mal à appréhender, nous avons cru observé une erreur sur le connecteur qui est en Bottom au lieu du Top.

L'effet " miroir " de lorsque l'on retourne un composant s'appliquant, les liaisons n'étaient plus en face des headers.

Nous avons donc refait le routage du Shield sur une seconde version, mais aussi celui des autres cartes car nous avons dû changer de sens de la gaine He10 ce qui implique de mettre à jour pour récupérer toujours le bon pin.

Nous avons fait un point tuteur qui confirme nos tracés, la carte Shield est toujours en attente d'impression et les autres cartes ne peuvent pas être soumises à la plateforme EEI car une demande est déjà encours.

En attendant, M. Flamen a dispensé une initiation a la soudure et à la manipulation technique.

Après avoir montré mes 2 versions de montages a M. Flamen, celui-ci a conseillé de garder la première version.

En effet, la seconde pourrait fonctionner mais impliquerait la présence de trous métalliques sur l'ensemble des headers ce qui complexifierait la soudure.

PCB 'miroir'

Modélisation

L'allongement de la course du potentiomètre a été abandonnée car cela risquait de ne pas être assez solide pour résister à une utilisation au pied.

De plus, on pourrait alors rencontrer des problèmes avec la hauteur du boîtier qui serait trop courte.

A la place un module a été modélisé sur Onshape puis imprimé à l'imprimante 3D pour se plugger sur le potentiomètre et rendre son utilisation plus facile.

Potentiomètre avec son extension finie


Les plans de la structure en bois ont également été commencés sur Inkscape, pour réaliser la forme générale aux bonnes dimensions.

De plus, les premiers test des morceaux de découpe de la structure en bois sont réalisés avec la découpeuse laser.


Semaine 11 jusqu'à la soutenance

Interface numérique

A ce stade, la partie visuelle de l'interface graphique est terminée, cependant ce ne sont que des fenêtres creuses. Il faut donc associer chaque bouton à son action.

- Les boutons de l'interface principale ouvrent les fenêtres de chaque capteur.

- Les boutons des interfaces de chaque capteur associent une action au capteur correspondant.

Lors des tests effectués, nous avons remarqué que nous ne pouvions pas séparer chaque interface dans un fichier et exécuter le fichier lorsque cela nous arrange car nous ne pouvons pas passer d'arguments de cette manière.

Nous avons donc dû importer chaque classe (= interface) dans le fichier d'interface principal et instancier ces classes lorsque cela était nécessaire.

Ensuite nous avons pu implémenter les boutons tels qu'ils modifient le fichier de configuration lors d'un appui sur l'un d'eux.

Enfin, nous avons dû créer des threads pour permettre aux fenêtres de s'ouvrir en parallèle du reste du programme.

Interface principale terminée

PCB

Nous avons utilisé la méthode précédemment expliquée pour réaliser la brasure du connecteur avec un brin métallique.

Nous nous sommes ensuite concentré sur la soudure des composants (14 résistances) et la carte sur le shield, avec la pâte à braser.

Lors d'une brasure, nous avons eu un incident avec la carte, nous mis trop d'étain et réalisé un pont.

En voulant utiliser une tresse pour dessouder, nous avons enlevé la piste en plus de l'étain.

Avec l'aide de Mr Flamen nous avons réussi à corriger cette erreur et éviter une nouvelle impression de carte.

L'une des 2 pistes coupées a pu être reposée et soudée sur le support grâce aux très fines soudure effectuée par M. Flamen.

L'autre piste à été remplacée par un fil car le ressouder était impossible a réaliser à la main sans faire de court-circuits.

Suite à divers essais, des soudures ont dû être rattrapées et toutes les liaisons étaient fonctionnelles à la fin.

Routage du PC final

Réalisation du boîtier

Après les dernières finalisations du fichier, la structure en bois a été entièrement découpée et gravée à l'aide de la découpeuse laser du Fabricarium.

Elle a ensuite pu être assemblée, et les composants placés.

La planche arrière devait initialement pouvoir être facilement enlevée et retirée par le biais d'un mécanisme. Cependant celui-ci rendait le tout assez peu stable.

L'arrière a donc été collé et pour pouvoir toujours accéder facilement à l'intérieur tout en gardant la solidité, une charnière a été ajoutée entre le panneau du haut et le panel.

Les différents éléments ont été disposés de telle sorte à ce qu'ils puissent être facilement retirés en cas de besoin de test, tout en restant bien fixe lorsqu'ils sont dans la structure.

Boîtier final

État du projet avant soutenance

- Boîtier réalisé et utilisable

- Extensions de capteurs terminées

- PCB du shield imprimé et soudé

- Cartes annexes (joystick, leds...) non-imprimée

- Interface utilisateur pour utiliser le pédalier effectuée

- Programme fonctionnel avec Arduino Micro ou Leonardo


N'ayant pas pu imprimer toutes les cartes, certains fils sont volants et provoquent des faux contacts.

Nous n'avons à cause de cela par réussi à faire fonctionner notre prototype final.


Compte-rendu projet S8

Compte-Rendu Projet S8