Projet BB8

bb8-side-image

  I. Introduction

Le robot BB8, connu pour ses parutions dans la célèbre saga Star Wars, est à l’origine de notre projet. Nous avons entrepris de reproduire un système de la sorte pouvant se définir comme un robot « boule ».

Ce système ayant déjà été reproduit par plusieurs personnes, mais n’ayant trouvé aucune base suffisamment documentée, nous avons décidé de concevoir de A à Z notre propre BB8, d’après nos propres idées, en nous inspirant bien évidemment des systèmes existants.

Ce projet consiste en la réalisation d’une sphère creuse dans laquelle vient s’insérer un système complet, lui permettant de se déplacer suivant plusieurs axes. Cette sphère sera télécommandée par un appareil mobile (tablette ou smartphone) à l’aide d’une application dédiée.

Grâce à ce projet, nous allons pouvoir découvrir le travail nécessaire à la conception complète d’un système, de la définition de son cahier des charges à sa mise en oeuvre, ainsi qu’à l’organisation que cela implique. Ce projet va également nous permettre d’améliorer nos capacités à travailler en équipe. Nous avons l’opportunité de mettre en commun le génie mécanique et le génie électrique dans ce projet, ce qui nous permettra de mettre en avant et de combiner les compétences et savoirs de chacun.

 

Membres du projet :

  • Pierre JAEGLE, étudiant en 2e année de Génie Mécanique et Productique
  • Arnaud STEINMANN, étudiant en 2e année de Génie Mécanique et Productique
  • Marion HELL, étudiante en 2e année en Génie Electrique et Informatique Industrielle

II. Pré-étude

  1. Cahier des charges

Capture2

FS Fonction Critères Niveaux Flexibilité
FP1 Déplacer BB8 dans l’espace Durée Autonomie 30 min F1
Mouvement linéaire assuré Absence d’oscillation F0
Trajectoire dirigée Commande par application de téléphone F1
FC1 Dimension Sphérique Sphère extérieure F0

Rayon

 

297 mm maxi F0
FC2 S’adapter au terrain Surface plane en intérieur
FC3 Utiliser une source d’énergie électrique Stockage d’énergie Electrique F0
Transmission de cette énergie En énergie mécanique F0
FC4 Aspect esthétique donné à l’objet Correspond aux goûts communs Esthétique F2
FC5 Employer un budget maximal Coût 150€ maxi F2
FC6 Communication Enveloppe permettant de transmettre les signaux nécessaires Signal Bluetooth F0
FC7 Assurer la stabilité Répartition des masses homogène Stabilité et équilibre vérifié F1

 

Les contraintes :

La conception d’un tel projet nécessite la prise en compte de plusieurs contraintes. Le robot se déplacera dans un environnement ouvert, il devra donc être en mesure de s’adapter à différents types de sol. Ces sols étant parfois irréguliers, il devra être en mesure de rester stable lors de ses déplacements.

Le robot sera piloté par différents sous-ensembles électroniques, commandés par un microcontrôleur programmé situé à l’intérieur de la sphère. Une application smartphone sera développée pour communiquer avec le robot et piloter ses déplacements. La communication entre le robot et sa commande à distance s’effectuera par liaison Bluetooth.

Les solutions :

Il nous faudra faire particulièrement attention lors de la conception des différentes pièces afin de réussir à équilibrer l’ensemble. Nous allons dans un premier temps concevoir le maximum de pièces symétriques pour obtenir un point de gravité central. Nous prévoirons des emplacements permettant l’ajout de cales pour ajuster l’équilibrage final de l’ensemble, afin de compenser les éventuelles imprécisions de calcul et de fabrication des pièces.

Pour permettre le passage des signaux, nous devrons choisir un matériau perméable aux ondes Bluetooth.

2. Répartition des tâches

rapport

III. Conception

1. Choix de solutions 

  • Partie mécanique

    • Première étude

Partant de zéro, la plus grande partie de notre travail a été de définir comment concevoir la structure d’un robot sphérique, avec la recherche de solutions permettant un bon fonctionnement de l’ensemble. Pour nous aider dans cette tâche, nous avons conçu l’ensemble en 3D sur ordinateur.

Le travail de recherche nous a pris un temps considérable, il nécessite de prendre en compte de très nombreux paramètres qui influeront sur le bon fonctionnement du système.

Après une longue réflexion, nous avons décidé de concevoir notre BB8 de la manière suivante :

rapport 3

Notre système se présente ainsi, nous avons deux demi-sphères à droite et à gauche qui seront sur leurs extrémités « encastrées » avec la paroi intérieure de la sphère. Dans ces deux demi-sphères, on trouve un logement dans lequel viendra se positionner un roulement.

rapport 4

La pièce principale ci-dessus que l’on peut désigner tel un axe, possède de chaque côté une barre de stub, permettant le montage de roulements. Les stubs seront emboutis dans la pièce principale et une fois les roulements montés sur les stubs, on assemblera l’ensemble dans les demi-sphères.

Les deux moteurs que l’on aperçoit ont chacun une fonction bien précise, celui du bas permettra grâce à un déséquilibre et un entrainement sur la paroi intérieure de la sphère sans glissement, de créer un mouvement selon une direction. La roue en bout d’axe n’est pas encore modélisée. Le moteur du bas sera fixé à l’aide d’une tige sur mesure.

Le moteur du haut permettra, lui, grâce à un axe et des masselottes sur chaque extrémité (pas encore modélisés) de créer une rotation de l’ensemble en fonction de la puissance transmise au moteur. Ce dernier sera fixé sur une plaque, qui sera positionnée à l’aide de deux étirés.

    • Solution adoptée

Pour des raisons d’équilibre, d’ergonomie et de fonctionnement la conception de notre ensemble a été modifiée une dernière fois pour obtenir une version optimale. L’avis de nos enseignements fut pour cela très utile. Cette conception va permettre de disposer la batterie sous l’axe principale et donc de le placer au plus bas et diminuer la hauteur du centre de gravité.

 

BB8_pièce_définitive

Les dimensions de la pièce principale ont été modifiées pour des raisons de poids et donc d’équilibre. La pièce initiale était trop imposante. Ci-dessous la nouvelle pièce principale. La surface principale doit être conservée car c’est elle qui va permettre de supporter la carte Arduino.

BB8_pièce_centrale

La deuxième grande modification concerne la fixation du moteur inférieur. Nous avons décidé de concevoir un système permettant un ajustement du contact entre la roue et la surface intérieure de la sphère.

Pour cela les deux étirés vont traverser la plaque centrale et vont permettre un ajustement suivant l’axe Y de l’ensemble par rapport à la plaque principale à l’aide d’une vis de pression.

Un méplat a également été réalisé sur les étirés pour le blocage.

Pour limiter la taille des plaques que l’on peut voir en haut et en bas, un taraudage sera réalisé sur chaque extrémités des étirés.

BB8_pièces et moteurs

Pour les roulements, nous avons décidé de réalisé un montage en X, un épaulement dans les deux logements des demi-sphères va permettre un arrêt sur la bague extérieur et un épaulement sur les deux arbres, l’arrêt sur la bague intérieur.

Nous avons également choisi deux barres d’étirés pour le montage des roulements au lieu du STUB choisi dans la solution précédente (les barres d’étirés étant beaucoup moins chères).

Vous pouvez voir ci-dessus les tiges d’étirés sur lesquels nous allons monter les roulements.

Nous avons cependant décidé de garder la solution de montage des deux arbres. Ils seront montés serrer dans la pièce principale.

BB8_roulements

Concernant la plaque inférieure qui va supporter la batterie. Nous avons réalisé un trou oblong pour permettre de régler la position de la roue du moteur au niveau du contact avec la surface intérieure de la sphère. Vous pouvez voir la solution ci-dessous.

BB8_support batterie

 

 

  • Partie électronique

    • Le microcontrôleur

Afin de piloter les différents éléments, nous avons opté pour l’utilisation d’une platine de type « Arduino UNO ». Les modules Arduino sont des plate-formes de prototypage microcontrôlées « open-source ». Nous avons choisi ce module pour sa facilité d’utilisation, son faible coût, ainsi que sa mise en oeuvre rapide. La bibliothèque de développement Arduino, très complète, permet de configurer de manière simple les différents ports d’entrées/sorties du microcontrôleur présents sur la carte. Ces ports sont utilisables via des connecteurs femelles présents sur le bord de la platine, permettant ainsi de connecter différents équipements ou capteurs.

arduino

Un outil de développement est mis à disposition pour les utilisateurs d’Arduino et permet de programmer en langage C++.

Capture

  • La communication

Cette carte n’étant pas équipée de module de communication sans fil, nous l’avons connectée à
un équipement Bluetooth, de type « HC-05 ». Le protocole Bluetooth fonctionne comme une communication série bidirectionnelle. La plupart des équipements mobiles étant équipés de communication Bluetooth, il sera donc facile d’appairer un appareil afin de piloter notre robot. Nous avons choisi de développer une application smartphone plutôt qu’une télécommande dédiée afin d’assurer une modularité au fonctionnement de notre robot. En effet, si nous souhaitons faire évoluer son fonctionnement, il sera plus simple de modifier une partie programmation (software), que l’implémentation hardware et software d’une carte électronique.    hc-05

 

  • La commande des moteurs

    Nous avons choisi d’équiper notre robot de moteurs à courant continu. Pour en faire varier la vitesse, le module Arduino dispose de sorties « PWM » (signal à rapport cyclique variable). Il est cependant nécessaire d’utiliser une carte d’interfaçage, puisque la consommation en courant des moteurs est nettement supérieure à celle supportée par les ports de sorties de la carte, ce qui serait destructeur pour cette dernière.

    Pour cela, nous utiliserons un montage « pont en H ». En plus de protéger le microcontrôleur, ce montage nous permettra de piloter le moteur dans les deux sens de rotation, mais également d’obtenir ce que l’on appelle un « frein magnétique », en fonction des transistors pilotés :pont h

     

    Nous avons sélectionné le composant « L293D » pour notre montage. Ce composant est un « quadruple demi-pont en H ». En utilisant deux demi-ponts par moteur, nous aurons donc 2 ponts pour les piloter, indépendamment l’un de l’autre.

L293D-Commandsl293d-pins

Toujours dans un souci d’ergonomie et de rapidité de mise en oeuvre, nous avons trouvé un « shield » dédié, à connecter directement à notre module Arduino. Celui-ci comporte différents connecteurs pour le branchement des moteurs, ainsi que pour connecter une alimentation externe.

mshieldv1-schem

shield

  • L’alimentation électrique

Une batterie sera chargée d’alimenter l’ensemble de l’électronique. Cette batterie devra être d’un encombrement modéré, et fournir une autonomie suffisante au robot. Son implantation dans la sphère devra permettre d’y accéder facilement afin d’en effectuer la recharge ou son remplacement.

IV. Fabrication des pièces

Lors de la fabrication des éléments conçues nous avons utilisé différents procédés pour obtenir les pièces souhaitées:

  • L’usinage
  • Moulage par moule perdu

 

Les machines principalement utilisées sont les suivantes :

  • la découpeuse jet d’eau
  • perceuse à colonne
  • fraiseuse traditionnel
  • tour traditionnel
  • tour à commande numérique
  • scie à bande

    1. Méthode

L’IUT disposant d’un parc machine important et d’ateliers divers, nous avons exploité les ressources disponibles :

  • Parc machine GMP
  • IUT Lab
  • Atelier SGM

C’est à partir des machines disponibles que nous avons créé nos procédés.

Lors de nos procédés nous avons choisi les éléments pour correspondre le plus près possible aux éléments normés, et ainsi réduire les coûts et délais.

Moulage des demi-sphères extérieures :

Pour cela nous acheté des demi-sphères en polystyrène, de la résine époxy et nous nous sommes fournis en fibre de verre, puis nous avons effectué un montage collé avec celle-ci.

Nous avons tout d’abord procédé à une première couche de résine sur la demi-sphère. Puis par succession de couche de fibre de verre et de résine époxy, la fibre de verre étant préalablement découpé pour correspondre aux dimensions et à la forme de la demi-sphère.

Après quelques jours de séchage nous avons procédé à la découpe de la demi-sphère puis à leur ponçage.

2. Programme

Deux programmes de commande numérique ont été réalisés :

  • programme de tour à commande numérique pour réaliser les demi-sphères intérieures.
  • programme fraiseuse à commande numérique pour la plaque axe principale. Ce dernier à été testé mais n’a pas fonctionné du à des efforts de coupe trop importants dans le sens opposé au fond de l’étau. Ceci à éjecté la pièce. Nous n’avons pas pu continuer le travail car le CU72 est tombé en panne.

La réalisation des pièces s’est effectué normalement.

Pour réduire les usinages de l’ensemble des pièces simples, nous avons défini les épaisseurs directement aux côtes du brut.

V. Montage

Une fois les pièces créées, nous avons pu passer à l’assemblage. Ci-dessous la vue des différentes pièces ainsi que d’un montage provisoire du robot.

BB8_pièces fabriquéesBB8_montage

Le câblage entre les différents éléments a été réalisé par la même occasion. Il a alors s’agi de relier l’Arduino (équipé de son shield moteur) au module Bluetooth, à la batterie, ainsi qu’aux moteurs.

 

BB8_schema cablage

VI. Partie programmation

Le robot étant pré-monté, nous avons pu effectuer les essais logiciels et tester la commande du robot à distance. Nous avons alors du programmer notre module Arduino pour que le robot réponde de la bonne manière à une commande réceptionnée.

La programmation de l’Arduino a permis de :

  • Gérer les ports d’entrées et sorties de l’Arduino
  • Gérer la liaison série (Bluetooth)
  • Gérer la communication (réception de trames)
  • Piloter les moteurs

1. Structure du programme

Le programme réalisé s’est structuré de la manière suivante :

1. Configuration (Bluetooth, entrées et sorties du modules Arduino)

2. Attente de la réception d’une trame

3. Après réception, vérification du contenu (début et fin de trame) puis sauvegarde de la valeur

4. Exploitation des coordonnées : récupération et séparation des coordonnées en x et y puis conversion

5. Commande des moteurs en fonction de l’instruction reçue

Les programmes Arduino se séparent en deux boucles principales distinctes :

  • La fonction « setup », qui correspond à l’initialisation du module. Cette fonction n’est effecuée qu’une fois au démarrage de l’Arduino. C’est dans cette fonction que l’on effectuera la première étape.
  • La fonction « loop ». Il s’agit d’une boucle qui s’exécute tout au long de la mise en marche de l’Arduino, une fois la fonction « setup » réalisée. En d’autres termes il s’agit de la fonction principale, dans laquelle nous effectuerons les étapes 2 à 5. Nous appellerons alors simplement les fonctions « LectureTrame », « CalculCoordonnees » et « PilotageMoteurs » les une après les autres, en continu.

2. Fonctionnement du joystick

De nombreuses applications existantes permettent de dialoguer par liaison Bluetooth via un smartphone. Nous avons choisi d’utiliser l’application « Blueduino » disponible sur Windows Phone, qui permet très simplement de se connecter à un appareil par liaison Bluetooth, puis de lui envoyer une trame quelconque (caractères ASCII saisis via le clavier du téléphone au travers d’un terminal), soit des informations sur la position d’un joystick présent à l’écran.

L’application se présente de la manière suivante :

BB8_Application blueduinoBB8_Application blueduino joystickjoystick

 

A chaque déplacement du joystick à l’écran, une trame est automatiquement envoyée au travers de la liaison Bluetooth, contenant les informations suivantes :    * CoordonnéeX , CoordonnéeY, #

3. Développement des fonctions

Il a donc fallu développer les fonctions capables de récupérer la trame envoyée, de traiter ses informations puis de les exploiter pour déplacer notre robot.

  • Fonction LectureTrame

Cette fonction a pour simple but de lire une trame reçue par la liaison Bluetooth, de contrôler son intégrité (caractères de début et fin de trame), puis de retourner sa valeur dans une variable de type chaîne de caractères, qui sera stockée par la fonction principale dans une variable globale pour être exploitée par les différentes fonctions.

BB8_Fonction LectureTrame

  • Fonction CalculCoordonnees

Cette fonction permet de récupérer la trame reçue précédemment, d’en séparer les composantes (coordonnées X et Y), puis d’en effectuer une conversion. Pour une meilleure compréhension et une exploitation plus simples de ces coordonnées, nous avons choisi de les convertir vers des valeurs positives et négatives (de -126 à 0 et de 0 à 127) au lieu des valeurs de 0 à 255 fournies par l’application Blueduino.

Cette fonction prend en paramètres la trame (chaîne de caractères) reçue, ainsi que deux pointeurs vers des variables globales dans lesquelles seront stockées les coordonnées du joystick.

BB8_Fonction CalculCoordonnes

  • Fonction PilotageMoteurs

Une fois les coordonnées récupérées, il faut les exploiter pour déplacer notre robot au travers des moteurs. Il s’agit donc de déterminer la vitesse de rotation du moteur du haut (qui met le robot en rotation) ainsi que du moteur du bas, qui entraîne la roue et donc la sphère vers l’avant ou l’arrière, à une vitesse donnée.

Les coordonnées ayant été converties vers des valeurs positives et négatives, nous pouvons utiliser directement un proportionnel de leur valeur pour gérer la rotation du robot. Le signe de la valeur en X nous permettra donc de connaître le sens de rotation, la valeur nous permettra d’obtenir directement un proportionnel de la vitesse du moteur à entraîner.

Pour la vitesse d’avancement du robot, nous avons cependant choisi d’utiliser la longueur du segment formé par les coordonnées X et Y. En d’autres termes, plus le point de destination du joystick est éloigné du centre, plus le moteur ira vite. Le sens de rotation (avant ou arrière) est quant à lui déterminé par le signe de la coordonnée en Y.BB8_Calcul vitesse moteur

BB8_Fonction PilotageMoteurs

VII. Difficultés rencontrées 

Nous avons rencontré plusieurs difficultés ayant retardé notre planning mais également notre conception de l’ensemble.

Après avoir commencé à dessiner plusieurs pièces en 3D, nous nous sommes rendu compte que notre système était surdimensionné en terme de matières, nous nous sommes également rendu compte que nous utilisions trop de pièces.

Nous en avons donc conclu qu’il nous fallait concevoir l’ensemble d’une autre manière, en minimisant le nombres de pièces et en concevant au plus léger et au plus simple. Ci-dessous une photo de notre première conception :

rapport 5

Comme nous pouvons le voir ci-dessus, les différentes pièces sont très grandes, elles engendrent également un copeau important lors des usinages, mais aussi une cotation lourde et des mises en position importantes.

Une autre difficulté a été de prendre en compte l’équilibrage du système, car pour un bon fonctionnement l’équilibrage de l’ensemble est primordial.

C’est la raison pour laquelle nous avons revu la conception de l’ensemble pour placer le module Arduino et la batterie au centre. Nous avons également décidé de respecter une symétrie suivant les deux plans, en rouge et en bleu, lors de la conception de nos pièces. Ces deux étant les plus important dans notre cas.

 

Représentation_3D_BB8_Projet_IUT_GMP_Mulhouse

 

VIII. Avancement du projet

Au terme du délai imparti, nous ne sommes malheureusement pas arrivés aux objectifs que nous nous étions fixés. Bien que les pièces principales soient réalisées et que la programmation soit fonctionnelle, nous n’avons pas bénéficié de suffisamment de temps pour mettre en commun ces deux environnements. Pour arriver à un robot totalement abouti, les pièces auraient du être fabriquées et assemblées bien avant le terme du projet pour que la partie électronique puisse être développée sur un assemblage concret. Malheureusement ce point n’était pas réalisable au vu de l’emploi du temps des élèves de GMP.

Les points à améliorer pour obtenir un projet abouti sont les suivants :

  •        La mise sous tension

A ce jour, la boule se ferme grâce à du ruban adhésif, ce qui complique très clairement sa mise sous tension et son arrêt étant donné qu’aucune pièce n’est accessible de l’extérieur. Il faudrait donc retravailler ce point pour obtenir un système d’ouverture simplifié.

  • La roue

Par souci de temps, la roue n’a pas pu être modélisée par le biais des machines dont nous disposons à l’IUT. Les différentes solutions testées ne possédaient pas suffisamment d’adhérence pour entraîner suffisamment la sphère.

  • Le module infrarouge

Un module infrarouge a été développé pour évoluer vers un déplacement autonome du robot à la recherche d’une balise. Malheureusement, la sphère en fibre de verre n’est pas suffisamment perméable à ces signaux pour obtenir un résultat concluant.

Conclusion

Ce projet nous a permis de réaliser un système complet, de la conception jusqu’au montage, ce qui fut très intéressant.

La fabrication nous a permis de découvrir de nouveaux procédés de mise en œuvre, de construction, de modélisation etc. Le choix des solutions au travers de multiples possibilités a été très enrichissant puisqu’il a nécessité de lister les points positifs et négatifs de chaque solutions pour ne garder que la meilleure, en fonction des différentes contraintes posées.

Nous nous sommes plongés dans l’univers de la gestion de projet, ce qui nous a confronté à la nécessité d’une bonne communication pour la réalisation d’un projet. Ce point nous a très clairement mis en difficulté et c’est ce qui nous a retardé dans notre réalisation. La communication entre les deux départements a été compliquée, notamment à cause des emplois du temps différents mais également parce que les objectifs posés au départ différaient. En effet, les finalités entre les deux départements n’étaient pas les mêmes : réalisation des pièces pour la partie génie mécanique, réalisation du robot fonctionnel pour la partie génie électrique. Ceci nous démontre également la nécessité de déterminer un cahier des charges exhaustif et clair en début de projet.

L’aspect collaboratif entre les deux départements présente néanmoins de grand avantages, comme la réalisation très complète de projets comme ce robot. Nous en retenons une expérience très enrichissante.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.