Une pendule, délibérément très complexe, qui a offert une agréable distraction à un ingénieur logiciel débordé, explique  - Rosie Hattersleyundefined

Comme beaucoup d’entre nous, l’ingénieur logiciel de 33 ans Hendrik Ohrens aime à combiner les compétences techniques qu’il utilise pour son travail avec celles qu’il a acquises au travers de ses passe-temps, afin d’obtenir quelque chose de créatif.

« J’adore travailler sur des projets qui mettent en œuvre électronique, mécanique et logiciel », dit-il de son enthousiasme à fabriquer des choses. Ayant une formation en recherche scientifique et en génie mécanique de l’Université de Hanovre, ainsi que quelques réalisations à base de Raspberry Pi à son actif, il décida qu’il était temps de se lancer le défi de concevoir son propre robot. Il jeta son dévolu sur un bras robotisé, car il semblait relativement simple à concevoir, mais possédait « quand même un certain degré de flexibilité ». Lorsque la pendule qu’avait Hendrik s’arrêta de fonctionner, l’idée d’utiliser un bras robotisé pour mettre les aiguilles dans la bonne position lui est immédiatement venue à l’esprit. Vous pouvez voir le bras-horloge en action sur Instagram :  magpi.cc/robotarminsta.


Suivi de chaque mouvement

Hendrik commença par utiliser la cinématique inverse afin de déterminer comment commander le déplacement du bras de son robot – un scénario qui demande à utiliser des formules pour déterminer vers quel endroit va pivoter l’extrémité du bras – mais il s’est vite rendu compte que ce n’était pas la meilleure approche. Il s’est alors tourné vers un Raspberry Pi 3B+, avec l’intention de poursuivre l’exploration de la cinématique inverse avec la bibliothèque ikpy conjointement à l’IA et la vision par ordinateur. En fin de compte, il a constaté qu’apprendre au robot à adopter des poses spécifiques étaient l’approche la plus utile pour répondre à ses besoins. « La fonctionnalité d’apprentissage de la position me permet de déplacer le bras dans une position (avec mes mains), puis d’enregistrer cette position pour une utilisation ultérieure. Cette fonctionnalité s’est avérée très utile pour les tâches que le bras robotisé a effectuées ensuite » explique Hendrik.

« Le Raspberry Pi est l’outil de développement parfait pour moi. Il est puissant, polyvalent, et offre tout ce dont j’ai besoin pour prototyper mes projets », déclare-t-il. Hendrik a non seulement travaillé sur d’autres projets à base de Raspberry Pi, mais il en a tellement accumulé au fil des ans qu’il possède une « Pi Box » dédiée lui permettant de les conserver. « Le fait de pouvoir faire tourner un ensemble complet d’applications modernes, ainsi que de dialoguer directement avec le matériel connecté, en fait mon premier choix lorsqu’il s’agit de prototyper un projet ».

 
undefined
L’ajout des yeux globuleux autocollants était une manière immédiate de donner une personnalité à l’horloge

Il a choisi un Arduino pour dialoguer avec les servos en utilisant la bibliothèque du fabricant, et un Raspberry Pi pour gérer toute la logique, ainsi que pour contrôler l’Arduino qui lui est relié via une interface série et un câble USB. Pour ceci, il a écrit un code personnalisé et il l’a peaufiné au cours du temps (ce qui est toujours en cours) afin de contrôler le bras.

 
devdrik-3.jpg
Le bras robotisé déplace l’aiguille des minutes de la pendule pour mettre à jour l’heure actuelle

Dessins de conception

Hendrik préfère esquisser les plans et les adapter au fur et à mesure, plutôt que de commencer par une conception rigide. Pour son bras robotisé, il a commencé par des servos et un modèle CAO de base qui soit facile à imprimer en 3D et auquel il soit facile ajouter quelques petites pièces. Une fois satisfait de la conception de base, il l’a simplement dupliquée pour réaliser des pièces mobiles supplémentaires et il a relié les servos à l’aide d’un câble.

 
teach-thumbs-up.jpg
Apprendre au bras robotisé quelle position adopter à obligé à démontrer chacune des poses


Il a fallu monter le bras robotisé de manière lui éviter de basculer, Hendrik a donc imprimé en 3D des pinces qu’il a trouvées sur Thingiverse avec lesquelles il a fixé le bras sur la table. Il a ensuite collé la pendule cassée (dont le bras robotisé devait déplacer les aiguilles) sur une boîte en bois, qu’il a ensuite aussi collée sur la table afin qu’elle ne bouge pas. Après quelques ajustements du déplacement du bras, qui grinçait parce qu’il frottait un peu par endroits, Hendrik a entamé le processus bien plus long consistant à apprendre au robot quelle position adopter et quand. Après avoir créé le code un peu étendu des commandes de déplacement, il dit que le bras robotisé pourrait être utilisé pour n’importe quelle sorte de projet à base de Raspberry Pi qu’il désire.
 

Réalisation

01 Téléchargez et imprimez en 3D les pièces du bras robotisé, dont une pince pour la table, si nécessaire. Pour sa version, Hendrik utilise cinq servos Dynamixel XL330-M288-T, avec une carte Arduino et un Raspberry Pi 3B+.

 
devdrik-build-1.jpg



02 Fixez et installez une carte impériale (« Shield ») Dynamixel et un Arduino MKR et flashez ensuite dynamixel_api depuis le dossier code/arduino vers votre Arduino. Il faudra aussi installer et configurer Python 3 et la bibliothèque ikpy sur votre Raspberry Pi et le raccorder à une alimentation électrique.

 
build2.jpg



03 Construisez le bras robotisé en plaçant un servo dans la base ; fixez dessus à l’aide de vis le base_element, suivi des arm_elements. Serrez la base sur une table ou sur quelque chose de solide, sinon le bras va tomber.

 
build3.jpg


Pour tous les détails de configuration et de code, voir : github.com/devdrik/robo-arm.


Maker - Hendrik OhrensHendrik-Ohrens.jpg
Le développeur logiciel Hendrik aime jouer à lacrosse et fabriquer des choses pendant son temps libre.