Projet “Création de mode virtuelle”

Notre projet consiste à créer des imprimés numériques afin de les visualiser sur des vêtements virtuels.  

Il s’inscrit dans une démarche de sobriété puisqu’il a pour objectif de limiter l’impact environnemental de l’impression textile. Visualiser les vêtements virtuellement évite un gaspillage des tissus et la pollution notamment due aux encres.

“L’industrie du textile est une des plus polluantes de la planète et est responsable de la pollution de 17 à 20% des eaux dans le monde !”

Le parlement Européen. 

Notre projet est en collaboration avec le Lycée de la mode de Cholet, permettant aux étudiants de visualiser leurs créations virtuellement.

Nous avons réalisé un ensemble de motifs à l’aide du logiciel Processing

Nous avons décidé de baser nos créations sur le thème « l’Impressionnisme ». Nous sommes donc parties d’images de tableaux peints par des artistes tels que Monet, Pissarro ou Renoir, puis nous les avons modifiés via le logiciel. Nous pouvons par exemple juxtaposer des images, changer leurs couleurs, effectuer des rotations, les inverser… Le tout en manipulant les données de l’image. 

Exemple de code pour la création d’un motif sur Processing.

Voici un autre exemple de motif que nous avons créé à partir du tableau « La nuit étoilée » de Van Gogh. 

Exemple de motif créé avec Processing.

Visualisation  

Nous avons utilisé trois approches différentes pour visualiser nos imprimés sur les mannequins virtuels : la réalité virtuelle (1), augmentée (2) et mixte (3).  

Voici un schéma vous présentant les distinctions entre les trois types de réalités étendues. 

Schéma explicatif des réalités étendues.

La réalité virtuelle (VR) permet de simuler et d’expérimenter différents environnements virtuels via des techniques et outils d’immersion et d’interaction 3D (casque VR…) 

Notre objectif était de créer une scène de défilé de mode avec des mannequins qui défilent sur un podium.  

Pour créer cet environnement réaliste il nous a fallu :  

  • Importer des objets (chaises, plantes, …), issu d’un logiciel libre de droit (Blender) 
  • Animer les mannequins 
  • Programmer le mannequin pour qu’il se déplace dans la scène 
  • Intégrer de la lumière 
  • Intégrer une musique de fond 
  • Implémenter les interactions avec le mannequin immobile
Vidéo de démonstration de la scène en réalité virtuelle.

La réalité augmentée ou en anglais « Augmented Reality » (AR) permet la visualisation localisée d’entités numériques (objets) dans le monde réel à l’aide d’un smartphone ou d’une tablette et de marqueurs (QR code) servant d’identifiant et de référence spatiale. 

Dans l’optique de présenter nos modèles en réalité augmentée dans un cadre aussi immersif que possible, nous avons décidé de créer la maquette d’une boutique de vêtements à échelle réduite. 

Voici le résultat final de notre scène en réalité augmentée :  

Scène finale à travers un smartphone.

La maquette est donc réelle mais les mannequins eux, sont virtuels.

La réalité mixte permet la visualisation et l’interaction 3D comportementale (sélection, manipulation, etc.) avec des entités numériques (objets) dans le monde réel à l’aide de casques AR et de la reconnaissance gestuelle et vocale. 

Le caque que nous avons utilisée est le Meta Quest 3. Celui-ci est équipé de caméras RGB permettant de scanner et filmer en temps réel le monde qui nous entoure afin de visualiser et interagir avec des objets virtuels dans le monde réel. 

Casque Meta Quest 3 et Joystick.

Nous avons utilisé la technique d’interaction du hand-tracking. C’est à dire qu’il n’est plus nécessaire d’utiliser de manettes liées au casque de réalité virtuelle. Nous pouvons interagir seulement avec les mains !  

Différentes interactions sont possibles telles que : 

  • Tourner le mannequin
  • Changer le tissu du modèle 
  • Zoomer ou dézoomer sur le tissu 
  • Ajuster le tissu sur le mannequin 
Interactions possibles avec le mannequin en réalité mixte.

Bilan 

Ce projet nous a permis de nous familiariser avec la réalité virtuelle. Certaines d’entre nous n’avaient encore jamais eu l’occasion de travailler avec. Nous avons pu toucher aux trois types de réalités et à de nombreux logiciels, ce qui a été très instructif.  

Le projet nous a permis de mêler art et sciences. Nous avions une très grande liberté de création. Nous tenons à remercier tout particulièrement Paul Richard qui nous a aidé durant tout le projet. 

Merci de nous avoir lu ! Nous espérons que le projet vous a plu ! 

Lucie JARDIN, Apolline BRIERE et Maëlle MÉVEL 

Projet Smoothie Bike (Groupe 20)

Introduction : Présentation du commanditaire et des attendus

Le projet de réalisation du Smoothie Bike résulte du besoin d’une association. L’association commanditaire est “La passerelle”, l’association de santé de l’université d’Angers (SSU). En effet, cette association souhaitait remplacer leur propre Smoothie Bike pour les différentes raisons énumérées ci-dessous. Ce dispositif permettra d’animer par la suite des opérations de sensibilisation sur différents lieux. Les attendus sont :

  • Une bonne résistance : Plusieurs personnes de différents gabarits vont utiliser le dispositif.
  • Une diminution du bruit : Le précédent smoothie Bike était relativement bruyant à cause du système de transmission.
  • Praticité : Le dispositif va être transporté régulièrement. Il est nécessaire qu’il soit léger (20kg environ) et qu’il puisse rentrer dans un coffre de voiture. La maintenance devra se faire avec des outils de bricolage basiques (clé à laine etc…) De plus, un cadre “col de cygne” a été exigé pour que les personnes portant des jupes puisse utiliser le vélo sans être incommodé.
  • Design : A la demande de l’association, le logo de l’association devra apparaître sur la roue avant.
  • Sécurité : Les soudures devront être sûres (une étude sur ordinateur devra être effectuée). Les rayons de la roue devront être couverts avec un cache. Le mixeur devra être détachable et étanche.

Une première phase de recherches

Pour notre projet nous avons commencé par mettre en commun nos idées respectives afin d’établir une première esquisse de notre smoothie bike.

Nous avons décidé de construire notre vélo de façon à ce qu’en pédalant, la roue avant puisse entrainer la lame d’un blender pour mixer des fruits. De plus, la roue arrière sera remplacée par un pied car le dispositif est fixe, il ne permettra pas de rouler. Cette roue avant sera légèrement surélevée pour éviter de toucher le sol. Ce choix de cadre demande de faire de la soudure. Le blender sera fixé à l’avant sur un socle pour permettre à l’utilisateur de voire son smoothie se réaliser sous ses yeux.

Dans un premier temps nous avons établi une liste d’achat et acheté les différentes pièces pour notre smoothie-bike. Nous avons décidé d’effectuer notre recherches sur des sites de vente entre particuliers comme Leboncoin pour essayer de limiter notre empreinte carbone (livraison etc…) Nous avons priorisé la recherche du cadre du vélo, car il s’agit de la pièce centrale du projet.

Afin de respecter le cahier des charges qui nous impose un certain budget et un cadre en col de cygne pour une meilleure inclusivité (femmes et hommes s’y sentiront plus à l’aise).

Nous avons fini par trouver un cadre à 10 euros que nous somme allés chercher chez un particulier. Nous avons ensuite trouvé un mixer en verre par la suite. Nous avons aussi passé commande pour des articles plus spécifiques comme des bombes de peintures, des bagues de serrages ou encore des tubes en acier. Pour ce type de matériel, nous avons choisi des enseignes françaises comme Leroy Merlin et CommentFer. Nous avons rencontrés des difficultés qui nous ont ralentis comme des délais de livraison trop longs.

Une phase de calculs et de modélisation

Avant tout, nous avons commencé à modéliser nos pièces par ordinateur afin d’avoir une idée plus précise du système. Nous utilisons le logiciel SolidWorks pour la modélisation par ordinateur (CAO). Cette approche nous permet de modifier à volonté et visualiser les contraintes et les faiblesses potentielles que pourraient avoir le système.

La selle
Le pied avant permet de maintenir la structure stable
Le système pédalier
Le corps du blender
Le guidon
La fourche
Le smoothie bike presque complet

Grâce au logiciel, nous pouvons appliquer des contraintes sur le système, par exemple le poids d’une personne assise sur la selle etc… et ainsi voir les potentielles faiblesses de la structure.

Ici, c’est au niveau des soudures que la structure pourrait être fragilisée.
Nous avons effectués différents calculs

Une phase de réalisation

C’est le moment de passer à l’étape suivante qui est la Réalisation du projet. Dans un premier temps nous avons démonté le mixeur pour récupérer le socle et des pièces détachées. Le mixeur sera fixé sur une plaque en contreplaqué à l’avant. Ainsi lors de l’utilisation du système, le mixeur sera bien fixé et la sécurité des usagers assurée.

Ensuite, nous avons également démonté la fourche (structure qui relie la roue avant au cadre). Nous avons installé un guidon démontable pour faciliter le transport. La fourche est également démontable car elle peut s’emboiter avec le pied avant. Nous avons commencé à couper le cadre pour obtenir la structure souhaitée. 

Nous avons coupé les petites parties indésirables sur le cadre du vélo à l’aide d’une scie circulaire. Nous avons ensuite poncé le cadre de notre vélo afin d’enlever au maximum la peinture et les petites irrégularités. Nous avons obtenu l’aide d’un soudeur à Laval qui a pu souder entièrement la structure métallique. car le FabLab (atelier de Polytech Angers) n’était pas équipé pour ce type de travail. Nous avons également imprimé des pièces en 3D.

Enfin, nous avons effectué la peinture en commençant par une couche protectrice anti-rouille pour que le vélo tienne dans le temps. Et nous l’avons entièrement peint de peinture bleue ardoise.

Les problèmes rencontrés :

Dans ce projet, nous avons rencontré quelques problèmes à différentes phases du projet. En effet, nous avons rencontré des problèmes dès la phase de conception et des tests de contraintes (un poids d’une personne par exemple). Ces contraintes permettent de visualiser les potentielles faiblesses du dispositif liées aux déformations de la structure. Notre objectif que le vélo résiste à des contraintes de plus de 120 kg.

Ensuite, un autre problème rencontré fut le temps, nous avons perdu beaucoup de temps dû aux délais de livraisons de nos tubes et plaques métalliques. Donc, pendant 2 à 3 semaines, le projet était au point mort. Il a fallu gérer ces temps de quasi-inactivité en anticipant un maximum les prochaines étapes.

Pour finir, nous avons décidé de faire un cache roue où figurerait les logos de Polytech Angers et surtout du SSU pour qu’ils puissent promouvoir leur association via le Smoothie Bike pendant leurs interventions. Le matériel requis pour faire un disque léger et flexible doit qui rester durable, de manière à limiter son usure et que le dispositif soit viable sur le long terme. Nous avons alors recherché plusieurs matériaux et nous en avons rejeté plusieurs à cause de leur rigidité, leur prix etc… nous sommes tournés vers des plaques de PVC expansées. De plus, nous avions omis le fait qu’il fallait prévoir le temps de faire ce cache roue car l’avancé du Smoothie Bike nous occupait beaucoup et nous devions déjà faire plusieurs tâches de bricolage à la fois. Sur les derniers temps avant la présentation finale, nous avons donc pensé qu’utiliser de la nappe en plastique transparente assez épaisse. Cependant cette solution n’était pas possible à mettre en place car nous manquions de temps et nous hésitions à acheter du matériel supplémentaire pour au final un résultat visuellement peu satisfaisant. 

Phase finale

Nous avons finalisé le projet ! Le dernier jour, nous avons créé un stand attractif afin de mettre en valeur le travail que nous avons fournis sur tous ce deuxième semestre.

Conclusion

Après plus de cent heures de travail acharné, les résultats de notre projet de smoothie bike sont satisfaisants. Notre engin fonctionne bien, capable de produire des centaines de smoothies sans problème. Cependant, il y a quelques critiques à formuler, notamment concernant le poids du smoothie bike, qui est d’environ 25 kg, dépassant légèrement le cahier des charges. Il aurait peut-être été préférable d’opter pour des matériaux plus fins par exemple.

Nous avons tous beaucoup aimé réaliser ce projet. Nous avons pu mettre en application les nombreuses connaissances que nous avons pu acquérir pendant ces deux années d’école préparatoire. C’est un projet très varié, nous nous sommes amélioré en CAO (conception assistée par ordinateur) en simulant des contraintes sur un système pour détecter les potentielles faiblesses et modéliser des pièces sur un logiciel mais également faire des manipulations plus techniques comme le découpage et le ponçage des pièces et de la soudure. Nous avons tous appris à gérer les désaccords entre les membres de l’équipe. Ainsi, nous avons pu réaliser à quel point cela était enrichissant de collaborer lors de ce projet. De plus, savoir que notre projet va être offert à une association nous a donné le sentiment d’avoir fait un projet utile et concret.

Jack et le seau magique

Bonjour à tous !

Vous avez sûrement déjà vu des cascades miniatures…

Notre projet c’est pareil mais en mieux ! 
Se basant sur un seau qui se vide et se remet à sa position initiale selon des calculs, nous avons décidé de créer une cascade miniature dans un thème plutôt farfadesque

Avant de commencer voici un petit vidéogramme présentation de notre projet :

Vidéo présentation du projet “Jack et le seau magique”

1 – Introduction

Pour faire simple, notre projet consistait à réaliser un seau se remplissant avec de l’eau et se renversant à partir d’un certain volume d’eau.

Notre objectif était de déterminer à l’avance le volume d’eau et le degré d’inclinaison nécessaire au renversement du seau. Pour ce faire, nous avons dû commencer par une partie calculatoire afin d’adapter au mieux notre seau prototype d’essai. Ensuite, nous avons donc effectué de multiples tests afin de déterminer au mieux le positionnement du pivot du seau. Par la suite, nous voulions que ce projet soit beau et présentable alors nous avons eu l’idée d’en faire une fontaine.

2 – Phase de calcul

Notre rôle dans cette phase de calcul était de déterminer à quel moment le point d’inertie de l’eau était au-dessus du point d’inertie du seau.

Pour ce faire, on a dû reproduire plusieurs formes symbolisant l’eau dans le seau avec un rectangle et un triangle. Cette opération nous permet de déterminer le point d’inertie de chaque forme puis de l’eau dans sa totalité. Le basculement se fait alors lorsque le point résultant de l’eau est au dessus de celui du seau sur l’axe y.

Schéma du centre d’inertie de l’eau à partir de plusieurs formes

A partir de ce schéma, nous avons pu tiré plusieurs équations avec plusieurs inconnues. De ce fait, nous avons obtenus assez de résultat pour déterminer le volume d’eau nécessaire au renversement du seau. Ces résultats nous ont aussi permis de réaliser un graphique permettant d’obtenir, à l’aide de tangentes, l’angle d’inclinaison du seau lorsque celui-ci est sur le point de se renverser.

Graphique déterminant l’angle d’inclinaison au renversement du seau

Une fois que nous avions à disposition tous les résultats nécessaires à la réalisation de notre seau, nous avons donc imprimé en 3D notre premier seau de test réglable.

3 – Phase de test

Une fois le seau imprimé, nous avons imaginé une structure provisoire utilisant des pièces coniques imbriquées dans le seau, minimisant les frottements pour faciliter la rotation.

Nous avons donc réalisé plusieurs tests avec diverses configurations de positions pour l’axe de rotation du seau. Malheureusement, aucune des positions testées n’a été concluante, car nous avons remarqué que la cale située initialement dans le seau compliquait la réussite du renversement. Celle-ci avait pour but de faciliter le basculement vers un côté bien déterminé.

Configuration du seau avec la cale

Cependant, son poids était significatif lors de la phase de test, ce qui nous a conduits à le retirer et à le remplacer par un poids placé au fond du seau. De plus, nous avons ajouté une barre derrière le seau afin de contrôler la direction vers laquelle le seau se renverse. Avec ces ajouts, cette fois-ci les résultats étaient plus concluants, et nous avons pu déterminer une valeur optimale pour la hauteur de l’axe de rotation du seau. Une fois cette donnée acquise, nous sommes passés directement à la décoration du projet.

4 – Réalisation de la fontaine

Pour donner un aspect esthétique au projet, nous avons envisagé plusieurs idées pour intégrer le seau. Notre première proposition était de créer un seau d’eau géant qui se remplirait progressivement au fil des mauvaises réponses à un quiz, puis se renverserait une fois un certain quota atteint. Cependant, cette idée n’était pas viable en raison des conditions de présentation du projet, qui se déroulait en intérieur. Nous nous sommes donc tournés vers une idée de fontaine. Nous voulions réaliser une fontaine sur le thème de la montagne, alors nous avons commencé par faire un croquis.

Croquis initial de l’idée de fontaine dans le thème montagneux

Une fois notre idée fixée, nous avons commencé à modéliser en 3D toutes les pièces nécessaires au projet. Enfin, nous les avons imprimées.

Nous avons donc commencer par construire la structure de base avec une planche de bois circulaire ainsi que de deux tasseaux en bois afin de maintenir en l’air le bol de réception et le seau. Les tasseaux en bois sont maintenus par des équerres fixées à la base.

Nous nous sommes rendus compte que le bol initial ne suffisait pas pour éviter toutes les éclaboussures, alors nous avons imprimés un plus grand bol qui permet d’obtenir un très bon résultat malgré quelques éclaboussures. Pour assurer un flux constant d’eau sur les ruisseaux imprimés en 3D, nous avons conçu des pièces 3D avec un trou permettant de réguler le niveau d’eau dans le bol, garantissant ainsi un débit constant à l’arrivée. Nous avons réalisé une autre phase de test pour déterminer la forme et la taille idéale du trou.

Une fois cela réalisé, nous avons entrepris de construire toute la structure rocheuse en polystyrène extrudé.

Pour ce faire, nous avons découpé le polystyrène à l’aide d’un fil chaud, en cherchant à lui donner une forme aussi naturelle que possible pour imiter une roche. Une fois toutes les pièces de polystyrène découpées, nous les avons collées ensemble autour de la base en bois. Nous avons ajouté une partie amovible au-dessus de la pompe pour permettre un contrôle en cas de problème.

Pour donner un aspect plus réaliste à la roche, nous avons décidé de poncer toute la structure avec une lime à bois et du papier abrasif. Cette tâche a été longue et fastidieuse, mais le résultat en valait la peine.

Ensuite, nous avons appliqué une sous-couche de colle à bois sur toute la structure en polystyrène pour éviter les épluchures qui se détachent. Une fois sèche, nous avons pulvérisé de la peinture grise anthracite, obtenant un résultat supérieur à nos attentes.

Dès que la peinture a séché, nous avons entouré les tasseaux en bois d’aluminium enroulé en bâtonnets. Cette étape permet de donner une texture de haricot et rester dans le thème, tout en cachant les tasseaux et le tube permettant de remonter l’eau jusqu’en haut. Une fois les bâtonnets d’aluminium fixés à la colle chaude, nous avons appliqué du papier mâché sur tout l’aluminium avec de la colle maison à base de farine et d’eau. Nous avons laissé sécher une journée entière avant d’appliquer diverses teintes de peinture verte.

Pour achever cette fontaine, il nous restait à créer des nuages en hauteur pour dissimuler au mieux les structures.

Pour ce faire, nous avons commencé par construire une armature métallique au sommet du grand tasseau en bois, afin de coller ensuite des morceaux de coton autour.

Cependant, nous avons surestimé la taille du nuage, ce qui nous a coûté beaucoup de temps à installer chaque petit morceau de coton un par un. Mais cet effort n’a pas été vain, car après plus de 100 heures de travail, une barque et un château imprimé en 3D, nous vous présentons “Jack et le seau magique”.

Pour conclure, ce projet nous a permis d’apprendre de nouvelles méthodes de travail et de construction, de faire face aux problèmes rencontrés et d’y réagir en conséquence. Bien que nous ayons passé plus de temps à réaliser la décoration qu’à travailler sur le système de basculement du seau, nous avons tout de même essayé de comprendre au mieux le fonctionnement mécanique de celui-ci.

Nous tenons à remercier notre tuteur de projet Monsieur Kachit pour l’aide apportée durant les heures de projet.

Merci de nous avoir lu !

LEFEBVRE Mathis, LUCAS Corentin et LOLLIER Valentin

ACCORDEUR DE GUITARE AUTOMATIQUE – PROJET PEIP2A

Bienvenue à toutes et tous sur le blog du projet d’accordeur de guitare Automatique !

Ce projet s’adresse à tous les passionnés de musique et plus particulièrement d’instruments à cordes ! En effet, les cordes de nos instruments ont une fâcheuse tendance à se détendre modifiant ainsi le son de nos instruments préférés (guitare, basse, ukulele, etc…). L’accordage est donc une compétence essentielle pour tout bon musicien.

Cependant, tout le monde n’a pas l’oreille absolue!

C’est ici que notre projet prend tout son sens. L’objectif est de rendre totalement automatique l’accordage d’une guitare. De la captation et l’analyse de fréquence jusqu’à l’action mécanique d’ajustement des cordes.

Premiers pas en terre inconnue…

Les prémices de notre projet ont surtout été une recherche d’informations sur le fonctionnement du système d’accordage d’une guitare classique et les éléments qui le compose.

Nous avons aussi commencé à prendre en main le logiciel de programmation Arduino (un logiciel qu’aucun d’entre nous ne savait utiliser auparavant). Car nous n’étions pas seuls dans cette épopée, notre fidèle Arduino UNO serait là pour assurer toute la partie commande électronique du projet.

Notre projet fait appel à de nombreuses compétences dans des domaines aussi variés que le traitement du signal, l’analyse et la conception de systèmes mécaniques ou encore l’analyse de données. Nous avions pu aborder brièvement certaines de ces notions en cours cependant les appliquer dans un projet concret est une autre paire de manches. Nous avons donc décidé de décomposer les tâches de notre projet afin d’avoir un plan d’attaque!

Partie analyse fréquentielle

La musique et tous les sons existants se traduisent physiquement par des fréquences. Dans notre projet il est donc important de comprendre que chaque cordes/notes est associée à une fréquence distincte.

https://2.bp.blogspot.com/-p5dtCeP6Q4w/WLF8Ncy9iTI/AAAAAAAAGJo/rmRC4Q4YClc8SqNgeJNxupM9PQCnddrtgCK4B/s1600/Guitar%2BStrings%2BFrequency%2BChart.JPG

Bien que fièrement armé de nos bagages théoriques acquis en cours de mathématiques du signal, la partie analyse fréquentielle ne fut pas de tout repos. Nous avons essuyé plusieurs échecs de codes et de techniques de traitement de signal les unes après les autres : Transformée de Fourier, Fast Fourier Transformé, Zero Crossing

Notre code final est principalement basé sur une technique d’Autocorrélation auquel nous avons ajouté de nombreux seuils et intervalles afin d’éviter les valeurs erronées que le programme pourrait capter par erreur. En effet, même avec un code de captation optimal, plusieurs éléments parasites peuvent fausser les résultats et les valeurs acquis par notre fidèle micro Amplificateur MAX 4466!

Partie Affichage et Architecture

Après avoir terminé la partie d’analyse fréquentielle, il fallait maintenant concevoir une architecture permettant à la machine de transmettre ses résultats avec l’utilisateur. Nous avons opté pour une interface simple d’affichage sur un LCD I2C 4*16.

Afin de compléter l’architecture de notre accordeur, nous avons ajouté 6 leds indiquant la corde que nous souhaitons accorder ainsi que 2 boutons pressoirs afin de sélectionner celle-ci. (A tout cet ensemble viennent s’ajouter 3 leds de différentes couleurs dont le but est de renseigner le niveau d’accordage (Trop accordé/OK/Pas assez accordé).

Partie mécanique

Après avoir accompli les premières étapes du projet, le prochain défi de notre périple fut donc la partie système mécanique/moteur ou comment faire tourner les chevilles de réglages de la guitare.

CAO support chevilles de réglages

Le premier défi a été de modifier le fonctionnement du moteur à notre disposition. En effet, notre servo motor était un moteur de position. En d’autres termes, le moteur ne pouvait pas tourner à 360° et devait retourner à sa position initiale afin d’effectuer un nouveau serrage/desserrage.

Miuzei Servo Rc 25kg Servomoteur Digital Standard 180 Metal Waterproof Compatible avec Arduino Pour Voiture Rc 1/10 1/8 1/12 Bras Robot Modelisme Voilier

Avec beaucoup de courage et un peu de soudure, nous avons réussi à contourner les restrictions de positionnement de notre servo motor liés à sa carte électronique.

Finalement, nous avons associé les programmes liés à la partie fréquentielle et la partie contrôle moteur grâce à une Arduino Motor Shield. Cette association demande un regard attentif sur la datasheet du motor shield afin d’éviter les conflits de broches liés aux pins utilisés par défauts par le motor shield.

Conclusion

Brouillon montage
Montage final

Ça y est, c’est la fin de notre voyage. L’accordeur est fonctionnel et prêt à accorder les cordes les plus coriaces! Il ne reste plus qu’à vous faire une petite démonstration de ses capacités.

Démo moteur accordeur automatique

Bien que fonctionnel, ce projet offre de nombreuses perspectives de progression et d’amélioration. Tout d’abord, la possibilité de proposer l’accordage d’autres instruments à cordes (ukulele, basse, violon, etc…). Des questions de fréquences et de puissance mécanique seront alors à prendre en compte. Nous pouvons aussi émettre la possibilité d’accorder toutes les cordes d’une guitare en les grattant toutes en même temps comme dans la vidéo suivante :

Nous offrons ces idées dans le cas où de nouveaux étudiants voudraient reprendre le flambeau en s’appuyant sur notre travail.

Merci d’avoir suivi notre aventure/blog !

Ackhavong Kesian

Arlot Tom

Le Callet Ewen

Réveil Personnalisé

Bonjour à toutes et à tous,

Dans cet article, nous allons vous présenter notre projet de conception réalisé dans le cadre de notre deuxième année en cycle préparatoire à Polytech Angers. Nous sommes trois étudiantes à travailler ensemble sur le projet d’un réveil connecté et personnalisé, une tâche que nous avons abordée avec enthousiasme et créativité !

Nous avons choisi ce projet de part son originalité, son authenticité et sa nouveauté.

Ce projet a l’avantage d’être :

  • Innovant ;
  • Créatif ;
  • Inédit ;
  • Libre d’imagination ;
  • Réalisable dans son entièreté.

Voici une courte vidéo pour vous donner un premier aperçu de notre projet : 

Présentation Projet Réveil Personnalisé

Notre Projet

Notre projet de conception consiste à créer un réveil connecté entièrement personnalisé, regorgeant de fonctionnalités. Imaginez un réveil qui se connecte automatiquement au Wi-Fi dès que vous l’allumez, affichant ainsi en permanence l’heure exacte. Plus besoin de régler manuellement l’heure, même lors des changements saisonniers ! Ce réveil est conçu pour être simple et intuitif, accessible à tous. Notre objectif est de rendre votre routine matinale plus fluide et sans tracas. Avec ce réveil, vous pouvez commencer chaque journée du bon pied.

Présentation du matériel

Pour réaliser ce projet, nous avons utilisé plusieurs outils et composants tels que :

Logiciel de Programmation

Arduino IDE : À l’aide de ce logiciel de programmation, nous avons développé l’ensemble de notre programme. Pour cela, nous avons dû coder en langage C, en y intégrant plusieurs bibliothèques afin d’élargir le nombre d’options disponibles. Arduino fonctionne sur le principe de boucles. La boucle `setup()` s’exécute une seule fois, au démarrage, tandis que la boucle `loop()` se répète indéfiniment.

Interface Logiciel Arduino IDE
Interface logiciel Arduino IDE

Microcontrôleur

Carte ESP32
Carte ESP32

Nous avons ensuite téléchargé ce programme sur une carte ESP32. Cette carte présente plusieurs avantages :

  • Sa taille : elle est très petite ;
  • Sa basse consommation : 5V ;
  • Sa connectivité : elle dispose d’une connectivité Wi-Fi et Bluetooth, ce qui la rend parfaite pour des applications IoT.
DFPlayer Mini
DFPlayer Mini

Module de lecture audio

DFPlayer Mini : Pour ajouter une banque de musiques, nous nous sommes servies d’un module de lecture audio DFPlayer Mini. Ce composant permet de lire des fichiers MP3 directement depuis une carte micro SD et assure également la communication avec le haut-parleur.

Diffusion Audio

Haut-parleur : Pour diffuser la musique, nous avons utilisé un petit haut-parleur qui permet d’écouter les morceaux pré-téléchargés sur la carte micro SD. Ce dispositif, compact et facile à intégrer, offre une qualité sonore convenable malgré sa taille réduite.

Haut-parleur
Haut-Parleur

Affichage

Ecran TFT_eSPI 1.8
Ecran TFT 1,8

Ecran TFT_eSPI : Pour visualiser nos diverses fonctionnalités, nous avons opté pour un écran TFT de 1,8 pouce. Celui-ci nous permet d’afficher l’heure, l’alarme, la météo et le menu Paramètres. Avec ses dimensions de 128 par 160 mm, il offre à l’utilisateur un affichage suffisamment grand.

Lumière

Ruban LED

Nous avons utilisé un ruban LED comme source lumineuse, offrant plusieurs avantages :

  • Faible consommation : les LEDs consomment très peu d’énergie et fonctionnent sous 5V ;
  • Large choix de couleurs : toutes les nuances ;
  • Possibilité de sélectionner le nombre de LEDs utilisées.

Etapes de Réalisation

A. Programmation

1. Connexion Wi-Fi

Nous avons commencé par la programmation, une partie cruciale de notre projet. Pour cela, nous avons configuré le réveil pour qu’il se connecte automatiquement au Wi-Fi dès son démarrage, assurant ainsi une mise à jour continue de l’heure.

2. Configuration de l’Alarme

Ensuite, nous avons développé une fonction permettant à l’utilisateur de configurer son alarme pour le lendemain matin. Nous avons intégré un bouton “alarme”, ainsi que des boutons “plus” et “moins” pour ajuster l’heure. Une fois l’heure programmée, l’utilisateur peut facilement arrêter l’alarme en appuyant sur le bouton prévu à cet effet.

3. Menu Paramètres

Nous avons ajouté un menu paramètres accessible via un appui long sur le bouton dédié. Ce menu permet de sélectionner la musique de l’alarme, de régler la durée du simulateur d’aube et de choisir la couleur de la lampe de chevet.

4. Simulateur d’Aube

Le réveil dispose également d’une fonctionnalité “Aube” qui permet à la lumière de s’allumer progressivement avant que l’alarme ne sonne, offrant un réveil plus naturel et plus doux.

5. Affichage de la Météo

Grâce à la connexion Wi-Fi, l’adresse IP et la clé API, le réveil nous géolocalise et affiche la météo. L’utilisateur connaît alors la température et les conditions météorologiques extérieures de la ville où il se trouve.

6. Lampe de chevet

Notre réveil fait également office de lampe de chevet. L’utilisation de LEDs nous a permis de créer une ambiance personnalisée dans la chambre grâce à un large panel de couleurs : Blanc, Jaune, Orange, Rouge, Vert, Bleu, Violet et Rose.

Voici ci-dessous, le fonctionnement de notre réveil avec la démonstration des diverses options :

Vidéo explicative de l’utilisation de notre Réveil Personnalisé

B. Conception

La conception de ce réveil était essentielle pour nous, car l’aspect esthétique constituait un critère primordial. Pour le réaliser, nous avons suivi plusieurs étapes :

Étape 1

Boîte en bois mélaminé

Nous avons recherché des composants adaptés pour réaliser notre réveil :

  • Une sphère en plexiglas diffusant
  • Une boîte en bois mélaminé pour obtenir un aspect esthétique de qualité. Cette boîte, mesurant 140 x 140 x 90 mm, a été conçue avec des coupes à 45° sur les bords pour dissimuler les tranches.

Étape 2

Perçage des trous :

  • Un trou circulaire sur le dessus pour accueillir la sphère ;
  • Un trou rectangulaire pour insérer l’écran ;
  • Des petits trous de 1,5 mm pour laisser passer le son du haut-parleur ;
  • Six trous de 8 mm pour les boutons.
Perçage boutons
Perçage sphère
Perçage son
Résultat

Étape 3

Collerette blanche

Fabrication des caches pour dissimuler les bords rugueux :

  • Un rectangle noir autour de l’écran, réalisé par découpe laser;
  • Une collerette blanche en impression 3D autour de la sphère;
  • Un cache noir pour le passage du câble d’alimentation.
Logos
Soudure

Étape 4

Découpage de logos sur l’avant du réveil pour indiquer la fonction de chaque bouton.

Étape 5

Soudure : Assemblage des composants à l’aide d’un fer à souder et de gaines rétractables.

Étape 6

Réalisation en SolidWorks d’une maquette pour fixer les composants à l’intérieur de la boîte.

Étape 7

Nous avons enroulé un ruban LED sur un cylindre de façon à obtenir une lumière uniforme.

SolidWorks
Assemblage composants sur socle
Résultat intérieur Réveil

Étape 8 :

Enfin, nous avons procédé à l’assemblage et à la fixation de tous les éléments à l’intérieur de la boîte pour obtenir le produit fini.

Conclusion

À travers ce travail, nous avons pu nous exercer à la gestion de projet, à la répartition des tâches à accomplir ainsi qu’au travail d’équipe. Ce projet a également été l’occasion d’améliorer nos compétences dans plusieurs domaines tels que la programmation, l’électronique et le travail manuel. De plus, nous sommes ravies de notre travail accompli. Malgré les difficultés rencontrées, nous avons toujours su les surmonter. Avoir réussi à concrétiser notre idée de départ rend notre travail d’autant plus gratifiant. Notre réveil répond à l’ensemble de nos attentes aussi bien sur le plan technique qu’esthétique. Nous remercions notre professeur référent, Monsieur Sylvain Bignon, pour son aide et sa bienveillance tout au long de la réalisation de notre projet.

Nous vous remercions d’avoir lu ce blog, en espérant qu’il vous aura plu.

PRIOLET Amandine

BLANCHET Margot

OLLIVIER Maéva

Liens des images utilisées :

Trieur de monnaie — Keple

Trieur de monnaie, késako ?

Photo personnelle de notre projet
  • 8 capteurs infrarouges (capteurs de distance)
Capteur infrarouge, wiki : Beercycle — « Les Fabriques du Ponant » https://www.wiki.lesfabriquesduponant.net/index.php?title=Beercycle
  • 1 écran LCD 128×64
  • 1 joystick Arduino
Joystick Arduino, Taller Arduino Ingenia | Aprendido Arduino https://aprendiendoarduino.wordpress.com/category/taller-arduino-ingenia/page/4/
  • 1 Arduino Mega
  • 1 haut-parleur Arduino (optionnel)
  • 1 moteur pour roue Arduino
  • Et 2 boutons !

Conception du projet

Capture de notre fichier SolidWorks de la rampe de tri

Code et circuit électronique

Ajout d’options

Résumé rapide du fonctionnement de la machine & bilan

DobotNet Arduino – Réseau de robots Dobots Magician

Bienvenue à toutes et à tous !

Dans cet article, nous allons partager avec vous les découvertes que nous avons faites lors de notre projet de deuxième année de classe préparatoire à Polytech Angers !

Ça, c’est ce qu’on a fait…

Vidéo de démonstration du projet DobotCity, by DobotNet

Oui oui, nos deux petits bras robotisés essaient de construire une ville miniature… Vous voulez savoir comment ? Et bien c’est parti !

1. Présentation du matériel

Notre objectif lors de ces six derniers mois était de créer une solution pour permettre la communication entre plusieurs Dobots Magician via une carte Arduino.

Les Dobots Magician sont des petits robots comme celui-ci, auxquels on peut ajouter une extension telle qu’une ventouse ou une pince pour attraper des objets, un crayon pour dessiner, ou même un laser pour graver dans la matière !

Ils ont une portée allant de 15cm à 32cm par rapport à leur base et une répétabilité des mouvements de 0.2mm.

Robot Dobot Magician
Carte Arduino MEGA

La carte Arduino MEGA va agir comme le cerveau de notre projet. Elle se verra attribuer diverses lourdes tâches comme relayer les informations entre les Dobots, mémoriser l’avancement de la construction de la ville, recevoir des commandes de la part de l’utilisateur…

Au début, nous avions une carte Arduino UNO, mais elle n’avait pas assez de RAM pour assumer toutes ces responsabilités, nous n’avons donc pas eu d’autre choix que de la changer !

Source de beaucoup d’ennuis, certes, mais la construction de notre ville ne pourrait pas se faire sans la caméra

En effet, nous allons avoir besoin de repérer des cubes dans l’espace, elle sera donc utile pour traiter le flux d’images qu’elle capture et récupérer en temps réel des informations précieuses que nous allons aborder dans quelques instants.

La caméra

2. Choix du projet

Comme nous l’avons expliqué, notre but lors de ces six derniers mois était de parvenir à faire collaborer deux Dobots Magician connectés à une carte Arduino. Nous souhaitions profiter au maximum de ces 100 heures de projet pour découvrir de nouveaux domaines liés à l’informatique, il est donc évident que le projet que nous vous présentons aujourd’hui ait piqué notre curiosité. Voici quelques raisons pour lesquelles nous avons choisi ce projet au-dessus des autres :

  • Satisfaction visuelle offerte par le travail en équipe de deux robots lors de la réalisation d’une tâche complexe
  • Publication en source libre pour apporter sa participation au développement de la communauté Dobot
  • Découverte de pratiques courantes en robotique qui seront nécessairement utiles dans le futur
  • Introduction et apprentissage autonome à la vision par ordinateur
  • Familiarisation avec du matériel électronique

Enfin bref, c’est finalement la liberté offerte par ce projet, que ce soit dans sa finalité comme dans les procédés pour l’atteindre, qui nous l’a fait remarquer au-dessus des autres.

Maintenant que vous savez pourquoi on l’a choisi, voyons comment nous nous y sommes pris pour construire une petite ville.

3. Premiers pas : Découverte de DobotStudio

Nous avons passé les premières heures de projet à expérimenter et à nous familiariser avec les robots grâce à l’interface de contrôle DobotStudio. Cette application propose de nombreux modes amusants et interactifs pour faire se mouvoir les Dobots. On retrouve notamment le Teach and Playback, où le robot exécute une série de mouvements prédéfinis, et le Write and Draw, qui laisse le robot dessiner un texte ou une image téléversée sur l’application.

En revanche, le mode qui nous intéressait réellement pour le début de ce projet était la programmation en Blockly, puisqu’il offre un accès simplifié aux commandes d’un Dobot grâce à des blocs préprogrammés. En seulement quelques minutes, nous pouvons créer le programme ci-dessous:

Illustration des mouvements d’un Dobot avec DobotStudio | Programme Blockly

Le résultat obtenu lors de l’exécution de ce programme est le suivant :

Illustration des mouvements d’un Dobot avec DobotStudio | Vidéo

Avec quelques essais supplémentaires, nous avions une bonne appréhension de la manière de se déplacer des Dobots. Il était donc temps de passer à l’étape suivante : leur interface de communication.

4. Communication en série avec les Dobots

Nous vous l’avions caché jusqu’à maintenant, mais nos petits robots disposent de diverses interfaces de connexion. La zone 6 sur la photo ci-dessous permet l’alimentation et le contrôle des extensions telles que la ventouse ou la pince.

En revanche, celle qui nous intéresse actuellement est l’interface de communication en zone 3. Parmi les 10 pins exposés dans cette zone, 2 d’entre eux (nommés RX et TX) constituent une interface UART, qui permet le transfert bidirectionnel et asynchrone de données en série.

Interface de contrôle d’un Dobot
Ports UART Arduino MEGA

Cette interface est d’autant plus intéressante qu’elle peut être associée à l’une des quatre interfaces UART installées par défaut sur une carte Arduino MEGA (entourées en rouge). Pour ce faire, il suffit de connecter les pins RX et TX à l’arrière du Dobot respectivement aux pins TX1 et RX1 de la carte Arduino. Une troisième connexion nécessaire est celle entre le GND de l’Arduino et celui du Dobot.

Une fois cette connexion réalisée, l’Arduino peut, avec le programme approprié, envoyer des commandes au robot à laquelle elle est liée.

Après quelques heures de recherche, nous sommes entrés en possession de deux fichiers importants. Le premier détaille le protocole de communication des Dobots (format des paquets de données) et contient une liste de leurs commandes enregistrées. Le second est un programme de démonstration faisant bouger un Dobot en connectant ses pins RX et TX à une carte Arduino MEGA.

Voici le résultat obtenu grâce au code de démonstration :

Une très bonne nouvelle pour nous fut que cette démonstration contenait l’implémentation d’une dizaine de commandes et d’un système assez modulaire (bien que parsemé de bugs embêtants) pour établir une communication à double sens avec un Dobot.

Après avoir passé plusieurs heures à lire, comprendre et corriger le code de démonstration, nous étions fin prêts à relever notre plus gros défi jusqu’à présent : la création d’une bibliothèque open-source pour permettre le contrôle de un ou plusieurs robots Dobot Magician depuis une unique carte Arduino Mega.

Démonstration Arduino

5. Création de DobotNet

C’est ici que naquit DobotNet. Avec un temps considérable passé à découvrir et à réorganiser la démonstration, nous avons été capables de marquer les parties du code nécessitant une réécriture complète et celles pouvant être utilisées sans grosse modification.

Il s’agissait de notre première expérience de création d’une bibliothèque open-source. Aussi, nous avons concentré nos efforts pour améliorer au maximum la lisibilité du code grâce à des fonctions documentées et simples à utiliser.

Voici l’évolution de la syntaxe pour faire se déplacer un robot vers un point donné, en commençant avec la méthode initialement proposée par la démonstration :

// Long, peu pratique et sans support pour plusieurs Dobots
PTPCmd gPTPCmd;
gPTPCmd.x = 200;
gPTPCmd.y = 0;
gPTPCmd.z = 0;
SetPTPCmd(&gPTPCmd, true,  &gQueuedCmdIndex);

Et maintenant, l’équivalent du code précédent en utilisant DobotNet, où “dobot” est une variable pouvant représenter n’importe lequel des robots connectés à la carte :

dobot.MoveTo(MOVL_XYZ, 200, 0, 0, 0);

En comparant ces deux extraits, on remarque que le gain de temps, de place et par conséquent de lisibilité du code source n’est pas négligeable, surtout pour des procédures de mouvements plus longues et complexes.

Nous avons également ajouté des exemples à notre bibliothèque DobotNet pour permettre une prise en main rapide et accompagnée. Elles vont d’une simple reproduction de la démonstration sur laquelle est basée notre bibliothèque, au code complet de la solution dont vous avez vu un extrait au début de cet article. On retrouve ci-dessous le résultat de l’exécution de l’exemple “NetworkDemo.ino

Exécution de l’exemple NetworkDemo.ino avec DobotNet

6. Création de la ville

Maintenant que nous pouvons facilement faire bouger nos Dobots, passons à la création de notre ville. Pour ce faire, il nous faut dessiner un plan aux proportions suffisamment impressionnantes pour l’aspect visuel, tout en restant dans la portée des robots. Il faut également faire attention à ce que les structures dans la ville ne soient pas trop proches les unes des autres pour s’assurer que l’ouverture de la pince ne démolisse pas des bâtiments adjacents.

Plusieurs versions ont été nécessaires, mais nous sommes finalement parvenus à un plan satisfaisant nos attentes :

Chaque couleur représente un type de bâtiment :

  • Maison (rouge) [2×1]
  • Arbre (vert) [2×1]
  • Immeuble (jaune) [3×2]
  • Voiture (bleu) [1×2]
  • Zone de transition (blanc)
Plan final de la ville DobotCity

La zone de transition est un emplacement auquel les deux Dobots ont accès, permettant le transfert des blocs d’une zone à l’autre.

En plaçant la tête du Dobot sur le point de calibration (rouge) au centre de l’image, nous pouvons récupérer un point de référence dans le système de coordonnées du Dobot, ce qui permet de convertir les coordonnées en millimètres des bâtiments. Il en est de même pour le Dobot de la partie suivante.

7. Création de la zone de stockage

Nous entrons maintenant dans la partie qui s’est avérée être la plus problématique de toutes pour notre projet : la zone de stockage. Il s’agit de l’endroit où les blocs sont déposés par l’utilisateur, pour ensuite être récupérés par un Dobot et placés sur la zone de transition. C’est maintenant que nous faisons appel à la caméra, dont la capture sera traitée pour essayer de déterminer la position des blocs dans la zone de stockage.

Voici ce à quoi ressemble notre zone de stockage (Théorique | Capturée par la caméra) :

Représentation de la zone de stockage
Capture réelle de la zone de stockage

Les quatre carrés noirs étranges autour de la zone de stockage sont appelés des marqueurs Aruco. Ils sont parfois utilisés en vision par ordinateur pour délimiter une zone, déterminer un repère ou traquer un objet mobile.

En utilisant la bibliothèque de traitement d’image OpenCV (Open Computer Vision) disponible sur Python, nous pouvons réaliser les étapes suivantes pour isoler la zone de stockage et détecter les cubes.

1) Trouver le centre des marqueurs Aruco sur l’image avec cv2.aruco.detectMarkers()

2) Transformer l’image de sorte que les centres trouvés soient aux coins de l’image avec cv2.getPerspectiveTransform(centres, coins) et cv2.warpPerspective(). Le résultat est présenté ci-dessous :

Image de la zone de stockage après transformation de la capture

3) Appliquer un flou gaussien pour réduire le bruit

4) Appliquer un algorithme de détection des contours avec cv2.Canny() et deux paramètres sélectionnés par l’utilisateur. Nous avons créé une interface qui permet de visualiser l’effet des deux paramètres (En vert sont les contours détectés)

Interface de calibration des paramètres de la caméra

5) Validation des dimensions des contours, calcul des centres et de la couleur des blocs

6) Compilation des résultats dans l’interface de contrôle

Interface de contrôle à distance

Il nous aura fallu beaucoup de temps pour comprendre les fonctions proposées par OpenCV et trouver une combinaison d’algorithmes donnant un résultat fiable. Nous avons cependant découvert de nombreux concepts en lien avec la manipulation d’image qui ont changé notre perception de ce domaine.

8. Interface Utilisateur Graphique (GUI)

Comme nous venons de le voir sur les deux captures précédentes, nous avons ajouté à notre projet des interfaces utilisateur pour faciliter le contrôle depuis un ordinateur. Ces interfaces ont été réalisées avec Tkinter. Chaque bouton sur l’interface de contrôle communique une commande à la carte Arduino via un module Bluetooth que nous avons ajouté. Un exemple simple est le bouton Construire qui permet de lancer / arrêter la procédure de construction de la ville, ou le bouton Reset qui permet de recommencer la procédure de zéro.

Nous avons également ajouté un écran LCD 4×20 connecté à l’Arduino pour afficher l’état actuel de la procédure. Le voici dans deux états différents :

Ecran LCD – Mode inactif
Ecran LCD – Mode construction

9. Perspectives d’amélioration

Comme nous vous l’avons expliqué au début de cet article, l’une des raisons principales pour laquelle nous avons choisi ce projet est sa capacité à constamment pouvoir être amélioré. Nous avions de nombreuses idées pour compléter le travail que nous avons fait jusqu’à présent, mais le temps nous a manqué pour réaliser certaines d’entre elles.

Nous souhaitions par exemple imprimer une carte électronique pour réduire le nombre de câbles apparents qui dégradent actuellement l’apparence extérieure de notre projet, mais par manque de temps, nous n’avons pas eu l’occasion d’aller au bout de cette idée.

Prototype de carte électronique, réalisée sur EAGLE by AutoDesk

Sans carte électronique et par conséquent sans certitude des dimensions, nous ne pouvions pas prendre le risque d’imprimer une boîte de rangement pour la carte Arduino et les modules qui y sont connectés.

Vision intérieure de la boîte
Vision extérieure de la boîte

Enfin, une dernière amélioration que nous aurions réellement aimé ajouter est celle laissant l’utilisateur dessiner sa propre ville. Elle correspond au bouton Dessiner sur l’interface de contrôle. Seul le temps pour créer une interface de dessin du plan nous manquait, puisque le code Arduino est déjà adapté pour accueillir ce genre de fonctionnalité.

10. Bilan

Si vous êtes encore là, merci beaucoup d’avoir pris le temps de lire cet article !

Ce projet a été pour nous une expérience inoubliable. Même si, comme nous venons de le voir, nous n’avons pas eu le temps d’aller au bout de nos perspectives, nous sommes tout de même très heureux du travail accompli lors de ces six derniers mois. Nous n’étions que deux pour réaliser ce projet, et les défis que nous a causé notre ambition ont été de taille. Même si notre technique pour aborder certains problèmes n’était pas parfaite, nous sommes fiers d’avoir accompli ce qui est notre projet aujourd’hui.

Vision par ordinateur, programmation sur Arduino, création d’une bibliothèque, design d’une carte électronique, modélisation 3D. Toutes ces compétences ne pourront que nous être bénéfiques pour le futur, et nous garderons un très bon souvenir de ce travail d’équipe pour surmonter les obstacles rencontrés sur le chemin.

11. Remerciements

Nous remercions évidemment l’ensemble des enseignants qui ont pu nous aider durant ce projet, et plus particulièrement :

  • Mr. BOIMOND Jean-Louis, notre référent de projet
  • Mr. LAGRANGE Sébastien
  • Mr. VERRON Sylvain

Ce projet a demandé beaucoup de rigueur, il aurait donc été impossible sans leur aide précieuse.

12. GitHub Repositories

Kind Regards, us

by Paquereau–Gasnier Alexis, Cholet Byron

Optimisation Jeux

Et si l’on facilitait la vie des gens en un clic ?

C’est l’objectif de notre projet : Proposer un site internet à une ludo-crèche qui leur permettrait de gérer toutes leurs demandes d’emprunt de jeux, en un clic. Il nous faut pour cela : 

  • Apprendre à coder en PHP.
  • Trouver un moyen d’attribuer un ensemble de jeu à un ensemble de personnes de manière automatique.
  • Gérer tout ce qui est relatif à un site internet : mise en ligne, hébergement…

Objectif : Un site web qui satisfait les utilisateurs comme les responsables et qui fait gagner du temps a tout le monde


Première étape : Apprendre à coder

C’est parti pour apprendre à coder. Entre les bases de HTML et CSS nécessaires pour comprendre PHP, la syntaxe de PHP, la structure du code… On y a passé plus d’une vingtaine d’heures.

En plus d’apprendre à coder en PHP pour réaliser l’affichage et le fonctionnement du site, on devait aussi utiliser MySQL qui est une base de données avec son propre langage ainsi qu’un solveur : un langage de programmation visant à résoudre des problèmes mathématiques.

L’apparence d’une table d’une base de donnée MySQL


Commençons la programmation du site

Chacun de ces fichiers compte entre 10 et 500 lignes de code, de quoi vite s’y perdre…

La phase d’apprentissage étant terminée, nous avons pu commencer à réaliser une première version du site, un peu vide puisque nous avions très peu d’informations sur le contenu et l’aspect qu’il devait avoir. C’est là qu’on se heurte à nos premiers problèmes :

Le travail en coopération : étant donné le temps que l’on avait pour créer ce site, il y allait avoir beaucoup de code réparti sur beaucoup de pages. Au bout d’un moment, on s’est rendu compte que l’on n’avait pas tous la même manière de coder et la structure du code s’est vite dégradée. Il a fallu imposer des règles strictes pour s’assurer qu’on puisse garder l’ensemble des pages de codes claires tout au long du projet.

La fonction d’attribution : sans rentrer dans les détails, pour attribuer les jeux aux emprunteurs, il faut représenter cette tâche par un problème mathématique que l’on va ensuite résoudre grâce à un solveur. Ce solveur nommé GLPK sert à résoudre des programmes linéaires, cependant, il faut apprendre à coder dans ce langage. Le problème étant que quasiment personne n’utilise GLPK, et cela se ressent dans l’absence de documentation sur ce langage. Notre seule manière d’apprendre était d’utiliser un simple PDF de quelques pages sur GLPK et de faire des essais et des erreurs.


Une quantité de travail inattendue

Ce site devait simplement permettre à des utilisateurs de faire des demandes de prêt de certains jeux et permettre aux responsables du site d’attribuer ces jeux automatiquement, mais il y avait bien plus de travail derrière que ce que l’on imaginait. 

Voici une liste non exhaustive de ce qu’il faut faire pour qu’un site comme celui-là fonctionne : 

  • Faire un système de connexion/inscription.
  • Créer différentes interfaces en fonction de qui est connecté (Simple utilisateur ou responsable).
  • Stocker les données des utilisateurs et des responsables à l’aide d’une base de données.
  • Gérer les flux d’information entre les pages.
  • Lier plusieurs langages, PHP pour l’affichage et la gestion du site, GLPK pour le système d’attribution des jeux et MySQL pour le stockage de données.
  • Créer un ensemble de fonctionnalités qui font le contenu du site (Faire et supprimer des vœux, voir les jeux disponibles et demandés, voir les informations de son compte…)

Le résultat final

Malgré les quelques problèmes mentionnés plus tôt et les nombreuses heures passées à débugger le site, nous sommes finalement parvenus à la version définitive qui répondait aux attentes du client. Ce site permet aux adhérents de la ludo-crèche de demander d’emprunter des jeux, de consulter toutes les informations dont ils ont besoin (infos personnelles, infos sur les jeux, consulter leurs vœux et leurs jeux attribués…). Ce site est surtout utile aux responsables de la ludo-crèche, car ils peuvent désormais obtenir directement une liste à jour des demandes d’emprunt, attribuer les jeux d’une manière presque optimale, bien meilleure que ce qu’ils auraient fait à la main et surtout bien plus rapidement. En plus du projet initial, nos clients nous ont demandé des fonctionnalités supplémentaires afin que ce site seul permette la gestion totale des prêts de jeu. Ainsi il leur permet aussi de gérer leurs stocks et de savoir où sont les jeux plus simplement. Notre site leur offre une archive de toutes les attributions précédentes, une liste de leurs membres et la possibilité d’avoir différents modes d’emprunts.

L’ensemble des jeux demandés par chacun, ainsi qu’un bouton qui s’occupe automatiquement de l’attribution qui aurait pris plusieurs heures à la main.
Un formulaire permettant l’ajout rapide d’un jeu

Conclusion

Ce projet était une expérience vraiment différente du genre de travaux que l’on a fait jusqu’à maintenant dans nos études. Ce qui nous a motivé à nous investir autant, c’est le fait de savoir qu’il serait vraiment utile et qu’il aiderait des personnes au quotidien. Ce projet a été l’occasion de se mettre dans la peau d’un professionnel et de concevoir un produit pour un client, d’autant plus que même après la date limite de réalisation du projet, nous accompagnerons nos clients pour s’assurer que tout fonctionne correctement. C’était aussi un bon entraînement à la programmation pour deux d’entre nous qui allons poursuivre nos études dans le domaine de l’informatique.

Polytech Angers – Projets PEIP2

Projet réalisé par Florian Louveau, Maxence Martin, Noé Cabaud-Bloquel.

Automate animé

Bonjour à tous, ce blog a pour but de vous présenter l’avancement de notre projet réalisé durant notre 4ème semestre du cycle préparatoire Peip à Polytech Angers. Nous sommes 4 acteurs sur ce projet, 3 étudiants ainsi qu’un professeur référent. L’objectif de ce projet est, comme son nom l’indique, de réaliser un automate animé. Celui-ci aura pour but de réaliser un mouvement naturel automatisé, et sans assistance extérieure.

1 – Le choix de notre automate

Tout d’abord, il a fallu choisir l’animal, l’objet à animer. L’idée d’un animal quadrupède nous est directement venue à l’esprit. N’étant pas le premier groupe à travailler sur ce projet, nous avons eu quelques sources d’inspiration. Je vous invite à aller regarder leur blog ainsi que leur compte-rendu, car certaines idées y sont reprises tandis que certaines erreurs y ont aussi été comprises. Chaque groupe s’est inspiré de l’ancien pour faire évoluer la qualité de ce projet. Pour revenir sur le choix de notre automate, Disney a aussi été une source d’inspiration étant donné que l’idée de ce projet vient de leur vidéo sur le sujet.

Automate en forme de tigre

Nous avons donc eu l’idée de partir vers le chien ou le chat, mais cela nous a paru trop classique. Nous avons donc pensé au dragon. Il a exactement les mêmes articulations que le chat. Cette démarche s’en rapproche donc énormément. Il sera donc facile de pouvoir modéliser son mouvement.

Exemples d’inspirations pour notre automate

2 – Modélisation du premier prototype

Pour commencer, nous avons dû modéliser le premier prototype de notre automate. Cela était une des parties les plus complexes de ce projet. Nous avons donc commencé par modéliser la patte arrière de notre automate, en s’inspirant d’un prototype de Disney.

Patte de Disney
Le plus difficile a été de trouver les bonnes dimensions de chaque bielle ainsi que le placement des différentes roues pour trouver le mouvement de la patte voulue.
Reproduction de patte de Disney

3 – Découpe et Assemblage du 1er prototype

Nous sommes ensuite passés à nos premiers tests, pour imprimer notre prototype nous avons utilisé la découpeuse laser présente au FABLAB. Pour l’utiliser, nous avons mis sur plan toutes nos pièces puis ajuster les bons paramètres de matériaux.

Fichier envoyé à l’imprimante
Imprimante laser du FABLAB
Prototype monté
Vidéo de notre prototype en mouvement

4 – Modélisation fonctionnelle de l’automate

Notre premier prototype étant fonctionnel, nous sommes passés à la modélisation de notre automate entier sur CAO sans nous soucier de son apparence.

Corps fonctionnel

5 – Amélioration du design

Après avoir modélisé notre automate fonctionnel, nous avons essayé de le rendre plus esthétique et de donner une forme plus réaliste aux différentes pièces.

Avant / Après :
Patte avant
Patte arrière
Nous avons également testé différentes manières pour graver des écailles sur nos pattes.
Impression des écailles en dégradé
Test de différentes écailles

6 – Modélisation et ajout des ailes

Pour ajouter un côté plus réaliste, l’ajout d’ailes au dragon était nécessaire. Pour ce faire, nous avons directement imaginé le mécanisme pouvant animer ses ailes pour le biais d’une roue engendrant une bielle qui elle-même met en mouvement l’aile. L’aile est quant à elle fixée par un support au corps de l’automate. Cette fixation permet de laisser pivoter l’aile sur l’axe voulu.

Nous avons ensuite donné un design à l’aile pour la rendre plus jolie.
Aile avant
Aile après

7 – Découpage et gravure de l’entièreté des  pièces

La prochaine étape pour nous était l’impression et la gravure de toutes nos pièces qui nous prit tout de même plusieurs heures.

8 – Assemblage final de l’automate

La dernière partie de ce projet aura été l’assemblage de l’automate en entier. Il nous a d’abord fallu assembler les 6 parties constituant le corps. 

Pour ensuite y ajouter les pâtes et les ailes. Entre temps, nous avons dû assembler l’ensemble des pattes avant et arrière avant de les lier au corps et aux engrenages.
La partie la plus dure de l’assemblage a été de lier le mouvement des engrenages avec le mouvement des roues comme vous pouvez le voir sur la photo ci-dessous.

Par la suite, il a fallu rajouter le mécanisme des ailes ainsi que les ailes elles-mêmes. L’assemblage des ailes était la partie la plus simple, elle est la seule à ne pas nous avoir causé de soucis.

Enfin, pour finir, il suffit de coller la tête sur le corps de notre dragon pour qu’il en soit vraiment un ! 

9 – Conclusion

Pour conclure, ce projet a été très intéressant et complet pour nous, en découvrant l’avancement de celui-ci, de sa création à sa réalisation. Il nous a permis d’utiliser une multitude de technologies de la CAO au simple tournevis en passant par la découpeuse laser. Malheureusement, nous n’avons pas réussi à le motoriser comme voulu au départ. Cela est dû au matériau choisi pour le corps de l’automate. Le bois utilisé étant trop souple, il ne nous a pas permis de fixer suffisamment la roue des pattes à leur engrenage, résultat de pattes non entraînées par le mouvement des engrenages. Cependant, nous sommes quand même fiers d’avoir pu créer un automate fonctionnel même si très fragile. 

Merci d’avoir pris le temps de lire notre blog

Robin JEULAND, Quentin CONANEC, Clément LE GALL

Bombe factice

L’objectif de ce projet était de réaliser une fausse bombe à désamorcer, un genre d’escape game, c’est à dire qu’une suite d’étapes doit être réalisée dans un certain ordre avec deux erreurs maximum pour finir le jeu. Pour cela, nous étions 3, avions 100 heures et une totale liberté des énigmes.

Mais pourquoi avons nous choisi ce projet?

Tout d’abord, nous recherchions un projet qui nous permettait de créer quelque chose de concret. Ensuite nous avions un attrait particulier pour la programmation et nous aimions manipuler les composants électroniques. C’est pour cette raison que lorsqu’on nous a proposé le projet de bombe factice, nous avons tout de suite adhéré à l’idée. Mais pour concrétiser notre projet, il nous a fallu passer par différentes étapes et surmonter quelques difficultés.

Intérieur de la version finale du projet

        Brainstorming

La première étape était le brainstorming. Durant les trois premières heures, nous avons d’abord discuté et débattu en groupe pour nous mettre d’accord sur la trame à suivre pour désamorcer la bombe ainsi que sur son apparence.

Trame à suivre pour désamorcer la bombe

        Recherche et commande

Ensuite, après cette étape de mise en commun des idées, nous avons créé une liste avec tous les composants nécessaires à la décoration ainsi qu’au bon fonctionnement de la bombe. On a donc commencé nos recherches pour trouver les composants. On s’est vite rendu compte qu’une modélisation 3D était primordiale. En effet, il existe des composants ayant la même fonction mais avec des tailles bien différentes. Or nous avions comme contrainte la taille de notre mallette. Donc, il fallait trouver les composants appropriés pour pouvoir garder une mallette de taille abordable. Une fois cette étape finie, nous avons envoyé notre liste à notre responsable de projet (Mr. Sébastien Lagrange). Il s’est occupé d’effectuer la commande. Après la réception des produits, nous devions entamer notre partie préférée : la manipulation.

Plan 3D de la mallette

        Programmation de chaque élément

Nous avons alors commencé à créer un programme pour réaliser la trame de désamorçage de la bombe. Pour cela, il nous a fallu prendre chaque élément indépendamment pour comprendre comment il fonctionne et ainsi pouvoir mieux le contrôler après. Durant cette étape, nous avons rencontré plusieurs défis à relever car nous avions seulement de petites bases sur le langage que nous utilisions (Arduino). Mais, à chaque fois grâce à nos recherches et à l’aide de nos professeurs, nous avons pu résoudre nos problèmes et finaliser ce code.

Exemple de code, ici, une partie du code du jeu du Simon

        Création de l’intérieur de la mallette

Pour la création de l’intérieur de la mallette, nous avons utilisé plusieurs machines et plusieurs procédés de fabrication (par exemple l’impression 3D , le découpage par laser et l’impression de stickers). Le but premier était de maintenir les composants et de rendre l’intérieur de la mallette esthétique pour qu’ elle ressemble à une bombe à désamorcer. Nous avons donc par exemple rajouté une fiole contenant un liquide fluorescent. Ensuite, nous avons découpé une tablette pour fixer tous les composants et cacher la partie électronique. Nous avons réalisé le montage , et nous avons fait les soudures sur la carte électronique. Nous avons bien sûr aussi peint.

        Création de la carte électronique

La création d’une carte électronique était obligatoire pour éviter de garder les breadboards (plaquettes permettant de connecter facilement des fils), qui sont uniquement destinés aux prototypes. Nous avons donc dessiné le schéma d’une carte électronique. Cependant, des camarades sont venus nous prévenir que nous ne respections pas des règles obligatoires (la taille des pistes par exemple) pour que la machine puisse la découper. Une nouvelle version a donc dû être faite. Or cette fois ci, c’est un professeur qui nous a indiqué encore d’autres problèmes, comme des pistes trop proches. La troisième et dernière version fut la bonne. Après un bon moment de soudage des connecteurs, nous avons pu passer à l’assemblage.

        Assemblage

L’assemblage a été une étape plus longue que prévue. En effet, nous nous imaginions que nous allions simplement mettre tous les modules d’épreuve dans la mallette et que cela allait fonctionner au premier essai. En réalité, nous avons eu un certain nombre de problèmes, comme les boutons lumineux qui ne fonctionnaient plus, l’écran qui n’affichait plus rien et a donc dû être changé ou encore des fils qui s’arrachaient lors de la fermeture de la mallette. Ces derniers problèmes ont pu être résolus, rendant ainsi notre projet fonctionnel.

Dernières soudures avant de tout faire rentrer dans la mallette

Bilan

Nous sommes tous très fiers du travail que nous avons réalisé ainsi que du produit fini. En effet, pendant toute la durée du projet, nous nous sommes bien entendus et nous avons plutôt bien réparti les tâches entre chaque membre du groupe. De plus, le produit final est esthétique, aéré et agréable à manipuler. Il respecte le cahier des charges que nous nous sommes fixé au début du projet, à l’exception de l’énigme qui devait permettre d’ouvrir la mallette. Nous avons décidé de ne pas la mettre en place en cours de création car cela ne nous paraissait plus intéressant. En effet, cela nous aurait obligé à afficher quelque chose au-dessus de la mallette et nous avons pensé que cela serait plus judicieux de laisser la mallette comme nous l’avions reçue.

Merci de nous avoir lu

Matthias LEHOUELLEUR
Alan MARTINIER
Maël JUGDE