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 :

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.

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

Banc d’essai pour une pompe à chaleur thermoacoustique

Bonjour à toutes et à tous !

Nous sommes Maël, Hugo et Nathan, trois étudiants en deuxième année du cycle préparatoire à l’école Polytechnique de l’Université d’Angers.

Avant toutes choses nous tenons à remercier toutes les personnes qui ont contribué à la réalisation de ce projet.

Nous voudrions dans un premier temps remercier, Rima AL ARIDI et Bassel CHOKR, les deux doctorants que nous avons assisté pendant ce projet et qui nous ont appris de très nombreuses notions avec une grande pédagogie malgré la barrière de la langue. Nous les remercions aussi pour leurs conseils, leur bienveillance et leur patience.

Ensuite nous voudrions remercier Hassan BOULJROUFI, assistant ingénieur électronique, pour son expertise sur la partie électrique et électronique du projet ainsi que pour ses nombreux conseils vis-à-vis de l’apprentissage de LabVIEW, de la réalisation de notre rapport et de notre rôle en tant qu’étudiant de deuxième années.

Enfin nous remercions Thierry LEMENAND, enseignant chercheur et responsable du projet, pour nous avoir donné la possibilité de travailler avec toutes ces personnes au sein de ce projet qui nous dépasse en tant qu’étudiant de deuxième années.

Contexte :

Lorsque l’on parle des principaux secteurs émetteurs de gaz à effet de serre, on évoque souvent le secteur du transport ou celui de l’industrie. Pourtant il existe d’autres secteurs occupant une part importante des émissions de gaz à effet de serre, comme le secteur du bâtiment. En effet, d’après les chiffres du Ministère de la transition écologique, ce secteur représente 23% des émissions de gaz à effet de serre en France ainsi que 43% des consommations énergétiques annuelles françaises. Afin de réduire cet impact, il est donc impératif de rénover les bâtiments mal isolés ou de favoriser l’installation de systèmes énergétiques plus performants et plus sobres, comme la pompe à chaleur.

Cependant, la pompe à chaleur actuelle n’est pas un dispositif parfait en termes d’émissions…

Pourquoi la pompe à chaleur classique présente une imperfection majeure ?

En effet, afin de fonctionner correctement, la pompe à chaleur thermodynamique doit utiliser des fluides frigorigènes car ces fluides permettent de transférer les calories extérieures à l’intérieur de l’habitation en utilisant le principe de compression / décompression. Ces fluides ayant un potentiel de réchauffement très élevé, en comparaison le CO2 a un potentiel de 1, car c’est l’unité de référence créée par le GIEC, tandis que le fluide R32, le plus utilisé pour les pompes à chaleur, en a un de 675, selon l’AFCE.

Heureusement des solutions pour remédier à ce problème existent !

Le projet ARKTEA

C’est donc pour faire disparaître les émissions dues aux fluides frigorigènes que le projet ARKTEA est né. Ce projet est le fruit d’une alliance de 4 entreprises françaises :

Arkteos, spécialiste dans le fabrication de pompes à chaleur
Equium, spécialiste dans le développement de pompe à chaleur thermoacoustique
ADNE, une bureau d’étude spécialisé dans différents domaines de la Physique
Laris, créateur du banc d’essai pour la pompe à chaleur

Le son au service l’environnement

Afin de remplacer les fluides frigorigènes et leur rôle au sein de la pompe, l’entreprise Equium a donc décidé de développer une pompe à chaleur utilisant le principe de la thermoacoustique. En effet, tout son est un mouvement d’ondes et comme on peut le voir sur l’animation suivante, ces ondes effectuent un mouvement de compression et de décompression ce qui permet de produire à la fois du chaud et du froid, tout comme les fluides frigorigènes :

Animation thermoacoutique

Bien évidemment, ce principe est naturel et n’émet quasiment pas de gaz à effet de serre.

“On pourrait se libérer de la menace climatique qui pèse sur nos têtes en changeant les règles du jeu, maintenant, en favorisant les écotechnologies comme la thermoacoustique.”

cédric françois, fondateur d’equium, TED x Rennes

Pourquoi trois étudiants de Polytech Angers ont un rôle à jouer dans ce projet ?

Comme dit précédemment, le laboratoire Laris participe à ce projet avec la création d’un banc d’essai pour la pompe à chaleur.

Ce banc constitue le projet de thèse de deux doctorants Libanais, Bassel et Rima. En tant qu’étudiant de deuxième année, nous avions plusieurs objectifs sur ce projet dont deux principaux. La première partie de notre travail consistait à réaliser l’acquisition de plusieurs températures et plusieurs voltages. Ces données sont issues de sondes de températures appelées PT100 et de débitmètres. Pour la deuxième partie principale, il nous était demandé de contrôler une résistance chauffante et notamment de la maintenir à une certaine température. Enfin, pendant toute la durée du projet nous avons été amenés à réaliser différentes tâches manuelles en plomberie et en électricité.

LabVIEW : un logiciel multitâches et très puissant

Afin de réaliser nos deux tâches principales, nous avons utilisé un logiciel de National Instruments nommé LabVIEW. Contrairement à d’autres langages de programmation comme le Python ou le langage C, la programmation sur LabVIEW s’effectue de manière beaucoup plus visuelle avec des blocs reliés entre eux.

On peut constater cela avec l’exemple suivant, illustrant la relation des gaz parfaits :

Programme LabVIEW illustrant la relation des gaz parfaits

Un programme LabVIEW est constitué de deux parties avec le block diagram comme ci-dessus et le front panel comme ci-dessous.

Acquérir des données et les classer avec LabVIEW

Afin de récupérer les différentes données de notre banc d’essai, nous avons donc construit un programme LabVIEW.

Pour commencer, nous avons réalisé une horloge permettant de définir la durée d’acquisition.

Programme LabVIEW permettant de donner une durée à l’acquisition

Ensuite, nous devions récupérer les données. Pour cela nous avons utilisé, sur le banc, des cartes d’acquisition liées aux différents capteurs de données et le module DAQ assisant sur LabVIEW.

Cela nous a permis de transférer les données du banc d’essai vers l’ordinateur.

Après cela, nous devions convertir ces données en tableau pour les classer dans un fichier Excel. Pour cela, nous avons donc utilisé ces deux premières parties du programme général.

Ici on cherche à récupérer la moyenne des valeurs de chaque capteur pour avoir une seule valeur toutes les x secondes.

Cette partie du programme nous permet ici de créer une colonne de tableau pour chaque données avec un nom associé.

Les deux programmes ci-dessus sont donc répétés autant de fois que nous avons de capteurs, soit huit.

Enfin, nous avons relié ces sept parties du programme à un module nommé “Write to measurement file” pour créer le fichier Excel avec les données.

Contrôler une résistance chauffante avec LabVIEW

Pour cette partie, il nous était demandé de maintenir à une certaine température une résistance chauffante présente sur la banc d’essai. Cette résistance a pour but de chauffer l’eau en provenance de la pompe à chaleur.

Photo de la résistance chauffante

Pour contrôler cette température avec LabVIEW, nous avons utilisé le principe de la régulation. Pour illustrer ce qu’est la régulation, nous pouvons prendre l’exemple d’un régulateur de voiture. En effet, lorsque l’on souhaite que notre voiture roule à 110 km/h, l’ordinateur de bord va calculer la puissance que le moteur va devoir délivrer afin de maintenir la vitesse désirée selon la forme de la route par exemple.

Pour en revenir à notre projet, nous avons conçu un programme LabVIEW utilisant le module de régulation PID ( Proportionnel Intégrale Dérivée) présent sur la version améliorée du logiciel.

Grâce à ce programme, nous pouvons chauffer notre résistance à la température souhaitée et en optimisant les paramètres de PID, avoir une régulation des plus optimisées.

Front panel associé au programme précédent, permettant d’optimiser la régulation

De la plomberie et de l’électricité

Pendant toute la durée du projet nous avons été amenés à réaliser différentes tâches en plomberie et en électricité.

Pour la partie plomberie, nous avons pu changer de nombreux tuyaux, gérer des fuites et surtout éponger le sol !

En ce qui concerne la partie électricité, nous avons participé au branchement des cartes NI ainsi qu’à la réalisation d’un relais statique ou encore l’ajout d’un écran sur les débitmètres.

Quels apports pour nous ?

Ce projet a été pour nous l’occasion de développer de nombreuses compétences comme la gestion d’un projet avec les imprévus qui vont avec, l’achat de composants ou encore la pratique de l’anglais scientifique tout au long du projet.

Ce projet nous a aussi permis de visualiser une application directe de la thermique, de l’électricité ou encore de la mécanique des fluides.

Aux étudiants de première année à Polytech Angers, nous vous invitons à choisir un projet comme le notre car cela vous permettra d’effectuer de nombreuses tâches variées dans différents domaines

Merci pour votre lecture !

Tri de pièces automatisé par détection photo par le Dobot Magician

Bonjour la poly-communauté !

Bienvenue sur cet article qui parle de notre projet, 100 heures dédiées à ce projet, 100 heures de réflexion, d’enthousiasme, de discorde mais surtout 100 heures d’un travail collectif abouti. L’idée de commencer ce projet nous excitait beaucoup et les premières discussions avec notre professeur encadrant : Monsieur BOIMOND, nous ont directement mis dans le bain et nous avions hâte de commencer. Notre professeur encadrant nous a directement donné sa confiance en nous prêtant un robot Dobot Magician.

Attendez !!

On vous parle de notre robot mais dans l’euphorie on ne vous a pas encore présenté notre objectif.

En effet, notre projet consiste à trier des pièces selon leur couleur, une caméra dont le repère sera fixe à celui du robot devra visualiser les pièces à trier ainsi que les zones de décharges. Ensuite le robot devra donc emmener chaque pièce au bon endroit. Pour réussir cela, il nous fallait quelques bases et prérequis. La robotique et la programmation qui y est associée nous étais complètement étrangère, pour rectifier cela, notre encadrant nous a donné des travaux pratiques de robotique ainsi que son cours afin de nous aider à découvrir le domaine, le sujet et le robot ainsi que ses utilisations. Ensuite nous devions inventer un moyen de fixer notre caméra à notre robot et enfin nous devions passer à l’étape la plus primordiale : la programmation finale.

Nos pièces sont des cubes RGB de 1 cm de côté et nos zones de décharges seront comme ci-dessous, la visualisation de la caméra se fait sur un format A4.

En essayant de réaliser ces travaux pratiques, nous nous sommes dépêchés afin de commencer la programmation car nous pensions être prêt et avoir tout compris. Cependant en se précipitant, on se retrouvait souvent complètement bloqué sans avoir vraiment compris ce que nous avions fait. C’est à ce moment-là que Monsieur BOIMOND nous a mis en garde en nous rappelant qu’il était important de comprendre comment cela fonctionnait afin de pouvoir le faire nous-même dans la programmation. Cela nous a été très bénéfique et nous avons finalement avancé plus vite après coup. Il nous a dit :

Il ne faut pas confondre vitesse et précipitation.

Une fois sur la bonne voie, nous avons réfléchi à un moyen de fixer notre caméra, le plus simple nous semblait être la réalisation d’une pièce en CAO. Ce n’était pas simple car nous devions trouver l’endroit parfait et le moyen le plus facile, la visualisation de la caméra devait être claire, sans avoir d’obstacles devant comme un bout de robot ou notre pince. Nous sommes parti sur une première pièce, qui s’est avérée être pratique et qui correspondait parfaitement au cahier des charges, cependant nous avons reprécisé certaines côtes et enlever un morceau qui gênait un peu lors de notre 2ème version.

Ainsi voici notre pièce finale :

Voici notre support monté sur le robot avec la pince. Ici le robot est en condition d’utilisation.

Ensuite logiquement nous avons entamé la programmation en python pour contrôler notre robot. Pour commencer il nous fallait détecter les cubes et les zones de couleur pour connaître leurs coordonnées. Pour cela nous avons créé un masque autour de la feuille et appliqué des filtres pour détecter les nuances de couleurs.

Détection des cubes
Détection des zones

Par la suite nous allons expliquer notre codage pour la couleur rouge puisque l’idée est la même pour les autres couleurs.

D’abord  nous avons codé pour connaître les coordonnées des cubes en pixels que nous avons converti en mm par calcul.

Puis effectuer la même chose pour les zones de couleurs. 

Enfin nous avons codé le déplacement du robot de la manière suivante : 

  • Le robot va aux coordonnées de notre premier cube et se place à 30 pixels au-dessus.
  • La pince s’ouvre
  • Ensuite il descend au niveau de la feuille 
  • La pince se ferme
  • Puis une étape transitoire où il se déplace à des coordonnées se rapprochant de la position de base du robot
  • La seconde phase du déplacement débute avec le mouvement du robot au centre de la zone rouge
  • La pince s’ouvre pour libérer le cube
  • Le robot remonte de 30 pixels
  • Retourne aux coordonnées proches de sa position de base
  • Puis la pince se referme

Tadam ! Voilà le résultat !

PS : N’hésitez pas à mettre la vidéo en plein écran et en 1.5 pour une expérience optimale.

Voici donc le fruit de 100 heures de travail

Réussir ce projet a sûrement été l’une des choses les plus satisfaisantes de nos deux années à polytech. Il nous a apporté beaucoup de nouvelles connaissances, notamment en robotique et en programmation. Cependant, ce n’est que la première version d’un projet qui peut être optimisé. En effet, il y a encore quelques axes d’amélioration pour que ce système automatisé soit opérationnel en toutes circonstances. notamment au niveau du contrôle de la pince pour l’axer avec les cubes. Mais aussi la possibilité d’effectuer une nouvelle détection à chaque tri d’une pièce au cas où un cube n’aurait plus la même position. 

Ainsi cette version finale et autonome pourrait être utilisée dans plusieurs domaines de l’industrie. Logiquement, on pense au tri de pièces au premier abord. Cependant, dans un aspect écologique cela pourrait être utile pour recycler les matériaux en fonction de leur couleur ou de leur forme. Cela entraînerait un gain de temps considérable pour l’Homme, et l’opportunité d’agir sur d’autres fronts pour notre planète.

Merci à vous d’être parvenu jusqu’ici !!

Nicolas BESSON – Nicolas BAUDUZ – Arnaud WACHOWIAK

Projet PEIP 2A – Robot 5R

La PlotClock

Bonjour à tous !


L’objectif de ce projet est de réaliser une Plotclock où le robot a pour tâche d’écrire l’heure en temps réel. Ce robot fonctionne avec deux bras, composés tous les deux de deux avant-bras, reliés entre eux au niveau de la tête d’écriture. Les deux bras sont dirigés de manière à dessiner l’heure sur l’écran à l’aide de servomoteurs.

Notre robot est équipé, en tête d’écriture, d’une LED UV pour écrire l’heure sur l’écran phosphorescent. Après que le robot est affiché l’heure grâce à la LED UV, elle s’efface toute seule, avec le temps.


Voici quelques étapes de la conception de notre robot en passant par la CAO, la programmation, l’électronique et bien sûr quelques problèmes rencontrés.


Notre projet a débuté par une phase de recherche

Avant de nous lancer dans la conception de notre robot, nous avons cherché à comprendre comment un robot 5R fonctionne. Pour cela, nous avons fait de nombreuses recherches sur la cinématique inverse, les angles que les servomoteurs doivent réaliser afin que la tête d’impression aille aux coordonnées cartésiennes que nous souhaitons. Pour cela nous avons fait des simulations avec les servomoteurs sur TinkerCAD pour comprendre comment manipuler les servomoteurs et comment fixer les angles afin de pouvoir maîtriser les mouvements des bras.

Simulation des servomoteurs avec potentiomètres à l’aide du logiciel TinkerCAD

Après ces essais et de nombreux schémas, nous sommes parvenus à établir trois fonctions qui seront utiles pour déplacer les bras aux coordonnées souhaitées :

//consine formula function
double cosineRule(double a, double b, double c) {
    return acos((sq(a)+sq(c)-sq(b))/(2*a*c));
}

//distance computation macro 
#define dist(x,y) sqrt(sq(x)+sq(y))

//atan2 formula macro 
#define angle(x,y) atan2(y,x)


Conception de notre robot sur SolidWorks

La deuxième étape est de concevoir notre robot sur Solidworks. Nous avons modélisé les bras, les avant-bras, le socle et son couvercle. Le socle, le robot en lui-même, contient les servomoteurs ainsi que le ruban phosphorescent qui a été placé dessus. Lors de la modélisation des bras, nous avons fait face à un problème majeur. En effet, lors de la première impression, les bras et les avant-bras étaient de la même taille, en plus d’être trop long. En faisant des essais avec les servomoteurs, nous nous sommes rendus compte qu’à cause de leur taille, les bras allaient trop facilement dans leur position limite. C’est-à-dire comme le montre l’image suivante :

Voici quelques vues de nos bras, de notre socle et enfin de l’assembage de notre robot avant l’impression, après avoir rectifier le problème rencontré :

Modélisation du bras 1
Modélisation du bras 2

Ce bras ci-dessus (bras 2) est un peu plus épais que les autres afin qu’on puisse garder la tête d’écriture parfaitement parallèle par rapport à l’écran de ruban.

Modélisation du bras 4 (avec la tête d’écriture)
Vidéo de l’impression 3D des bras du robot
Modélisation du socle
Vidéo de l’impression 3D du socle de notre robot

Après avoir modélisé chaque pièce une par une, nous les avons assemblées afin de mieux visualiser notre robot final.

Modélisation de l’assemblage complet

Assemblage & programmation de notre robot

Ensuite, une fois l’impression terminée, les bras réimprimés plus petits, nous avons assemblé chaque composant entre eux, collé le ruban adhésif phosphorescent sur le robot, fixé les bras sur les servomoteurs. Après avoir reçu tous nos composants dont le module horloge afin d’écrire l’heure correctement, nous avons soudés et connectés les câbles sur la carte Arduino.

Voici une image de notre robot avec tous les câbles assemblés. Sur l’image de droite, vous pouvez voir un schéma de l’assemblage sur TinkerCad afin de mieux visualiser les branchements de chaque composant.

À partir de ce moment-là, nous devions essayer le programme que nous avions développé en même temps que la modélisation et l’impression. Lors du lancement de notre programme, le robot affichait l’heure mais à l’envers c’est-à-dire en mode miroir (comme vous pouvez le voir sur la vidéo ci-contre). Nous avions donc un problème avec notre repère des coordonnées. En effet, en faisant de multiples tests, nous avons compris que le sens de l’axe des x était inversé.

Après avoir identifié le problème, nous devions le corriger dans notre programme, inverser le sens des chiffres, mais aussi inverser le sens de l’écriture. Nous avons donc modifié les coordonnées de chaque chiffre et nous avons repensé leur position sur l’écran d’écriture. Dû au fait d’une calibration non parfaite, des petits réglages ont été effectués pour que les chiffres soient droits. Prenons l’exemple du chiffre 2 :

Avant l’ajustement :

 case 2: 
            digitStart(0,3/4);
            digitArc(1/2,3/4, 1/2,1/4, 1/2, -1/8);
            digitArc(1,0, 1,1/2, 3/8, 1/2);
            digitMove(1,0);
            break;

Après l’ajustement

case 2: 
            digitStart(1,3/4);
            digitArc(1/2,3/4, -1/2,1/4, 1/2, -1/8);
            digitArc(0,0, -1, 1/2, 3/8, 1/2);
            digitMove(0,1/4);
            break; 

Pour finir, pour que notre robot soit autonome, nous avons ajouté une batterie. De plus, nous voulions mettre un interrupteur afin qu’on puisse éteindre l’alimentation de notre carte Arduino pour que la batterie dure plus longtemps. Nous nous sommes vites rendus compte que notre module horloge devait être alimenté en continue pour qu’il écrive l’heure en temps réel. Notre projet de mettre un interrupteur n’était donc pas possible avec ce module horloge. Il existe d’autres modules horloge qui possèdent une pile intégrée afin qu’ils restent constamment alimenter pour qu’ils ne perdent pas l’heure. Nous avons donc décidé de mettre des piles rechargeables 6V de 1600mA pour éviter qu’elles ne se déchargent trop vite.


Bilan & Critiques

Ce projet a été très enrichissant et intéressant. Nous avons pu mettre à profit de nombreuses compétences notamment en conception mais aussi en électronique, en électricité et en programmation. La partie la plus dure a été la programmation avec un langage qui était nouveau pour nous.

De plus, nous avons appris à être autonome et prendre des décisions dans un projet de A à Z. Savoir se débrouiller face à différents problèmes et ne pas abandonner sont aussi deux points importants dans un projet. De plus, le travail d’équipe est une compétence essentielle pour le bon déroulement d’un projet. Nous avons donc dû savoir s’écouter entre coéquipier, exprimer chacun ses idées. Nous n’étions pas forcément toujours d’accord sur certaines choses mais en discutant ensemble, nous trouvions toujours un compromis.

Notre robot n’est qu’un prototype, il y a donc certaines choses à améliorer comme l’alimentation de la carte Arduino ou bien le module horloge. De plus, nous pourrions développer davantage notre programme pour qu’il est différente fonctionnalité comme écrire la date ou dessiner quelque chose demandée par l’utilisateur. Pour aller plus loin, développer une application pour le diriger depuis son portable pourrait être intéressant afin d’avoir de multiples fonctionnalités.

Nous tenons à remercier notre référent, M. LAGRANGE, pour nous avoir aider et guider tout au long de ce projet.

Merci pour votre lecture !!!

Mohamad DEIRI / Méline TARLEVE

Virtual House

Introduction :

Le réchauffement climatique est de plus en plus alarmant et d’après les scientifiques, nous sommes la dernière génération à pouvoir inverser cette tendance. Les émissions de CO2 sont trop importantes et entraînent la planète vers un réchauffement désastreux de +3°C. Cependant, il est encore possible d’inverser la tendance en transformant radicalement l’économie et en plafonnant ces émissions. Pour ce faire, il est important que chacun prenne conscience de son impact sur l’environnement, que l’on soit un professionnel ou un particulier.

Dans ce projet « Virtual House », nous avons souhaité limiter notre étude aux particuliers, afin que nos propositions soient les plus adaptées possibles, que les prises de conscience soient les plus importantes et que les changements soient effectifs. Notre objectif est donc de sensibiliser chaque particulier sur son comportement vis-à-vis de sa consommation d’énergie et du changement climatique actuel. Ainsi, nous nous sommes focalisés sur l’utilisation des équipements électroménagers et de leur impact, afin de montrer à l’utilisateur qu’il est possible de réduire son impact sur l’environnement par des gestes simples. Notre projet cherche à répondre à la problématique sous la forme d’une prise de conscience interactive et ludique, tout en restant instructif afin de permettre d’apprendre à mieux consommer.

Le projet :

1/ La conception de la maison

Une des premières réalisations du projet a été l’environnement de l’utilisateur et donc la maison. Le maquettage a permis d’obtenir :

Maquettage du RDC et de l’étage

Puis, à l’aide de nos premières compétences Unity et des « Préfabs » à notre disposition, nous avons pu créer et meubler la maison pour obtenir une première modélisation :

Extérieur de la maison et exemple d’une pièce de la maison

Nous avons pensé notre maison afin de refléter la réalité et rendre l’expérience plus immersive. Par la suite, nous avons ajouté nos éléments importants : les équipements interactifs.

Les éléments interactifs sont repérables par les cercles rouges

2/ L’utilisateur et ses mouvements : le déplacement et le champ de vision

Les équipements de la maison sont interactifs grâce à des scripts qui permettent à l’utilisateur d’interagir avec eux.

Le premier exemple d’interactivité est la maison elle-même. Cet équipement est interactif puisque l’utilisateur peut s’y déplacer. Le clavier permet les déplacements avant, arrière et latéraux, et la souris permet un mouvement de la tête et donc du champ de vision : vers le haut, le bas, la droite et la gauche.

La fonction Update permet le déplacement par le calcul des positions « curSpeedX » et « curSpeedY », ainsi que la direction choisie : « moveDirection ».

Un second exemple est le champ de vision de l’utilisateur. L’intérêt est de définir ce que « regarde » l’utilisateur afin d’interagir avec l’environnement. Nous avons décidé d’utiliser un raycast. Un raycast est un rayon qui permet de récupérer les informations relatives à chaque objet traversé par celui-ci.

Raycast

Dans l’exemple ci-contre, le raycast est représenté par le trait rouge (ici émis par la tête de notre utilisateur et représentant ses yeux) pointant dans la direction dans laquelle il regarde.

Ce rayon n’est pas visible par l’utilisateur.

Ainsi, le rayon traverse l’équipement (exemple un interrupteur) seulement si l’utilisateur regarde ce dernier. Une étiquette « Player » est définie pour l’utilisateur et permet d’interagir avec l’équipement uniquement lorsque le raycast rencontre un équipement ayant une étiquette « Interaction ».

Enfin, si l’utilisateur cesse de regarder l’interrupteur, il retrouve alors l’étiquette « Player1 ». Ainsi l’utilisateur peut interagir avec l’interrupteur uniquement s’il est dans la zone définie et qu’il regarde l’interrupteur.

Le code ci-dessous permet de transcrire cela :

Script de la création du raycast

3/ Les équipements interactifs

Un exemple d’interaction est la possibilité pour l’utilisateur d’allumer et d’éteindre les lumières. Cela permet de comparer les consommations d’un équipement en marche ou à l’arrêt.

L’image ci-dessous présente les trois états d’un bouton : à l’arrêt, dans le champ de vision de l’utilisateur (avec la possibilité de l’actionner) et le bouton actionné.

Bouton à l’arrêt, dans le champ de vision et actionné

Pour réaliser cette interaction, nous avons écrit le script suivant :

Script d’interaction avec les lumières

Ainsi, nous avons réalisé des scripts pour : le mouvement des portes, la télévision et les ordinateurs, le lave-linge, les toilettes, la douche, les robinets, la baignoire…

4/ La sensibilisation

Pour rappel, notre objectif est que l’utilisateur puisse constater la consommation d’un équipement afin d’y être sensibilisé et de modifier son comportement dans le but d’agir pour la planète et aussi peut-être pour ses économies.

Afin de réaliser cela, nous avons dans un premier temps recensé, pour chacun des équipements, ses consommations d’électricité et/ou d’eau moyennes par jour ou par année. Puis, afin d’améliorer la compréhension de l’utilisateur, nous avons placé ces calculs dans un contexte (celui d’un couple sur une semaine) et proposé un scénario à l’utilisateur :

Scénario proposé à l’utilisateur

De même, nous avons agrégé les besoins en chauffage en regroupant les déperditions de chaque paroi et les apports de chaleur, tout en prenant en compte le rendement du système de chauffage. Nous avons par la suite codé afin de retranscrire ces données.

Script de calcul de l’onglet simulation

Enfin, nous avons ajouté une interface afin de modifier et visualiser ces données et calculs.

Aperçus de l’onglet simulation

Conclusion :

Ce projet répond aux attentes mais est bien sûr perfectible. Nous aurions aimé implémenter un mode réalité virtuelle afin d’améliorer le côté ludique de notre projet. De même, nous pensons qu’il serait intéressant d’intégrer un fichier météo, et de permettre le choix d’une température de consigne dans le bâtiment. Cela améliorerait la qualité des scénarii. Enfin, un code couleur de consommation pourrait faire ressortir les équipements gourmands.

Virtual House, un projet réalisé par Mathys Chien Chow Chine, Antonin Geille, Léo Moncoiffet et Mathis Nagmar, Peip2

Lien du compte rendu : https://files.u-angers.fr/data/f-e20a3117fec1991c.pdf

Lien d’une vidéo de présentation : https://youtu.be/vXtRVafyJbQ

Tri de pièces avec le robot dobot magicien et une caméra embarquée

Salut les polypotes !

Nous sommes Matis LEMOINE, Simon BODIN, Schawal BACAR et Corentin PICCIN, étudiants en deuxième année de cycle préparatoire intégré à Polytech Angers. Pour notre quatrième semestre, nous sommes amenés à mettre en œuvre un projet, de A à Z encadré par un professeur de robotique industrielle : Jean-Louis Boimond.

Polytech Angers a acquis récemment en plusieurs exemplaires du robot DOBOT Magician, conçus par des fabricants de robots industriels, permettant l’apprentissage de la robotique industrielle. Le projet a pour objectif de fixer une caméra sur le bras du robot pour permettre la localisation des pièces en vue de les trier selon leurs couleurs.

Nous avons choisi ce projet car il nécessite des compétences en programmation, Solidworks, domaines qui nous attirent et dans lesquels nous sommes complémentaires.

Introduction

Aujourd’hui l’accroissement de la complexité des tâches à accomplir par les robots industriels est tel que les applications de la robotique en entreprise et dans les autres secteurs réclament que l’organe terminal des robots (ventouse, pince, laser, …) ait un niveau élevé de précision. Dans notre cas nous nous sommes occupés de la localisation, la manipulation puis le tri des pièces par le robot. Deux options sont classiquement adoptées, soit la caméra est disposée à un endroit fixe par rapport au robot soit elle est fixée directement sur le bras du robot. Pour notre part nous avons choisi de fabriquer un support pour fixer la caméra au robot.

Pour mener à bien notre projet, nous avons dû passer par plusieurs étapes de travail, allant de la réflexion et l’apprentissage jusqu’à la mise au point d’un programme fonctionnel :
– prise en main du robot Dobot et son logiciel;
– création par impression 3D d’une interface permettant de fixer la caméra sur le bras du robot;
– le traitement des images issues de la caméra;
– programmer le robot pour permettre le déplacement et le tri des pièces;

Robot Dobot Magician

1) Prise en main du robot Dobot et de son logiciel

Le robot Dobot Magician est le robot éducatif parfait car il possède de nombreuses fonctionnalités accessibles via son logiciel « DobotStudio » très intuitif. Le robot est muni d’un bras robotisé modulaire de grande précision programmable via une liaison USB. Dans un premier temps nous nous sommes familiarisés avec le robot.

 Caractéristiques du bras de robot Dobot

Pour comprendre le concept du robot, notre professeur nous a fait travailler sur des travaux pratiques d’élèves de troisième année en Systèmes automatisés et génie informatique. Ceci nous a permis de découvrir le fonctionnement de la caméra. À côté du robot, nous avons dessiné sur une feuille 2 cercles noirs. Nous avons fait en sorte que le repère du robot et de la feuille soient colinéaires. Ainsi il suffira simplement d’ajouter la distance entre les deux repères pour avoir les coordonnées dans le repère du robot. Puis grâce à une programmation PYTHON la pointe du stylo située à l’extrémité du bras du robot se place aux coordonnées du centre des cercles qui ont été obtenues par la caméra fixée sur un trépied.

Détection des cercles grâce à la caméra et contre des cercles pointés par le rayon

2) Création par impression 3D d’une interface permettant de fixer la caméra sur le bras du robot

Nous avons ensuite remplacé le crayon par une pince car le but était de saisir des cubes. Il a fallu pour cela concevoir par impression 3D un support permettant de fixer la caméra au bras du robot.

Nous avons fabriqué un 1er prototype sur Solidworks mais la caméra n’était pas dans l’axe de la pince ce qui rendait l’action du robot très imprécise.

Nous avons alors créé une deuxième pièce afin d’avoir l’axe de la caméra dans l’axe du robot et plus haute pour obtenir un espace d’action plus large. Malheureusement, le rayon d’action du bras était inférieur à l’espace perçu par la caméra. Cela n’avait pas d’intérêt.

Deuxième prototype

Il a donc fallu fabriquer une 3ème pièce qui cette fois a fonctionné.

Troisième prototype

3) Le traitement des images issues de la caméra

Pour la détection des cubes et de leur couleur, nous nous sommes concentrés d’abord sur la couleur bleue. Pour obtenir les coordonnées des cubes à partir de l’image prise par la caméra, il va falloir effectuer plusieurs étapes de traitement de l’image. Nous allons effectuer toutes ces étapes dans notre programme en python. Cela nous a permis de récupérer les coordonnées du cube pour que la pince puisse ensuite le saisir. Nous avons fait la même chose pour les cubes vertes et rouges.

Nous nous sommes rendus compte que la détection nécessite une bonne luminosité. Nous avons compris que l’éclairage doit être uniforme dans toute la zone pour éviter les zones d’ombre et ainsi bien repérer tous les cubes. Nous nous sommes donc procurés une lampe.

4) Programmer le robot pour permettre le déplacement et le tri des pièces

Ensuite, notre objectif était que le robot range les cubes dans les zones de leur couleur correspondante. Pour cela, il ne devait pas confondre les coordonnées des cubes et celles de leur zone de rangement. Il a donc été nécessaire de réaliser des zones de rangement plus grandes que les cubes pour que la pince puisse bien repérer les cubes et les positionner au bon endroit. Une fois les coordonnés des cubes et des zones de rangements récupérés, nous avons programmé le robot afin par exemple qu’il saisisse une pièce bleu et qu’il la dépose dans la zone de rangement bleue.

Bilan

Grâce à l’importance de la communication et du travail d’équipe au sein de notre groupe, nous avons réussi à atteindre notre objectif. Notre robot effectue les tâches qui nous avaient été confiées en début de projet. Ce projet nous a d’autre part permis de développer nos compétences en CAO, en programmation et surtout nous a offert des connaissances en robotique. Nous tenons à remercier encore une fois toutes les personnes ayant contribué et encadré ce projet.

Merci pour votre lecture !
Corentin, Matis, Simon et Schawal

Création d’un robot magicien

Bonjour et bienvenue à vous sur cet article.

Nous sommes Manon Boursicot et Anthonin Devas, deux étudiants de deuxième année à Polytech Angers et comme tous les deuxième année ici, nous devions travailler sur un projet durant une centaine d’heure pendant notre second semestre.

Nous avons choisi en tant que projet de travailler sur un robot, mais pas n’importe quel robot. En effet, notre projet est de créer un robot magicien. Ce robot pourrait servir à Polytech en tant que représentant des projets de deuxième année lors des forums ou portes ouvertes car c’est un projet que l’on peut montrer facilement. Ce projet a été inspiré par un robot existant créé par Mario the Maker Magician dont vous pouvez retrouver des vidéos sur YouTube, comme celle-ci par exemple : https://www.youtube.com/watch?v=WYQEZXXEfhc

Nous n’avons malheureusement pas réussi à terminer notre projet mais nous allons tout de même vous le présenter et vous en parler.

Maintenant, vous vous demandez peut-être ce que veut-dire un “robot magicien”. C’est tout simplement un robot capable de réaliser un tour de magie. Ce projet comprenait beaucoup d’étapes différentes. Pour réaliser ce robot, nous avons dû, tout d’abord, lui trouver un tour. Nous avions comme contrainte supplémentaire qu’il devait le réaliser plusieurs fois d’affilée sans intervention humaine. Une fois trouvé, nous avons dû créer le design, puis le modéliser en 3D avant de finalement l’imprimer grâce aux imprimantes 3D présentes dans l’établissement. Tout ça représente la partie mécanique, à côté de ça, il y avait la partie programmation où nous avons dû créer tous les mouvements que ferait le robot en language Python à l’aide d’une carte Raspberry Pi ainsi que faire fonctionner un écran. 

Le design

Pour le design, nous avions comme contrainte qu’il soit facilement transportable. C’est donc pour cela que nous avons décidé de faire un cube. Nous avons rajouté un bras pour qu’il soit capable de réaliser le tour.

Modèle 3D contenant le cube (en vert) et le bras (en rouge)

Nous voulions donner de la vie à notre robot et du plastique qui bouge ne suffirait pas. Nous avons donc ajouté un écran et créé des animations qui se jouerait pour que le tour soit plus expressif et par la même occasion, cela pourrait distraire une personne qui essaierait pour ne pas qu’elle voit les secrets du tour. Les animations de l’écran représentent le visage de notre robot, nous avons choisi, à deux, de créer un chat cyclope. C’est une image familière, un chat, mais avec une touche d’originalité qui saurait capter l’attention.  Ainsi, étant un Chat Cyclope en forme de Cube, trois mots commençant par C, nous l’avons appelé C³.

Le tour de magie

Vous savez à présent à quoi ressemble le robot, mais vous vous demandez peut-être ce qu’il doit faire. Nous avons cherché plusieurs tours sur internet et avons choisi de réaliser celui-ci (à 3:38 dans la vidéo): https://youtu.be/XqmcqWW_JRg?t=218

L’idée est basiquement, avec deux pièces et un verre, de faire semblant de faire passer une des pièces à travers le verre alors qu’en réalité on a fait tomber la deuxième dedans et caché la première.

Illustration du tour de magie

Pour faire faire ce tour à un robot il y a évidemment de nombreuses étapes à modifier car il ne sera jamais aussi agile qu’un humain. Il faut prendre en compte le fait que chaque axe dans lequel le robot devra faire un mouvement représente un moteur différent que nous devrons programmer plus tard. Il faut donc limiter les mouvements nécessaires au maximum.

Pour réaliser le tour nous avons un bras qui tient le verre et une pièce visible posée en dessous (image 1). Au moment où on démarre, le bras tapera le sol au niveau de la pièce, la cachant par la même occasion. La plateforme sur laquelle se trouve la pièce tournera alors, cachant celle-ci (image 2). Au même moment, le bras qui tient le verre fera tomber la deuxième pièce qui était cachée à l’intérieur depuis le début (image 3).

La modélisation et l’impression

Nous avons passé de nombreuses heures à modéliser le robot sur le logiciel SolidWorks. Chaque partie a dû être modélisée séparément en imaginant comment elle serait attachée aux autres autours d’elle. 

Nous étions des débutants complets pour tout ce qui concerne des problèmes mécaniques en termes de création, nous avons donc trouvé des inspirations dans ce que nous connaissons : des objets du quotidien. Nous pouvons citer notamment le bouchon d’une bouteille d’eau classique duquel nous nous sommes inspirés.

En tout nous avons 13 pièces complexes et différentes que nous avons entièrement imaginé et créé.

L’ensemble de nos pièces modélisées

C’est à partir de cette partie en réalité que nous avons commencé à avoir des problèmes. En effet, mis à part les difficultés de la modélisation en elle-même, il y a eu des difficultés d’impression. La partie principale, le gros cube que vous voyez sur la photo au-dessus, ne pouvait pas être imprimé car il demandait plus d’une bobine de plastique (presque trois), ce que l’imprimante ne peut pas faire. Sans ce cube, la majorité des pièces créées n’avait pas d’utilité et nous n’avons donc imprimé que les parties composants le bras et la plaque sur laquelle se fait le tour.

La programmation : Raspberry Pi, écran et moteurs

Cette partie est la dernière du projet et n’est donc pas terminée. Nous avons fait face à de nombreux problèmes que nous ne pouvions pas régler simplement ici.

Nous avons choisi pour le projet de travailler avec une carte Raspberry Pi. Pour ceux qui ne le savent pas, c’est, dans l’idée, un petit ordinateur qu’on peut programmer pour contrôler tout notre système.

Photo d’une Raspberry Pi 3

Après avoir mis un système d’exploitation sur la carte (un équivalent à Windows ou linux mais pour Raspberry), nous avons essayé de faire fonctionner l’écran. Nous pouvons l’allumer sans problème mais nous avons compris trop tard qu’il fallait une carte SD très précise pour faire fonctionner les animations dessus. Il fallait une carte de moins de 2GO, déjà très dure à trouver, mais aussi qu’elle soit compatible avec l’écran ce qui n’est pas le cas de toutes les cartes SD. Malgré que tout soit prêt, nous n’avons donc pas pu faire fonctionner l’écran.

Photo de l’écran

Nous avons programmé les moteurs en python, langage que nous avions déjà utilisé donc il n’y avait pas trop de problèmes. Nous avons trouvé un modèle de code sur internet pour faire fonctionner des moteurs en python avec une Raspberry et avons donc modifié celui-ci pour réussir à faire tourner les moteurs. <image moteurs/code>

Bilan

 Au final, notre projet n’est pas terminé mais nous avons quand même gagné des compétences utiles grâce à celui-ci, notamment en mécanique et électronique, où nous avons pu pratiquer les domaines comme on ne le fait pas normalement en cours. Nous sommes tout de même satisfaits par certains aspects, comme l’animation où, malgré certains problèmes, les modèles que nous avons pu produire. 

Même si nous sommes déçus du résultat, nous espérons que, si ce projet est repris l’année prochaine, il pourra être fini et perfectionner grâce à ce qu’on a pu faire cette année.

Nous vous remercions de votre lecture et espérons que vous avez trouvé notre projet intéressant.

Manon Boursicot et Anthonin Devas

Images utilisées dans cet article:

Moteur: https://www.robotshop.com/ca/fr/servomoteur-a-rotation-continu-parallax-futaba.html

Écran: https://4dsystems.com.au/products/4d-intelligent-hmi-display-modules/raspberry-pi-compatible-kits/gen4-ulcd-70dt-pi

Raspberry: https://www.desertcart.ae/products/59401529-raspberry-pi-3-model-b