Dans la version actuelle de R.Ian, j’ai décidé d’utiliser des servomoteurs à rotation continue. En effet, pour faire un robot, il est difficile de faire plus simple en matière d’assemblage, puisque chaque servomoteur utilisera un fil pour l’accès au +5V, un second pour la masse, et un troisième connecté à un GPIO. Cela signifie que pour les deux moteurs, on utilise seulement deux GPIO, et que l’assemblage est très simple, ce qui est l’un des objectifs du robot. Il nous faut maintenant des roues adaptées. Puisque nous cherchons à réduire les coûts, une solution est de les fabriquer, ce qui nous permettra également de les ajuster précisément à nos contraintes. Détaillons maintenant tout cela.

La motorisation

Nous utiliserons ici des servomoteurs à rotation continue. Le problème de la motorisation d’un robot a été abordé dans le cadre du programme REA, mais nous reviendrons rapidement dessus. Un servomoteur est un moteur électrique dont on contrôle la position précisément. Celui ci peut donc être orienté, généralement entre -90° et +90° (de gauche à droite). Ainsi, un servomoteur est parfait pour tourner un mécanisme à un angle précis, beaucoup moins pour faire tourner des roues, puisqu’il ne peut pas faire de tours complets. Seulement, il existe des servomoteurs dits “à rotation continue”, pour lesquels on supprime ce qui bloquait le servomoteur. Ainsi, cela supprime le concept général du servomoteur, ce qui en fait… autre chose qu’un servomoteur, dans l’absolu. Mais peu importe, ces objets appelés servomoteurs à rotation continue nous seront bien utiles. Voyons comment ils fonctionnent.

On s’en sert au sein d’Arduino comme d’un servomoteur classique, en donnant des ordres pour aller à un angle précis, cependant le résultat ne sera pas le même. En effet, la partie qui permet au servomoteur de “savoir” ou il se trouve est bloquée sur le milieu (0°), et ne bougera pas quand le moteur tourne. De ce fait, quand on lui donne l’ordre d’aller à 0°, il ne se passera rien, car le moteur croit déjà être à cette position.

En revanche, si on lui ordonne de se rendre à une position autre que 0°, il tournera dans le sens souhaité (par exemple à droite pour un angle positif, à gauche pour un angle négatif), et d’autant plus vite qu’on sera loin de 0. Ainsi on peut contrôler le sens de rotation, mais également la vitesse du servo à rotation continue.

Attention, dans les explications ci dessus, je parle de 0, -90 et +90, mais cela peut être de 0 à 180, la position neutre étant de ce fait 90°. Cela dépendra de la bibliothèque utilisée.

Le servomoteur utilisé : Fitec FS90R

Pour ce robot, j’ai utilisé des micro-servos Fitec FS90R, au format micro-servo 9g. Ils ressemblent à ceci :

fitec fs90r servomoteur à rotation continue

Fitec FS90R –  servomoteur à rotation continue

En gros, c’est le même format qu’un classique Tower pro SG92R, ou tous les autres compatibles. Les engrenages et l’axe de sortie sont en nylon. Je me suis procuré ces exemplaires pour environ 5$ l’unité chez Pololu.  Il est également disponible chez Adafruit pour 7.5$ l’unité, ou encore en pack de 5 sur Aliexpress pour 18$. Selon ces deux sites, les caractéristiques sont les suivantes :

  • vitesse à vide : 130 tours par minute à 6v;
  • vitesse à vide : 110 tours/minute à 4.8v;
  • couple de blocage à 6v : 1.5kg-cm;
  • couple de blocage à 4.8v : 1.3kg-cm;
  • courant de blocage à 6V : 650mA;
  • courant de blocage à 5V : 550mA;
  • courant à vide à 6V : 120mA;
  • courant à vide à 5V : 100mA;
  • masse : 9g;
  • dimensions : 32mm x 30mm x 12mm ;
  • 21 dents sur l’axe central;
  • longueur du câble : 24cm.

Les caractéristiques sont donc prometteuses, avec une vitesse intéressante, un couple correct, et une consommation raisonnable.

 

Les roues

Nous avons ici opté pour le fait de fabriquer les roues nous-même. En effet, il existe des roues pour ce moteur, vendues ici chez Pololu pour 5$ la paire, ou à 2.5$ l’unité chez Adafruit, ou encore en pack de 10 roues chez Aliexpress pour 20$, mais je n’en avais pas quand j’ai développé ce robot, et j’ai de plus décidé de fabriquer les miennes pour pouvoir en faire qui soient configurables.

Je les ai donc réalisées avec OpenSCAD, tout comme pour le châssis. Ces roues ont par défaut un trou central (celui par lequel on passe la vis de fixation du servomoteur), et quatre trous adaptés aux bras de servomoteurs fournis avec le FS90R, et 5 bras.

Voici le lien vers le fichier stl des roues,  prêt à imprimer sur le github du projet.

En cliquant sur les liens STL de cet article, vous pourrez les visualiser en 3D dans votre navigateur, en les tournant à volonté (et en zoomant également).

Toutefois, à peu près tous les paramètres des roues peuvent être ajustés, comme l’épaisseur de la jante, la largeur de la roue, du disque central, etc… Je ne vais pas illustrer tous les changements possibles, mais simplement la modification du nombre de bras de la roue. On peut en effet le changer en modifiant une seule variable, servoWheelsArmsCount01, en changeant sa valeur (5 par défaut, parce que c’est ce que j’ai vu sur les roues de voitures en cherchant sur google). Nous pouvons voir sur les images ci dessous le résultat :

En pratique, voyons le résultat lorsque la roue est imprimée :

Roue en PLA sans pneu pour R.Ian,modèle à 5 branches et 4 trous de fixation.

Roue en PLA sans pneu pour R.Ian, modèle à 5 branches et 4 trous de fixation.

En pratique, cette roue est fonctionnelle, mais n’aura pas une très bonne adhérence, car la surface est plutôt lisse. Pour y remédier, nous ajouterons un pneu, mais nous reviendrons sur cela plus tard. Pour l’instant, l’essentiel est que l’impression 3D est très simple, et fonctionne parfaitement. La roue est bien ronde, équilibrée, et sans artefacts majeurs. A l’avenir, je ferai une seconde version de ces roues avec des crans sur l’extérieur, pour favoriser l’adhérence pour ceux qui ne pourraient pas imprimer de pneus.

Pour imprimer ces roues, il faut sélectionner un matériau rigide, tel que le PLA ou l’ABS. Sur l’exemple ci dessus, la roue est en PLA. Dans l’idéal, un matériau avec un peu plus de souplesse pourrait apporter un léger plus en se déformant davantage du fait des déformations du terrain. Par exemple un nylon légèrement souple pourrait être intéressant, en fournissant un amortissement léger, mais c’est à tester. En pratique, mes roues en PLA ont parfaitement fonctionné, et on peut penser que le pneu remplit déjà un rôle d’amortisseur.

Dans tous les cas, il s’agit d’optimisation théoriques minimes, passons donc maintenant aux pneus.

Les pneus

Les pneus quand à eux seront imprimés dans un matériau souple ayant une texture caoutchouteuse, telle que le Ninjaflex, ou encore le Semiflex. Ces pneus sont légèrement plus petits que les roues (97% de la taille des roues) de façon à être très serrés contre la roue une fois en place et ainsi éviter toute friction. En pratique, j’ai conçu deux modèles de pneus  : les pneus lisses et les pneus rainurés (liens vers les fichiers STL sur le github du projet) :

Une fois imprimé en ninjaflex, on obtient le résultat suivant :

Pneu tout-terrains pour R.Ian, en Ninjaflex noir.

Pneu tout-terrains pour R.Ian, en Ninjaflex noir.

Sur la photo du dessus, on ne voit pas particulièrement la souplesse du matériau, c’est pourquoi j’ai rajouté les deux photo ci après :

Il faut quelque peu insister pour mettre le pneu en place sur la roue, mais cela fonctionne, et une fois en place, il ne bouge pas. Le ninjaflex offre également une texture caoutchouteuse qui adhere bien sur la plupart des matériaux.

Je n’ai essayé que la version rainurée, qui permet une très bonne adhérence, il faudra que j’essaie le pneu lisse, mais lui n’est pas garanti pour le moment. En revanche, sur du carrelage, bois, béton, on a une parfaite traction avec le second pneu. Pour ceux qui ne pourraient pas imprimer le pneu en Ninjaflex, une excellente solution utilisant des élastiques est présentée dans cette vidéo,  et une seconde solution tout aussi ingénieuse, mais utilisant cette fois du joint en D de fenêtre est visible sur cette autre vidéo. Pour la première, je ferai une roue avec des crochets permettant d’accrocher les élastiques facilement.

 

L’assemblage

Pour assembler le tout, la première étape est de mettre les servomoteurs en place sur le châssis, comme illustré ci dessous :

Installation des servomoteurs Fitec FS90R sur le châssis de R.Ian

Installation des servomoteurs Fitec FS90R sur le châssis de R.Ian

Une fois les servomoteurs en place, il suffit alors de les fixer en utilisant les deux vis M2 fournies avec ceux ci.

On assemble alors les roues, en mettant le pneu en place, pour obtenir ceci :

Roue de R.Ian avec pneu et fixation de servomoteur.

Roue de R.Ian avec pneu et fixation de servomoteur.

Sur l’image ci dessus, on note également qu’on à placé le bras de servomoteur au centre de la roue, et qu’on l’a vissé avec les vis M2 fournies avec le servomoteur. La roue est alors assemblée, et on peut ainsi la mettre en place, en utilisant la vis centrale fournie avec les servos :

La roue prend place sur le servomoteur installé

La roue prend place sur le servomoteur installé

Quand le servo est emboîté, la vis prend place au centre et solidarise le servo et la roue. On dispose dès lors d’une propulsion. Plus tard, je reviendrai sur cela, car pour l’instant, le robot s’appuie directement sur l’axe du servomoteur, qui n’est pas extrêmement solide. Je réfléchis à une façon  d’utiliser un engrenage pour entraîner la roue plutôt que d’avoir une sortie directe. Ainsi, la roue serait supportée par un axe en metal, plus solide.

La roue avant

Nous avons maintenant deux roues motrices, mais cela ne suffit pas. Il faut un troisième point de contact avec le sol pour assurer l’équilibre du robot. J’ai opté pour le premier prototype pour une roue sur pivot achetée en magasin de bricolage.

installation de la roulette sur pivot de R.Ian

installation de la roulette sur pivot de R.Ian

Les 4 trous de fixation sont bien entendus bien placés, puisqu’ils ont été placés paramétriquement, en fonction des mesures effectuées sur la roulette.

Du coup une fois les 4 vis en place, nous avons bien une plate forme mobile motorisée :

Châssis de R.Ian avec moteurs et roues installés.

Châssis de R.Ian avec moteurs et roues installés.

Dès lors, il nous maque l’alimentation, l’électronique de commande, et les capteurs pour pouvoir avoir un robot opérationnel!

Réseaux sociaux