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

Photomatonsaïque : des photos en mosaïque

Galerie

Cette galerie contient 2 photos.

Bonjour à tous ! Nous sommes deux étudiants en deuxième année du cycle préparatoire de l’école d’ingénieur Polytech Angers. Dans cet article, nous allons vous parler de notre projet de conception sur lequel nous avons travaillé tout au long du … Continuer la lecture

Borne Arcade : Nouvelle génération

Vous avez toujours rêvé d’avoir une borne d’arcade, connaitre la sensation de jouer aux jeux vidéo comme vos parents, ou comme dans Kid Paddle… Notre projet est fait pour vous.

Nous avons voulu innover un petit peu et donner un coup de jeune à cette borne d’arcade, voilà d’où nous est venu l’idée de faire un meuble, ou bureau, cela dépend de l’utilisation que l’on en fait, en y intégrant tout ce qu’il faut pour une borne d’arcade, c’est-à-dire les composants essentiels comme les joysticks, l’écran et les boutons. Après plusieurs heures de réflexion et de recherche, nous voilà partis dans la conception de notre meuble arcade.

Notre projet s’est divisé en 2 grandes parties :

La partie électronique qui comprenait la programmation de la carte Raspberry Pi ainsi que tous les branchements à l’écran ainsi qu’aux boutons de la borne

La partie mécanique/menuiserie qui constituait à créer un meuble facile à transporter mais aussi penser au confort du joueur sur la borne

Electronique :

Les composants essentiels de la borne sont plutôt abordables ; une planche de commandes, composées des boutons et des joysticks. Un écran et une carte Raspberry Pi.

La carte Raspberry Pi est composée d’une broche contenant 2 ports appelés Gpio, qui permet de relier les commandes à la carte via les fils.

commande

Chaque broche correspond à une commande en particulier comme pour les axes des joysticks, des boutons start/select et des boutons classiques.

Il a fallu qu’on active les ports Gpio dans le fichier source de la carte, en la connectant en réseau à notre ordinateur, pour ouvrir dans le dossier système, modifier le fichier sur un logiciel de traitement de code (ici Notepad++).

raspberry

Ceci fait, nous avons effectué les connexions nécessaires sur les commandes en mettant sur une des broches des boutons, la masse et sur l’autre le fil associé à la bonne commande.

L’écran est donc un ancien écran d’ordinateur, démonté de sa coque que nous avons fixé grâce à 2 attaches en barres sur la façade de notre borne.

Nous avons réussi à limiter les dépenses de notre projet en récupérant des anciennes planches, des vis et des pots de peinture. De même pour l’écran qui appartenait à l’un de nous.

Montage :

Nous avons avant de commencer le montage, dessiné tous les plans dans le but d’avoir une base solide pour commencer nos découpes et le montage.

Nous avons opté pour un design de meuble qui soit à la fois modifiable et « simple » pour tout : déplacement, facile de montage/démontage.

Avec les planches récupérées, qui correspondaient plus ou moins à celles voulues. Nous avons pu faire nos découpes, en dessinant très précisément nos morceaux. Puis nous avons poncé les bordures de morceaux à l’aide d’une ponceuse à gros grains.

scie

Nous assemblions ensuite nos planches, en respectant le montage, avec des vis à bois et évidemment perceuse/visseuse. Voilà nos 3 modules fait.

Nous avons ensuite monté le bureau de la même façon, en réfléchissant à comment le stabiliser pour qu’il ne s’affaisse pas ou soit bancal.

Le meuble était prêt à être peint, on a pour cela appliqué une couche de sous peinture sur l’ensemble du meuble, puis après avoir choisi soigneusement quel couleur irait à quel endroit, recouvert de 3 couches de peinture en attendant 6h entre chaque.

borne 1

Nous avons fini par les bordures, et découpé dans la table du bureau l’emplacement des commandes.

borne 2

Le meuble vide n’était pas très chaleureux, nous l’avons décoré pour le mettre en conditions réelles pour qu’il se fonde parfaitement dans le décor.

Le rendu est le suivant:

borne3
borne 4
Borne arcade

Si vous souhaitez regarder une vidéo sur la borne d’arcade en fonctionnement, veuillez cliquer sur ce lien :

Contrôle d’accès salle 214

Bonjour,
Je suis étudiant en deuxième année de cycle préparatoire à Polytech Angers. J’ai choisi de travailler sur le projet de contrôle d’accès à la salle 214.

Objectif du projet

La salle 214 est une salle de Polytech Angers dédiée aux projets. Cette salle contient beaucoup de matériel. Il est donc important de laisser la porte de cette salle fermée lorsque personne n’y travaille.
Actuellement, les étudiants qui veulent accéder à la salle 214 doivent demander la clé à l’accueil en échange de leur carte étudiante. Ils peuvent ensuite rapporter cette clé quand ils ont terminé.
Le but de mon projet est de simplifier cette démarche en rendant automatique l’ouverture de la porte grâce aux cartes étudiantes.

En effet, les cartes étudiantes contiennent une puce RFID. En scannant une carte à l’aide d’un lecteur de cartes, il est possible de récupérer un numéro unique pour chaque carte. Il y avait déjà un ancien système pour ouvrir la porte de la salle 214, mais il fonctionnait avec des badges et n’est plus utilisé. Je réutilise donc ce système pour déclencher l’ouverture de la porte.

Le premier ojectif de mon projet est de créer une base de données avec les numéros des cartes étudiantes pour gérer qui a accès à la salle. Un programme relié à cette base de données déclenchera un relais qui laisse passer le courant pour ouvrir la porte de la salle 214. Le second objectif est de créer un site web pour pouvoir contrôler facilement les accès et voir l’historique de toutes les entrées dans la salle.

Étapes du projet

Pour ce projet, j’ai utilisé deux Raspberry Pi. Une Raspberry Pi est un petit ordinateur de la taille d’une carte bancaire. On peut programmer une Raspberry Pi de la manière qu’on le souhaite. De plus, la Raspberry Pi possède des broches GPIO que l’on peut alimenter avec un programme. J’utilise donc ces broches pour relier la Raspberry Pi au relais qui ouvre la porte.

Une Raspberry Pi utilisée durant ce projet.

Une Raspberry Pi utilisée durant ce projet.

J’ai commencé par écrire un programme en langage Python qui récupère le numéro de la carte. J’ai ensuite créé une base de données. Une base de données peut être composée de plusieurs tables, j’ai donc créé une table composée comme ceci :

id Nom Prénom Numéro de carte Date de début d’entrée autorisée Date de fin d’entrée autorisée
1 DURAND Martin 00123456789ABCDE 2019-03-01 2019-06-30

Dans l’exemple ci dessus, Martin DURAND peut accéder à la salle 214 du 1er mars au 30 juin 2019.

J’ai donc intégré cette base de données à mon programme Python pour qu’il cherche si le numéro scanné par le lecteur est présent dans la base de données et si la personne a le droit d’entrer.
Pour activer le relais, j’ai déclenché l’alimentation d’une broche GPIO à partir du programme Python. Ainsi, tout fonctionnait avec une seule Raspberry Pi.

Test du programme avec une seule Raspberry Pi.

Test du programme avec une seule Raspberry Pi.

Une des contraintes de ce projet est que le déclenchement de l’ouverture de la porte de la salle 214 se fait sur un tableau électrique présent en salle 212. C’est pour cela que j’ai besoin de deux Raspberry Pi qui doivent communiquer entre elles pour ouvrir la porte. Ainsi, j’ai fait deux programmes Python :

  • Un pour la Raspberry Pi en salle 214 qui scanne la carte et regarde dans la base de données si la personne a le droit d’entrer
  • Un autre pour la Raspberry Pi en salle 212 qui déclenche l’ouverture de la porte

Le programme Python de la salle 214 envoie un message d’ordre d’ouverture à l’autre programme quand la personne est autorisée à entrer.

J’ai ensuite installé tous les composants dont j’avais besoin sur le tableau électrique en salle 212 avec l’aide de M. Bouljroufi.

Composants installés sur le tableau électrique

Composants installés sur le tableau électrique

Ainsi, j’ai pu tester que le programme fonctionnait correctement. Voici une vidéo de l’ouverture de la porte avec une carte étudiante :

J’ai ensuite créé le site web. J’ai pour cela installé un serveur web sur la Raspberry Pi de la salle 214. J’ai utilisé le langage php pour relier la base de données au serveur web. J’ai aussi créé une deuxième table dans la base de données pour avoir un historique de toutes les ouvertures de la porte de la salle.

Voici une démonstration du fonctionnement de ce site web :

Conclusion

Le résultat de ce projet est satisfaisant. On peut désormais ouvrir la porte de la salle 214 à l’aide d’une carte étudiante. De nombreux points restent à améliorer. Le site web pourrait avoir plus de fonctionnalités et être plus esthétique. Mais globalement ce projet a été une très bonne expérience. Cela m’a permis d’apprendre plein de nouvelles connaissances. J’ai appris les langages Python et php. J’ai découvert comment gérer des bases de données et j’ai amélioré mes compétences en électricité.

Kinetic Art

Bienvenu.e.s,
Nous, Bérangère Daviaud et Laura Texier, sommes deux étudiantes d’EI2 à l’ISTIA – Université d’Angers et dans le cadre de notre quatrième semestre, nous avons du réaliser un projet. Intéressées par la filière robotique et informatique et sensibles à l’art, notre choix s’est porté sur le projet Kinetic Art. Pour visualiser en quoi ceci consiste, voici une vidéo :

L’objectif premier de ce projet a été de créer un module constitué de servomoteurs, de capteurs et d’une arduino, puis de faire en sorte de pouvoir positionner chaque balle de chaque moteur à une certaine hauteur, grâce à l’indication du capteur associé ; puis de faire communiquer une carte raspberry pi avec l’arduino pour définir la hauteur des balles. Le second objectif, s’il restait du temps, était de modéliser et concevoir plusieurs modules, puis de les faire communiquer ensemble.

  • Arduino
  • Kinetic Art

    Kinetic Art (vue du dessus)


    Nous avons commencé avec une carte arduino, qui nous a servi à créer un programme d’initialisation des capteurs de distance VL53L0X. Le programme fonctionne de la manière suivante : on éteint tous les capteurs, puis on les rallume un par un en leur attribuant à chacun une adresse. Ensuite, nous sommes passées à l’initialisation des servomoteurs, dans laquelle on demandait au moteur de placer, à l’aide des capteurs, chaque balle à la même hauteur.

  • Conception
  • Afin de travailler avec un bus CAN, nous avons conçu un deuxième module. Pour ce faire, nous avons modélisé sous solidworks les pièces nécessaires. Puis nous les avons conçues, à l’aide des machines disponibles au FabLab (charlyrobot, imprimante 3D et fraiseuse). Nous avons également soudé les composants d’un SHIELD.

    DSC_0316

    SHIELD assemblé par nos soins

  • Raspberry PI
  • Notre Rasppberry PI, fonctionnant sous LINUX, a nécessité une configuration, trouvable ci-dessous :

    Réglages de la Raspberry :
    https://github.com/IstiaMecatroniqueClub/Tutorials/wiki/1-Setting-up-the-Raspberry-Pi-3-Lubuntu-Operating-System

    Mise en place du bus CAN :
    https://github.com/IstiaMecatroniqueClub/Tutorials/wiki/2-Setting-up-the-CAN-Bus-module

    Nous avons défini la raspberry comme “expéditeur” de données et les arduinos comme receveurs. Nous avons également mis en place un système d’identifiant, afin que chaque arduino n’interprète que les commandes lui étant destinées. Nous avons également fait en sorte d’avoir une “commande nulle” : si la commande envoyée à un moteur est égale à zéro, celui-ci ne bouge pas la balle.

Voici le rendu final de notre projet, lorsqu’un moteur reçoit plusieurs commandes à la suite :

Le résultat final est conforme avec le cahier des charges car nous avons réussi à finir un module et à le piloter. De plus, nous avons dépasser les attentes des tuteurs en concevant un deuxième module et en réalisant une communication bus CAN. Cependant il serait possible d’améliorer le projet en utilisant des servomoteurs de meilleure qualité et en créant un boîtier afin d’éviter que les fils se prennent dans les poulies.

Nous remercions nos tuteurs, M. Guyonneau et M. Mercier de nous avoir guidées.