COMPTAGE DES POUBELLES

Dans le cadre des actions de développement durable et de responsabilité sociétal, le réseau Polytech a demandé à ses écoles de suivre leur production de déchets à la fois en termes de volume et de types (ordures ménagères, tri sélectif, papier, carton). C’est pour cela que Polytech Angers nous a donc missionné de trouver une solution fiable afin de résoudre ce problème.

Ainsi, nous avons imaginé et crée un prototype pour répondre à cette demande. Et oui, je dis bien prototype car malheureusement nous n’avons pas pu répondre à tous les critères et ce projet sera donc à finir. Pour autant, nous sommes très fiers de vous présentez notre solution actuelle et ce qu’on imagine pour la suite …

Pour ce projet nous avons utilisé :

  • une Raspberry Pi 4 (micro PC) avec un Linux
  • un lecteur RFID (Radio Frequency Identification)
  • des tags RFID (à coller sur les poubelles)

Le fonctionnement

Pour commencer, nous avons installer un Linux sur la Raspberry Pi afin d’exploiter cette dernière. Ensuite, nous avons créé une base de données sur la Raspberry Pi, grâce à phpMyAdmin, pour architecturer toutes les données dont nous allons nous servir.

Par la suite, nous avons fait beaucoup, beaucoup, beaucoup de programmation. Nous avons commencé par créer un programme Python qui récupère les codes RFID des badges qui passent devant le lecteur pour les stocker dans la base de données. Ainsi dans la base de données, nous avons une liste de tous les badges RFID qui sont passés devant le lecteur avec leurs horaires.

Sans allez trop loin, je vais vous expliquer le fonctionnement de notre base de données, cela vous aidera à comprendre la suite. Globalement, notre base de données contient trois listes : une première qui contient des codes RFID avec leur horaire de passage (expliqué dans le paragraphe précédent), une deuxième qui est l’inventaire des poubelles présentes dans le local en spécifiant leur taille et leur couleur et donnant un ID (1 ou 2 ou …), et la troisième permet, en quelque sorte, de lier les 2 autres. En effet, cette dernière affecte à chaque poubelle un ou plusieurs codes RFID. Au final, chaque poubelle a une taille, une couleur, un ID et un ou plusieurs RFID qui lui sont associés.

Après avoir paramétrer notre base de données, nous avons créer un programme en PHP. Ce langage nous permet, depuis un programme, de communiquer avec notre base de données et ainsi nous avons pu récupérer les données de cette dernière, les trier, puis les envoyer vers un autre programme. Cet autre programme est globalement codé en HTML, en CSS et en JavaScript pour créer un site local avec plusieurs pages afin de voir de manière claire, quelles poubelles sont passés entre deux horaires que nous pouvons définir.

Exemple de notre site local
Démonstration du fonctionnement de notre projet

La mise en place

Malheureusement, notre projet ne pourra pas être mis en place cette année car il n’est pas totalement terminé, et sera donc vraisemblablement légué à des étudiants en SAGI pour le finaliser. Néanmoins, nous avons grandement réfléchi à sa mise en place dans le local.

Premièrement, nous avons souder et ajouter une LED au système pour savoir plus facilement lorsqu’une poubelle est passée devant le lecteur RFID.

Soudure de la LED

Ensuite, nous avons créé un prototype de boîte en carton afin de packager tous les composants et de rendre notre système facilement déplaçable.

Prototype de boîte

Pour finir, nous avons réfléchi à l’emplacement de notre boîte dans le local poubelle pour avoir la meilleure praticité et la meilleure fiabilité. Globalement, le lecteur RFID sera proche du sol à côté d’une porte tandis que la boîte sera fixée au mur.

Plan du local poubelle

Après avoir réalisé plusieurs tests dans le local poubelle, les résultats réponde bien à nos attentes et semblent s’adapter à la réalité du terrain.

Test du projet dans le local poubelle

Ainsi nous sommes très fiers d’avoir réalisé ce projet, et nous espérons grandement que ce projet pourra aboutir et donc être mis en place. Merci aux professeurs encadrants qui nous ont été d’une aide très précieuse et nous souhaitons le meilleur pour les élèves qui reprendront notre projet.

Merci de votre lecture

Alexis MESNIL & François BALMADIER

La Mini-Eolienne à Axe Horizontal

Bonjour à toutes et à tous ! Nous sommes Elena et Eglantine, deux étudiantes en deuxième année de cycle préparatoire à Polytech Angers. Nous allons vous présenter notre projet : la création d’une mini-éolienne à axe horizontal, c’est-à-dire, celle que vous avez l’habitude de voir à l’extérieur mais en plus petit !

Présentation de Notre Projet

Notre projet vise à fournir une source d’énergie renouvelable pour alimenter une petite batterie à notre école.

Celui-ci représente un défi stimulant et enrichissant ! Nous avons pu laisser libre court à notre imagination tout en réalisant une éolienne fonctionnelle.

Le caractère pratique et concret de ce projet, ainsi que son utilité potentielle au sein de notre école, ont suscité notre intérêt et notre motivation.

Fonctionnement simplifié d’une éolienne

Nous allons vous expliquer le fonctionnement simplifié d’une éolienne. Voici les différentes étapes pour transformer l’énergie éolienne en énergie électrique :

  • Le vent fait tourner les pales qui font tourner l’axe principal ;
  • Celui-ci fait tourner le générateur qui produit de l’électricité à la sortie ;
  • Enfin, l’électricité est utilisée pour charger une batterie ou alors être reliée à un réseau électrique.

Présentation des Composants

Pour réaliser notre mini-éolienne, nous avons eu besoin de certains composants.

Les pales sont réalisées en matériau d’imprimantes 3D et mesurent 30 cm.

Celles-ci ont un profil NACA qui permet de mieux capter le vent.

Le système poulies-courroie permet de multiplier le nombre de révolution à l’entrée du moteur et ainsi produire plus d’électricité.

Ce système est composé d’une grande roue nommée poulie. Celle-ci est reliée à une plus petite roue à l’aide d’une courroie.

Le principe est simple. Lorsque la grande poulie fait un tour, la petite poulie effectue environ 2 tours.

Le générateur permet de transformer l’énergie mécanique en énergie électrique.

Le MPPT (Maximum Power Point Tracking) est un régulateur de charge. Celui-ci est placé entre le générateur et la batterie afin de charger la batterie de manière constante sans l’abimer. Ce composant est indispensable pour le bon fonctionnement de l’éolienne !

La batterie est une batterie de 12 V reliée au MPPT. Celle-ci peut-être utilisée par l’école.

Nos composants sont rassemblés dans une boîte aux lettres afin de les protéger de la pluie, du vol et pouvoir changer les composants en cas de nécessité.

Enfin, le pied de l’éolienne est composé d’un tube de PVC de 125 mm de diamètre et d’un seau rempli de béton pour maintenir l’équilibre de la structure.

Conception et Réalisation

Afin de mener à bien notre projet, nous avons réparti notre travail en plusieurs étapes.

1. La Documentation

  • La première étape fut la documentation durant laquelle nous avons effectué toutes nos premières recherches sur le fonctionnement global d’une éolienne.

2. L’Étude

  • Ensuite, la deuxième étape fut l’étude. Dans cette partie, nous avons d’abord étudié la partie aérodynamique : nous avons examiné les principes de l’écoulement de l’air autour des pales et l’optimisation de leur forme pour maximiser l’efficacité. Puis, nous avons analysé la partie mécanique avec la transmission de puissance, en nous assurant que l’énergie captée par les pales pouvait être efficacement convertie en énergie mécanique. La dernière partie de l’étude fut électrique. Nous avons étudié les composants nécessaires pour convertir l’énergie mécanique en énergie électrique et les intégrer dans l’ensemble.

3. La Construction

  • Enfin, la dernière étape fut la fabrication complète de l’éolienne en assemblant tous les composants. Lors de cette étape, nous avons inévitablement rencontré des difficultés que nous avons su surmonter. Il a fallu percer la boîte aux lettres pour passer l’axe principal ainsi que fixer les différents composants. Nous avons également renforcé nos pales à l’aide d’une plaque d’aluminium découpée sur 1 cm.

Voici une image de notre éolienne finie :

Conclusion

Ce projet a été bénéfique pour notre parcours professionnel, nous préparant ainsi aux différents défis et opportunités qui nous attendent dans le domaine de l’ingénierie. En effet, la gestion autonome de ce projet à deux a été une véritable leçon d’adaptabilité et de collaboration. Nous sommes ravies de notre travail. Malgré les difficultés rencontrées, nous avons terminé notre éolienne. Nous remercions notre professeur référent M. Haddad pour nous avoir soutenu tout le long du processus de fabrication.

Merci d’avoir lu notre article, en espérant qu’il vous a été utile !

Églantine RENAULT et Elena RICHARD

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

Notre projet de 2ème année – Le smoothie-bike

Notre projet

Un vélo à smoothie utilise l’énergie mécanique du pédalage pour produire des smoothies. Nous avons disposé de créneaux horaires hebdomadaires, totalisant 100 heures, pour travailler sur ce projet, mais nous avons aussi travaillé chez nous pour dépasser ces 100 heures. Nous avons utilisé le Fablab de l’école, équipé d’un atelier et de divers outils. L’objectif de ce projet est maintenant à aborder.

L’idée de créer ce projet  est venue à la demande d’une association universitaire : le SSU (Service de Santé Universitaire de l’Université d’Angers). Ils désiraient un smoothie bike pour leurs événements afin de montrer aux gens l’importance du sport et d’une bonne nutrition. En pédalant, vous générez de l’énergie cinétique qui alimente le mixeur pour mélanger des fruits et d’autres ingrédients afin de préparer un smoothie frais et sain. Cela encourage les gens à faire de l’exercice tout en offrant une récompense sous forme d’une boisson nutritive, ce qui peut être idéal pour des événements, des fêtes ou des activités de sensibilisation. En plus de promouvoir l’activité physique, le vélo à smoothie sensibilise également à l’importance de consommer des fruits et des légumes.

1 – La conception CAO

Une fois que nous avions bien en tête le fonctionnement et à quoi allait ressembler le vélo, il a fallu le réaliser en 3D (ou CAO), afin de faire des simulations de forces, selon la forme et les matériaux choisis. Nous avons donc passé un certain temps à  

créer le projet en CAO (conception assistée par ordinateur) de manière la plus précise possible. Nous avons, pour cela, utilisé le logiciel SolidWorks, que nous avons appris à utiliser en première année.

2 – La réalisation

Une fois la conception et les simulations faites, il était temps de commencer la fabrication. Tout d’abord, nous devions nous procurer un vélo pour partir avec une base à modifier. Nous avons pour celà choisi de récupérer une bicyclette déjà utilisée et en vente sur leboncoin afin de lui donner une seconde vie.

Il a ensuite été nécessaire de démonter la quasi-totalité de ce vélo de ville (roues, freins…) pour le modifier à notre guise. 

La première modification après le démontage consista à passer la roue arrière et la chaîne à l’avant, pour obtenir une rotation de la roue avant lors du pédalage. La roue initialement à l’avant fut supprimée et non utilisée.

L’étape suivante était très importante. Elle consistait à couper et ajuster ces tubes pour les souder parfaitement à la base. Pour celà, nous avons dû faire des calculs de mesures et d’angles. Les outils utilisés ont été la meuleuse et la ponceuse du fablab. Quand celà était terminé, nous devions trouver une personne possédant un poste de soudure et sachant souder. Nous avons donc trouvé quelqu’un de notre entourage et réalisé les soudures.

Le choix d’un support avant plus stable a également été préféré contrairement à initialement sur la CAO. (photo ci-dessus).

Il s’agissait par la suite d’élaborer le système pour relier le mixeur à la roue du vélo. L’idée de base est simple: il s’agit de relier l’axe du blender à une roue du skateboard, elle-même en contact avec la roue du vélo. Avec celà, nous changeons l’axe de la rotation et pouvons mixer en pédalant. Pour la fabrication, nous nous sommes procurés un support avant pour vélo, ainsi que des planches en bois que nous avons travaillées pour faire tenir le mixeur. Nous avons également imaginé et réalisé une petite pièce en CAO pour relier le mouvement du mixeur à l’axe. Une fois ceci assemblé, celà fonctionnait.

L’ultime étape avant les derniers tests et ajustements fut l’esthétique du smoothie bike. Nous avons choisi de le peindre en mauve et jaune afin de rappeler les couleurs du SSU. Le support blender est qant à lui, peint en noir.

Conclusion

En conclusion, notre projet de vélo à smoothie a été une expérience très enrichissante. Il nous a permis de pratiquer nos compétences techniques et créatives. Travailler sur ce projet nous a donné un aperçu du métier d’ingénieur, comme la conception, la résolution de problèmes, la gestion du temps et le travail en équipe. Grâce à ce projet, nous comprenons mieux les défis et les satisfactions de créer des solutions innovantes et pratiques.



  • Lego Technic
  • Briques EV3 Lego
  • Capteurs Lego ( contact, couleur, infrarouge, inclinaison)
  • Moteurs Lego
  • Ordinateur avec Linux
  • Clé USB Wifi
  • Vidéo d’introduction à notre projet

Etape 1 : Fabrication de la structure Lego de notre instrument


Afin de fabriquer notre instrument lego, nous nous sommes inspirés de la vidéo précédente. Elle nous a permis de mieux comprendre le mécanisme que nous devions réaliser. Nous avons créé un mécanisme disposant d’un tapis roulant qui tourne grâce à un moteur Lego. Au bout de ce tapis nous avons mis en place huit capteurs de contact rangés en deux lignes de quatre. Puis, nous avons placés des tiges inclinées vers le bas par des élastiques afin qu’elles appuient sur chaque capteur de contact. Sur le tapis, nous avons insérés des petites pièces lego permettant de lever les tiges précédentes au moment souhaité. La mélodie créée dépend donc du placement de ces petites pièces et de la rapidité du moteur. Nous avons rencontré quelques problèmes au cours de cette étape ; en effet, les tiges n’appuyaient pas suffisamment fort sur les capteurs, ainsi les sons ne s’activaient pas. Nous avons d’abord essayé de resserrer les élastiques et de mettre les capteurs à l’envers. Le résultat n’était pas satisfaisant. Ainsi, nous avons finalement pris la décision suivante : les sons s’activeront lorsque les capteurs seront relâchés et non appuyés.


Etape 2 : Programmation


L’objectif de cette étape est de programmer chaque capteur et le moteur afin que les capteurs émettent chacun un son différent et que le moteur tourne pour activer le tapis. De plus, nous souhaitions que le son ne soit pas émis par les briques EV3 mais par une enceinte ou des écouteurs.

Pour commencer, nous nous sommes inspirés d’un blog qui a réalisé ce type de projet. Comme le projet était similaire, nous avons pu récupérer le code et faire des adaptations comme faire tourner le moteur pour faire fonctionner le tapis roulant. Nous avons réussi à attribuer une note à chaque capteur de contact avec le code emprunté. Nous devions après cela connecter les briques à l’ordinateur afin que le son soit émis par ce dernier. Nous avons d’abord essayé de le faire avec des fils et un logiciel pour détecter les informations envoyées, mais nous avons eu quelques problèmes. En effet, nous avons eu des problèmes parce que les données étaient dans un format spécial pour la musique et nous avions donc besoin de quelque chose pour les intercepter, mais presque tous les logiciels ne sont pas gratuits, et quand c’est le cas, ils ne fonctionnent que pendant une heure. Après quelques recherches, nous avons donc découvert que nous devions passer d’un ordinateur sous Windows à un ordinateur sous Linux, car ce type d’ordinateur dispose de certains logiciels. Après avoir installé le logiciel, nous devions connecter les briques, donc instinctivement, nous avons essayé avec du filaire mais cela ne fonctionnait pas à chaque fois et ce n’était pas vraiment pratique. La solution a été d’utiliser une clé USB Wifi qui se connecte à chaque fois et nous avons moins de fils à confondre. Enfin, nous utilisons le logiciel en ligne Audiotool pour convertir ces informations en notes de piano.

Voici la vidéo de notre projet final :

Merci à toutes et à tous d’avoir lu notre article !


Coucou suisse en Lego

L’horloge en LEGO fonctionnelle

Explorez les mystères de la gravité et de l’ingénierie avec cette réplique de coucou suisse en Lego, où chaque engrenage et chaque mécanisme sont savamment conçus pour défier la pesanteur et capturer l’essence même du mouvement horloger suisse. 

Plongez dans les rouages complexes de cette construction, alliant précision technique et fascination scientifique, pour une expérience de construction qui séduira les esprits curieux de tous horizons.

L’objectif de ce projet était de concevoir et fabriquer une horloge et un coucou en Lego. Mais, il y avait plusieurs conditions à respecter :

  • L’horloge devait fonctionner au moins 24h sans interruptions avec un décalage maximal de 1s .
  • L’horloge devait être entièrement mécanique (pas de moteurs, seulement des Lego et des poids).
  • Outre l’aspect technique, nous étions encouragés à apporter une touche d’esthétisme.

Fonctionnement d’une horloge

L’horloge mécanique à pendule a été crée durant le XIV siècle grâce aux travaux de Galilée.

Pour résumer le mécanisme d’une horloge, il s’agit essentiellement d’un poids qui tombe et fait tourner une roue. Cette roue est reliée à d’autres roues qui réduisent la vitesse de rotation. Cette réduction permet au poids de descendre lentement.

Le poids agit comme notre source d’énergie (énergie potentielle du poids). Plus il descend lentement, plus les roues tournent, donnant à l’horloge une grande autonomie.

Cependant, l’horloge doit fonctionner précisément chaque seconde. Pour cela, nous utilisons un système de pendule. Comme montré dans la vidéo, le pendule oscille dans une direction chaque seconde, bloquant toutes les roues pendant cette période.

Le système avec les crans jaunes qui bloquent la roue grise au dessus du pendule s’appelle le système d’échappement. L’oscillation de la pendule fait balancer le système d’échappement, ainsi les crans viennent bloquer la roue à chaque dent.

Mécanisme du pendule et de l’échappement

Bien qu’il ne soit pas très difficile de faire fonctionner le mécanisme, obtenir une grande autonomie et une précision de l’horloge est la partie la plus difficile.

Développement de l’horloge

Nous avons commencé le développement de notre horloge pas plusieurs échecs. En effet, il fallait avoir une structure solide afin d’y mettre les engrenages et le balancier. Le balancier étant assez grand, la structure devait l’être aussi.

Structure utilisée pour les tests

Ensuite, nous avons effectué plusieurs calculs. Il était nécessaire de savoir quel poids il fallait utilisé afin que la corde tombe. Mais, il fallait également savoir la hauteur potentielle de notre horloge afin qu’elle fonctionne bien 24 heures. Cependant, avec le mécanisme que nous avions créé, la structure devait faire 9 mètres et le poids plus d’une tonne. Nous avons donc changé de stratégie.

Reproduction d’un modèle

Nous nous sommes alors inspiré du travail de Dillon Sharlet sur Youtube. Nous avons alors commandé des pièces nécessaires à la fabrication de l’horloge. Nous avons décidé tant bien que mal d’avancer et alors nous avons imprimé des pièces Lego en 3D.

Cependant, lorsque nous avions terminé le montage de l’horloge, celle-ci ne fonctionnait pas. Nous avons dû modifier certaines pièces Lego, notamment en les limant ou les coupant.

Ensuite, le réglage du système d’échappement a été difficile à régler. Il fallait trouver les bons angles au millimètre près des crans jaunes pour qu’ils viennent se positionner entre chaque dent sans en rater une seule.

Conception du coucou

Pour la conception du coucou, nous avons dû créer de A à Z chaque élément qui composera ce dernier. Chaque composant du coucou était penser afin qu’un petit oiseau sorte de l’horloge.

Mais nous avons constaté que les pièces de lego subissaient trop d’efforts par rapport à ce qu’elles étaient capables de transmettre. Alors, les pertes sont très importantes et avec le mécanisme que nous avons construit il était impossible au coucou de sortir.

Heureusement, pour la présentation de notre projet nous l’avons présenté à part avec une petite manivelle afin de le voir fonctionner.

Le coucou

Bilan

Pour conclure, nous sommes heureux d’avoir présenté une horloge fonctionnelle qui affichait l’heure en temps réel ce qui en a bluffé plus d’un. Plus sérieusement, ce qui a été le plus enrichissant durant ce projet est tout le travail de recherche et de développement que nous avons fait en amont. C’était également très intéressant de pouvoir comparer nos calculs avec ce qui se passait dans la réalité.

Nous remercions Sylvain VERRON de nous avoir aider durant l’entièreté de notre projet.

Romain MITTEAU, Robin MARCHAND, Elian Crouzatier, Edgar BEGOC

Pesée de graines automatisée

Intro

Les personnes en situation de handicap cherchent à s’intégrer dans le monde professionnel, en partie par le biais des ESAT. Ces organisations proposent des activités diverses pour développer aux mieux les compétences des travailleurs en leur sein, leur garantissant une meilleure intégration professionnelle et sociale pour qu’ils soient le plus autonomes possible. Il est très important pour ces travailleurs et travailleuses de se sentir utile et intégré dans la société malgré leur déficit quel qu’il soit. 

Notre projet 

Dans le cadre de notre projet nous avons visité un ESAT, dans le but de rencontrer deux des travailleuses, Anne et Sophie, qui ont une déficience visuelle importante, ainsi que David Lemoal, le commanditaire de notre projet. La mission qui nous a été confiée fût de récupérer le matériel défaillant de l’ESAT et de concevoir un système permettant à un travailleur malvoyant de pouvoir distinguer un poids affiché par une balance avec une taille de police adaptée.   

Ce projet n’était pas clairement défini avant notre visite à l’ESAT. Nous avions une idée générale de ce que nous devrions faire mais la rencontre de nos clients nous a donné des détails dont nous ne disposions pas.  

Nous savions tous les trois que nous allions travailler pour des personnes en situation de handicap. L’idée de pouvoir nous rendre utiles nous a emballés et nous avons été très motivés et engagés dans ce projet, surtout après avoir pu discuter avec Anne et Sophie. Ce sujet nous a également attiré car nous connaissons des personnes aillant des troubles de la vision importants, donc cela nous touchait directement. 

Nous avons récupéré plusieurs appareils à l’ESAT, à savoir : 

  • Un bol vibrant  
  • Un régulateur
  • La balance

La Raspberry est un petit ordinateur qui consomme très peu d’énergie. Il nous a été utile pour transmettre et recevoir des données, celles de la balance par exemple. Il fonctionne avec le processeur Raspbian. 


Pour le bol vibrant, le défi était de d’abord de le faire vibrer (logique), avant d’en réguler la force. Le problème venait également du régulateur qui ne régulait pas (logique aussi). Il a fallu étudier de fond en comble ces deux systèmes en demandant la datasheet au fournisseur, à savoir Sinex. Notre projet a vraiment été centré sur l’étude au cas par cas de nos problèmes car d’autres se créaient à leur résolution. 

Au final nous avons réussi à faire vibrer notre bol vibrant et à faire réguler notre régulateur en mode manuel. Le but était cependant d’automatiser le système car l’ancien automate de l’ESAT ne fonctionnait plus. Il fallait, avant cela récupérer les données de la balance pour programmer, plus tard l’automatisation de notre bol vibrant, qui passe par le mode automatique du régulateur. 

Après nos longues recherches nous avons découvert qu’une solution très simple existait pour récupérer le signal de la balance qui est du RS232. Le fait est qu’il existe un convertisseur de RS232 à USB. Nous avons donc utilisé cela et avons récupéré toutes les données de la balance après avoir peaufiné notre programme Python. Nous avons donc enfin réussi à récupérer, environ 2 fois par seconde, le poids en direct affiché sur la balance, sur notre mini-ordinateur.  

Les heures de travail sur le code informatique se sont multipliées : 

  • Tout d’abord nous avons dû apprendre à utiliser TKinter , qui est utile pour l’affichage et la présentation visuelle de l’application. Le Tkinter nous a permis de mettre en place deux applications. Une première qui affiche, sur un écran d’environ 18 pouces, le poids, instantanément, sur la balance et un deuxième qui demande un poids de consigne. 
  • En même temps nous devions développer le programme principal. Ce dernier regroupe tout le traitement des données de la balance. Il nous permet de diriger l’intensité des vibrations de notre bol vibrant en fonction du poids sur la balance, plus l’on approche du poids de consigne (demandé au préalable) et moins les vibrations sont intenses, pour optimiser la précision de la pesée 

Une fois que les applications ont été opérationnelles, il a enfin fallu mettre en boîte tout notre matériel, souder les composants, solidariser les appareils à la boîte et gérer la position des câbles de manière à ce qu’ils ne soient pas encombrants. 

Conclusion

Nous sommes tous très fiers du travail que nous avons réalisé. En effet lors de ce projet, nous nous sommes très bien entendus que ce soit entre chaque membre du groupe mais aussi entre les tuteurs. Nous avons réussi à bien répartir les tâches entre chaque membre du groupe en fonction des qualités de chacun. De plus, nous avons réussi à rendre un produit final qui est esthétique, et simple à utiliser. Il respecte bien le cahier des charges que Mr.Lemoal nous avais fixé au début du projet. Ce projet nous a fait apprendre beaucoup de choses et nous a fait acquérir de expérience dans plusieurs domaines.

Merci de nous avoir lu

Jean PICARD
Dorian HODE
Louis BITEAU

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