IMA3/IMA4 2020/2022 P8 : Différence entre versions
(→PCB) |
(→PCB) |
||
Ligne 342 : | Ligne 342 : | ||
PCB final: | PCB final: | ||
− | [[Fichier: | + | [[Fichier:shieldfinal.jpg]] |
====Design interface==== | ====Design interface==== |
Version du 6 mai 2022 à 18:21
Sommaire
- 1 Présentation générale
- 2 Réalisation du Projet
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
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
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.
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.
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...)
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.
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.
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.
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.
Design interface
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 :
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.
Design interface
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.
Semaine 05
Interface numérique
Nous avons pris en main QT, sans logiciel annexe.
Pour être à l'aise avec ce 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. Apres un point avec Mr Vantroy, nous avions mal compris, le shield ne sera pas sur une arduino léonardo mais sur une carte arduino classique, nous avons alors mis a jour les pins et mis a jour le dimensionnement physique. Seuls le schéma electrique du shield a été réalisé, puis apres avoir parlé avec notre tuteur, nous avons commencé l'étape routage.
Voici le premier essai de routage: Fichier:Premieressai.jpg
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 était conseillé de réaliser d'autres cartes servant de 'HUB' permettant d'éviter les cables suspendus et donc de sortir les cables sur les capteurs proches. Ces cartes ont été réalisé mais nous n'étions pas certains du fonctionnement du connecteur He10 que nous voulions au préalable vérifier (montage série).
Après essais, nous avons alors essayé de rentrer en contact avec Mr.Flamen pour prévoir l'étape impression de ceux-ci. N'ayant pas altium, j'ai utilisé EASY EDA comme designer, un logiciel de conception que ni moi, ni Mr.Flamen n'était habitué a utiliser... Mais nous avons tout de même progressé et retravaillé le shield. Nous avons aussi décider de changer les résistances traversantes choisit par des résistances CMS 12*6 afin de faciliter 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. Egalement de réaliser un prototypes en carton du boitier 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. Nous avons donc décidé de prendre en main QtCreator (l'IDE) afin de mieux visualiser l'interface et être capable de l'implémenter plus rapidement.
PCB
Une fois le PCB terminé, nous avions fait un point avec notre tuteur avant de rencontrer Mr.FLamen et nous avions fait la remarque que mes pistes de résistances étaient proches. En effet, les pistes utilisées étaient trop fine et même si elles étaient dans les marges de faisabilité de la machine, Mr.Flamen m'a montré le rendu. Apres avois vu le rendu et avoir raté chaque tentative de soudure sur une carte d'essai, nous avons changé les pistes et surtout l'espacement des pistes. j'ai donc essayé un maximum d'optimiser la disposition des composants puis je suis retourné a la rencontre de MR Flamen une fois ceci réglé mais celui-ci devait partir.
En travaillant sur un design plus 'propre', nous avions fait un autre point avec notre tuteur et avions décidé de passer la carte sur une carte Micro Arduino ce qui change les dimensions. J'ai donc refait le routage sur le temps restant.
Formations Fabricarium
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é à la suite par une imprimante.
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
J'ai rencontré Mr Flamen qui m'a fait une initiation a la conception électronique en voyant une incohérence dans le 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" et qui a croiser l'ensemble des routage. Les démonstrations de Mr Flamen ont été très formatrices. Nous avons découvert que la machine ne permets pas la réalisation de trous métallique ce qui nous bloque dans notre shield double face, nous avons donc prévu des trou plus large pour le connecteurs afin d'y passer un brin de fil conducteurs que nous souderons sur chaque pastiques Bottom et Top.
Nous avons aussi remarqué une grande erreur qui est corrigé. En effet, le joystick que nous avions initialement était un petit joystick de manette analogique. Or, Mr.Vantroy 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 nous faut alors changer les 2 pistes analogique en 4 numériques.
J'ai alors terminé ces schéma chez moi afin de pouvoir refaire une tentative d'impression au près de Mr.Flamen qui puisse prendre en compte l'ensemble des capteurs du joystick.
Modélisation mécanique
Après impression de la première version, les bords du joystick sont apparus trop épais, et la tige trop courte. Des modifications ont donc été apportée et après impression du nouveau modèle il a pu être vissée sur le 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, notamment 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.
PCB
Au courant de la semaine, j'avais discuté avec différents camarades et professeurs sur l'aspect double face qui nous était difficile a visualiser. J'ai cru voir une erreur sur le connecteur qui est en Bottom au lieu du Top alors j'ai copié mon travail sur une autre version du fichier. L'effet "miroir" de lorsque l'ont retourne un composant s'appliquant, les liaisons étaient plus en face des headers j'ai donc refait le routage du Shield, mais aussi des autres cartes car je change de sens de la gaine He10 ce qui implique alors de mettre a jour pour récupérer toujours la bonne pin.
Nous avons fait un point tuteur qui confirme nos tracés, la carte Shield est tjrs en attente d'impression et les autres cartes ne peuvent pas être soumises à la plateforme EEI car j'ai déjà une demande en cours.
J'ai cependant rejoins Mr.Flamen pour une initiation a la soudure et de manipulation techniques. Après avoir montré mes 2 versions de montages a Mr Flamen, celui-ci m'as conseillé de garder la première version. En effet, la 2 pouvais fonctionner, mais cela impliquera alors la présence de trou métallique sur l'ensemble des headers ce qui complexifierai la soudure.
Fichier:Shieldmirroir.jpg
Version "mirroir"
Design interface
L'allongement de la course du potentiomètre a été abandonné car cela risque de ne pas être assez solide pour résister à une utilisation au pied, de plus on pourrait alors rencontrer des problèmes avec le hauteur du boîtier qui serait trop courte.
Semaine 11
Interface numérique
Finalisation de l'aspect des interfaces et assignation des actions aux boutons de l'interface.
Création d'un fichier de configuration & implémentation du code permettant de le modifier au gré de l'utilisateur
PCB
J'ai passé la journée dans l'atelier a souder les différents composants entre eux. J'ai en priorité utilisé la méthode précédemment expliquée pour réaliser la brasure du connecteur avec un brin métallique. Puis j'ai utilisé la pate a braser afin de souder les différents composants (résistances x 14) ainsi que la carte elle même sur le Shield.
J'ai eu un incident sur la carte, lors d'une brasure, j'ai mis trop d'étain et réalisé un pont. J'ai donc sortie une tresse pour dessouder mais n'ayant pas assez chauffé celle-ci, je me suis vu non seulement enlever l'étain, mais aussi la piste...
J'ai alors tenté de rattraper mais sans succès. Avec l'aide de Mr Flamen nous avons réussit a corriger cette erreur et éviter une nouvelle impression de carte. L'un des 2 pistes coupé a pu être reposé et soudé sur le support grâce aux très fines soudure de Mr Flamen. L'autre piste à été remplacé par un fil car le resouder était impossible a réaliser à la main sans faire de court circuits.
J'ai réalisé des essais, des soudures ont du être rattrapés mais toutes les liaisons étaient fonctionnelles a la fin.
PCB final: Fichier:Shieldfinal.jpg