Bonjour à tous! Je voudrais vous présenter mon nouveau projet de robot, R.Ian.
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 et très économique. 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.
Voici une photo du robot pendant son assemblage :
Que fait ce robot?
Ce robot est un robot classique, qui ne prétend pas apporter une approche révolutionnaire à cette classe de robots. Son objectif est autre, nous reviendrons dessus plus bas. En pratique, c'est un robot à conduite différentielle (deux moteurs indépendants), équipé de capteurs de contact (gauche et droite, sur l'avant) et d'un capteur de distance monté sur un servomoteur pour faire un balayage à 180° (ou moins, c'est entièrement programmable), et ainsi effectuer un algorithme d'évitement d'obstacles.
Il dispose également de multiples LED RGB programmables à souhait pour afficher des informations, et se recharge en branchant un câble micro USB à l'arrière.
On le programme avec un câble mini USB juste au dessus.
La vidéo ci dessous permet de voir une démo en vidéo d'un algorithme de base, utilisant uniquement les capteurs de contact :
(pour ceux qui ne pourraient pas voir la vidéo, voici le lien vers la vidéo sur youtube).
Qu'a t'il de particulier?
R.Ian est pensé pour être simple à assembler (un simple tournevis suffit et une petite heure), très économique (35€ la version de base, moins de 50€ avec un raspberry pi zero et une clé wifi en plus) tout en étant extensible, et en permettant des algorithmes avancés. Ce robot est pensé pour permettre d'apprendre à programmer, mais ne se limite pas à des programmes basiques puisqu'on peut faire des programmes plus complexes.
Je compte m'en servir pour mes enseignements de programmation en BTS. Il est complètement ouvert, ce qui signifie que vous pouvez modifier le châssis à volonté, facilement (j'ai pas mal bossé sur le châssis, conçu de façon paramétrique avec OpenSCAD, un logiciel libre et multi-plateforme, et pour modifier le robot, il suffit de changer certaines variables pour l'allonger, l'élargir, changer l'épaisseur des éléments, la taille des roues, le nombre de rayons, etc...),même si vous en savez pas utiliser openscad. J'explique plus en détail ce qui est configurable dans ce billet que j'ai écrit sur ce robot. L'électronique est décrite dans Fritzing (un autre logiciel libre et multi-plateforme), et donc facile a reproduire, adapter, modifier. Le cœur du robot est un Arduino nano, carte open hardware, et se programme avec le logiciel Arduino, lui aussi libre et multi-plateforme. On peut par dessus rajouter un Raspberry pi, et utiliser Raspbian, une Debian pour le Raspberry pi, pour programmer en C, python, java, bash...
Le plus de pièce possibles ont été pensées pour être faites à l'imprimante 3D : le châssis, les roues, les pneus, le support du servomoteur...
En dehors de R.Hasika, c'est mon robot le plus "pensé", au sens ou chaque élément a été pensé, au point que je pourrai fournir une fiche d'assemblage précise plutôt que des indications générales. R.Hasika a eu plus de temps de conception, et est supérieur en divers points, mais c'est un robot plus complexe, plus cher, et surtout qui n'est pas encore opérationnel (mais presque!)
Ou en est t'il de son développement?
R.Ian n'est pas terminé, et est toujours en développement. Toutefois, il est complet en terme de fonctionnalités, puisque l'électronique est faite, il y a un châssis fonctionnel, avec un ensemble de pièces adaptées, et il existe un prototype fonctionnel. Il reste des choses à faire, mais elles ne sont pas indispensables au fonctionnement du robot. Des améliorations sont prévues, mais elles ne sont pas non plus nécessaires pour avoir un robot fonctionnel.
Je continue donc à travailler dessus, et je ferai les mises à jour sur toutes les ressources dédiées à ce robot. Mais n'importe qui peut dès maintenant faire son R.Ian et s'en servir. Quand tout ça sera fini et peaufiné, je ferais un gros tutoriel, comme j'avais fait pour R.Cerda, sauf que cette fois tout y sera, et que ce sera bien plus facile et moins cher
Ressources
R.Ian étant open-source et open-hardware, vous pourrez trouver tous les éléments relatifs à celui ci sur le Github du projet (fichiers pour l'impression 3D, fichiers scad pour les modifier, fichiers fritzing, codes d'exemples, etc).
Vous trouverez ici la page centrale du projet R.Ian en Français, sur mon blog.
Un billet rapide de présentation ici (avec une galerie), avant de rentrer dans le vif du sujet avec ce billet expliquant la conception du châssis et les contraintes que je me suis fixées pour créer ce robot. Pour les anglophones, j'ai écrit beaucoup de choses sur ce robot sur la page de projet de R.Ian sur Hackaday.io, dont des détails que je n'ai pas encore commentés en français (mais ça vient). Vous trouverez également la page du projet R.Hasika sur le même site, même si pour celui la, il y a beaucoup de ressources en français sur mon wiki.
Enfin, dans ce sujet, je reviendrai sur l'évolution du projet et les avancées, mises à jour, etc...
Au passage, sur le github, en cliquant sur les fichiers STL, vous pouvez les visualiser en 3D et ainsi voir les différentes pièces du robot. Par exemple, les pneus crantés, les pneus lisses, les roues, le châssis...
J'espère avoir captivé votre intérêt, et je souhaite que ce projet puisse être un robot réellement facile à faire par un débutant qui souhaite apprendre la robotique. Je vais continuer à travailler pour qu'il soit possible pour quelqu'un n'ayant jamais touché à cela de créer son premier robot. Au départ, je l'ai pensé pour mes cours de programmation, mais souvent les élèves/étudiants veulent faire leur robot, donc j'ai fait en sorte qu'il soit facile à faire, et accessible, même pour un collégien. Et pour les plus jeunes encore, vu le prix, ça ne sera pas trop dur de convaincre les parents (même s'il faudra qu'ils trouvent un fablab pour imprimer les pièces).
Bref, l'objectif c'est que ce soit réellement clés en main, et facile à construire. Mais ça ne veut pas dire simpliste, puisqu'on pourra utiliser de plus en plus de capacités du robot en progressant, voire en rajouter par la suite.
A bientôt pour la suite