IMA3/IMA4 2020/2022 P8

De Wiki de Projets IMA
Révision datée du 6 mai 2022 à 16:47 par Adufour (discussion | contributions) (Formations Fabricarium)

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.


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 framework et leur prise en main.

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

De plus, des premiers schéma de l'interface numérique ont été réalisé 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.

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.

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.

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 et fraiseuse numérique.


Semaine 06

Interface numérique

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

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

PCB

Concernant le PCB, nous avons continué dans la réalisation du shield.

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 commencé à mettre en place l'interface.

PCB

Une fois le PCB terminé, nous sommes passés à son routage ainsi qu'au dimensionnement physique.

Nous avons pu bénéficier de correction de la part des enseignants encadrants.

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 pu alors être imprimé à la suite par une imprimante.

Modélisation 3D de l'extension du joystick

Semaine 09

Interface numérique

Nous avons poursuivi la réalisation de l'interface, mais nous avons rencontré des difficultés dans l'utilisation de QT.

En effet, nous n'arrivons pas à bien gérer la création de plusieurs fenêtres. Nous effectuons donc des recherches sur le sujet.

PCB

En parallèle des corrections qu'il faut continuer d'apporter, nous avons commencé la réalisation d'un autre PCB.

Celui-ci servira uniquement au placement des leds. Étant assez simple, il devrait nous permettre d'effectuer une première tentative d'impression.

Modélisation mécanique

Afin de réaliser nos éléments de mécaniques, nous avons essayé d'utiliser un nouveau logiciel plus complet, Onshape.

Nous avons pris le temps de le tester afin de voir les avantages et inconvénients qu'il présentait.

En effet, un logiciel plus complet peut également être plus complexe à utiliser, il est donc important d'anticiper cela.


Semaine 10

Interface numérique

Nous avons défini le design que nous voulions obtenir pour l'interface numérique, l'aspect final ainsi que l'agencement des fenêtres.

Nous avons continué la prise en main de Qt qui s'avère nous poser plus de difficultés que prévu, après ouverture de plusieurs fenêtres simultanément, nous éprouvons des difficultés pour mettre en forme un Widget (objet de base) dans un autre.

PCB

Design interface

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

Design interface