Présentation générale du robot

R.Ian est un robot conçu pour permettre l’apprentissage de la programmation. Il à pour objectif d’être facile à construire et assembler, tout en étant extensible. Le nom du robot est un hommage à Ian Murdock, le fondateur de la distribution Linux Debian décédé en fin 2015. Cette distribution a une importance cruciale pour Linux en général, pour le logiciel libre, et pour l’informatique dans son ensemble.

R.Ian pendant son développement

R.Ian pendant son développement

Objectifs de design

Pour ce robot, nous plaçons diverses contraintes et objectifs. Il ne s’agit pas de faire le robot le plus évolué du monde, mais de faire un robot simple, performant et économique. On cherchera donc à remplir les objectifs suivants :

  • le tout doit être économique (sans que ce soit au détriment de la qualité/fiabilité);
  • le robot doit être solide pour résister à un usage en milieu scolaire;
  • il doit être facile à fabriquer avec les bons outils (une imprimante 3D et un fer à souder);
  • il doit être simple à assembler, démonter et réparer;
  • on doit pouvoir le faire évoluer simplement, remplacer certaines parties, modifier des options;
  • il doit être simple à programmer pour les algorithmes simples;
  • il doit également permettre d’aller plus loin avec des algorithmes plus complexes.

Conception générale

le châssis

La conception du châssis est abordée plus en détails dans ce billet.

Pour atteindre ces objectifs, certains choix de design ont été effectués.  Ainsi, j’ai favorisé l’utilisation de l’imprimante 3D au maximum. Certes, ce n’est pas un outil que tout le monde possède, mais de plus en plus de fablabs, hackerspaces ou même établissements scolaires en disposent. La plupart des utilisateurs peuvent accéder à une telle machine non loin de chez eux. Le choix de l’impression 3D se justifie principalement pour le fait que cela nous permettra de designer des pièces complexes qui permettront de simplifier l’assemblage. J’ai donc passé beaucoup de temps sur la “planche à dessins”, afin de penser à divers éléments qui permettront de rendre simple l’assemblage, la réparation ou la modification du robot. En pratique, cela m’a permis de concevoir un chassis fait d’une seule pièce, comme on peut le voir ci dessous.

R.Ian - chassis conçu dans openscad

R.Ian – chassis conçu dans openscad, version à servomoteurs

De nombreux trous sont présents, même si tous ne sont pas utilisés pour le moment. Cette version du châssis est pensée pour utiliser des servomoteurs à rotation continue, et une batterie lipo de type 18650 et une roulette sur un pivot. Le châssis est prévu pour que tous ces éléments puissent se fixer facilement dessus. Des emplacements sont prévus pour fixer des capteurs, et d’autres pour des extensions.

Ce châssis s’imprime en moins de deux heures en PLA, mais peut également être imprimé en nylon ou en ABS. Dans le cas du PLA, il m’a fallu un peu moins de 11 mètres de filament, soit 32 grammes (environ 97 centimes pour un PLA à 30€/kg). Le tout est pensé pour une impression facile, sans support ou technique avancée. Voici le lien direct vers le châssis prêt à l’impression, en stl.

 

châssis de R.Ian en PLA gris. Il s'agit de la version à servomoteurs.

châssis de R.Ian en PLA gris. Il s’agit de la version à servomoteurs.

La photo de droite illustre l’aspect du châssis imprimé en PLA gris sur ma Printrbot simple metal. Le code openscad du châssis est disponible sous licence GPL 3 en téléchargement sur ce lien.

 

L’électronique du robot

Ici, c’est simple : on s’appuie sur Arduino. Des bibliothèques et des exemples de codes innombrables sont disponibles, et la programmation par USB permet de travailler simplement sur à peu près n’importe quel ordinateur. De plus, les Arduino sont en OpenHardware, ce qui permet de poursuivre la logique ouverte du projet. On trouve en outre des clones chinois du Arduino Nano, offrant les mêmes fonctionnalités (voir mon test d’un de ces clones de l’Arduino Nano acheté sur Aliexpress), pour un coût d’environ 2€. Pour simplifier le tout, j’utilise des servomoteurs à rotation continue pour déplacer le robot, donc pas besoin de contrôleurs de moteurs. Il nous faut juste ajouter un régulateur 5V step up pour  alimenter le tout depuis la batterie lithium de 3.7V utilisée, et nous sommes parés. De même, pour les interrupteurs, contacteurs, etc, on utilisera les résistances pull-up internes de l’Arduino pour simplifier l’ensemble (pas de résistances externes à souder). On ajoutera un petit circuit de charge de la batterie pour pouvoir recharger le robot par USB.

Motorisation et déplacement

Les aspects de la motorisation et des roues sont abordés plus en détail dans ce billet dédié au sujet.

Pour des raisons de simplicité, la motorisation se fait via des servomoteurs à rotation continue (bien qu’une version à moteurs DC soit prévue). Pour l’instant, il s’agit de moteurs fitec FS90R, vendus pour environ 5€ pièce chez pololu. Il s’agit de servos “9g”, assez compacts et basiques. Il faut pour aller avec ces moteurs des roues, également vendues chez pololu.

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.

Toutefois ici, j’ai conçu des roues à imprimer en PLA, Nylon, ABS, ou un autre matériau suffisamment rigide. Il en faut deux, une pour chaque moteur. Ce modèle précis prend environ 25 minutes à imprimer, pour 2.54m de filament (8g, 23 centimes). Cette roue reçoit ensuite la fixation du servomoteur et se visse alors sur ce dernier.

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

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

Toutefois en l’état cela ne suffit pas, car ce plastique glisserait sur la plupart des surfaces. On imprimera de fait un pneu pour chaque roue en matériau souple, comme le ninjaflex ou le semiflex. On trouvera le fichier stl de la roue en suivant ce lien, et le fichier stl du pneu en suivant cet autre lien(il existe aussi un autre fichier stl pour un pneu lisse sur le github, mais il n’a pas été testé).

L’impression en ninjaflex prend environ une demi-heure par pneu, pour environ 40 centimes l’unité.

 

L’ensemble une fois assemblé donne ceci :

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

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

On ajoute alors la roulette sur pivot, achetée en magasin de bricolage, et nous avons les trois roues du robot.

 

Le robot assemblé

Une fois assemblé le robot ressemble à ceci :

châssis de R.Ian assemblé avec les roues, moteurs, la batterie et les contacteurs.

châssis de R.Ian assemblé avec les roues, moteurs, la batterie et les contacteurs.

Lorsque l’on rajoute l’électronique, le servomoteur avant et un capteur de distance, on obtient ce résultat :

R.Ian assemblé et fonctionnel.

R.Ian assemblé et fonctionnel.

Par la suite, on rajoutera un capot pour protéger l’électronique, les capteurs, etc. En l’état toutefois, le robot est fonctionnel et peut être utilisé (il l’a d’ailleurs été par des élèves de première S).

Réseaux sociaux