Poppyno - robot simplifié avec Arduino

On a déplacé ici tous mes posts mis préalablement sur Extending Poppy Family
J’y avais présenté une sorte de kit puis une tête. Pour l’instant, je me focalise plus sur une autre idée, Poppyno, un robot simplifié :

1 Like

Je poste ici une partie qui concerne une idée de nouvelle créature (qui avait été déplacée dans un autre topic lié au Poppy-4dof-arm-mini)

Je pensais à une créature constituée d’un socle en forme de buste, avec un cou et une tête (éventuellement tout ou partie transparents pour voir la raspberry à l’intérieur). Un visage, même très simple, conserve l’aspect humanoïde et l’aspect affectif.

L’articulation du cou permettrait juste de faire oui ou non. Ça fait combien de dof? (2 rotations, non ?) . On peut même avoir un seul degré de liberté (dire non), comme pour une simple poupée.
Le but étant de comprendre comment commander un seul moteur, certes, mais de pouvoir indiquer via la programmation, par un signal ou par un arrêt, que le nombre de degrés de rotation choisi est adapté ou pas (on ne peut pas avoir la tête à l’envers).
On doit pouvoir aussi détecter sa température, une led ou un son indiquant si elle est ou non trop élévée.

La tête serait munie de plusieurs leds (ou d’un écran mais c’est plus cher) pour les yeux (voire aussi pour la bouche) et d’un capteur de pression sur le socle ou le crane. Le nombre de pressions (ou leur force ?) permettrait de communiquer avec le robot.

Si les capteurs ne sont pas trop chers, on peut ajouter un capteur de lumière qui provoquerait le clignotement des leds des yeux.

1 Like

L’idée ici serait de faire un robot Poppy avec seulement 2 moteurs pour le coup et un écran de leds?

Je n’ai pas bien compris l’idée du capteur de pression, c’est pour détecter lorsque quelqu’un touche le robot?

Ooops, ça fait un bail que je ne suis pas venue sur le forum, désolée. Ma réponse, très tardive, est la suivante:

Effectivement, le capteur de pression détecterait si on touche la tête du robot.
Si on mettait un buzzer au niveau de la bouche, la créature pourrait faire un son quand on tapote la tête. Je suppose qu’on pourrait même faire des sons différents suivant la pression et/ou le nombre de tapotements ?

Depuis que j’ai écrit ce post, j’ai vu qu’un participant du Blender User Group de Paris avait réalisé quelque chose de ce genre avec un joli masque style africain (imprimé en 3D) muni de leds au niveau des yeux, et un buste avec 2 moteurs (je crois), le tout commandé par une arduino. La programmation est faite via Blender. Je n’ai pas encore pu voir une démo détaillée, mais le principe est très intéressant.

Pour revenir à mon idée, l’important serait que ce soit très bon marché et simple à programmer, mais que le côté affectif (ou éventuellement artistique, comme dans le projet cité ci-dessus) soit plus pregnant qu’avec un bras robotisé comme il y en a déjà parmi les créatures proposées sur ce site.

Idée complémentaire : monter la tête sur le robot Thymio pour la rendre mobile. Un projet qui ressemble à ça se trouve ici.

Dans ma propre idée, l’intérêt serait surtout de tester différents capteurs (distance, lumière, pression) et actionneurs (un moteur, des leds, un buzzer) et de pouvoir imaginer des programmes les utilisant.
Pour faire tourner la tête avec des capteurs, on pourrait utiliser aussi des capteurs de distance de chaque côté, comme pour le Thymio, afin qu’il tourne la tête du côté où l’on met la main, comme s’il la suivait.

Sinon, ce serait bien de faire un robot entier totalement modulaire que l’on pourraitt compléter au fur et à mesure de ses moyens financiers (et techniques) :
La tête et le cou en premier, puis le tronc, puis chaque bras un par un (version modifiée de Poppy ergo jr) puis les jambes. Prévoir à chaque étape la possibilité de faire rouler le robot sur un Thymio (ou autre) en attendant que les jambes soient complètées.Si chaque module est susceptible de se connecter indépendemment à une base pour pouvoir être utilisé tout seul, ce serait encore mieux (ça permet de s’offrir un bras et non la tête en premier, par ex)

Chaque partie devrait pouvoir se connecter facilement aux autres, à la manière d’un Lego ou des cubelets, ce qui implique de trouver un système pour “brancher” les différents éléments.

Je me suis amusée à faire un essai de proposition (avec Blender) en utilisant les mesures du servomoteur XL-320 qu’utilisent Heol et une version du poppy ergo jr.

Voici aussi la vue de face

Comme je suis très débutante en robotique, je ne sais pas si ce que j’ai imaginé peut rééllement fonctionner, il y a sans doute des améliorations à apporter.

En fait, c’est un peu une extension de ce qui avait été imaginé pour le Cherry project. Ici, la base qui est posée sur le sol est utilisée pour chaque partie, elle contiendrait la carte Raspberry Pi et l’alimentation. Le but est de pouvoir compléter son robot progressivement en fonction de ses moyens. Dans l’idéal, il faudrait que les différents éléments s’assemblent aussi facilement que des légos, mais est-ce possible et assez solide ?

La forme de la base est identique aux côtés de la tête. Ceux-ci pourraient contenir différents capteurs et la facade pourrait accueillir un écran ou autre, chacun pouvant choisir des choses différentes en fonction de ses moyens et de ses besoins. il seraient vissés (ou mieux, clippés) sur la partie centrale.

Dans une version basique, il pourrait juste y avoir des leds pour les yeux (avec des capteurs de lumière qui font que les yeux sont plus ou moins ouverts ou fermés en fonction de la luminosité) et la bouche et éventuellement un buzzer. Sur les oreilles, on peut prévoir des capteurs de distance ou de pression pour faire tourner la tête à droite ou à gauche en approchant la main d’un côté ou de l’autre.

Dans une version très bon marché de la tête, une arduino suffirait peut-être à faire fonctionner un petit moteur, les leds et les capteurs.

J’ai aussi trouvé sur le forum un essai de Poppy Ergo Jr sur un Thymio qui ressemble à ce que je proposais ci-dessus.

Je ne sais pas si l’actuel Poppy Ergo Jr peut servir de bras à Poppy ou s’il est juste une version à part. Dans ce projet (imaginaire), on l’utiliserait directement comme bras. Ma version est un peu différente, mais c’est un peu le même principe.

On pourrait faire des économies en utilsant un moteur moins cher pour le poignet par exemple, dans la mesure où le poids à porter est moins important, mais peut-être est-ce une articulation qui demande de la précision, surtout si on associe une pince au lieu du cone, comme le montre l’image du topic subcité.

Pour étudier le mouvement des jambes, le poids du corps étant sans doute trop important, on peut imaginer de mettre un support autour de la taille afin de soutenir le robot et de placer ce support sur roulette (ce que je n’ai pas fait sur cette image), comme les marcheurs pour les bébés…

1 Like

En résumé, il y a l’idée d’un poppy en kit, de préférence clippable mais surtout totalement modulable (ce qui est déjà un peu le cas), et l’idée de la tête avec un seul moteur pour découvrir la robotique le meilleur marché et le plus simplement possible.

Les deux idées peuvent être liés (si la tête pas chère peut être agrémentée d’autres fonctionnalités par la suite et si on peut mettre cette tête sur le reste du kit), mais pas forcément.

Idées très pertinentes et intéressantes. C’est aussi des usages/besoins que nous avons identifiés.

Nous allons bientôt communiquer sur une nouvelle techno que nous développons depuis 1an et qui devrait se prêter parfaitement à ce que tu présentes.

3 Likes

J’ai avancé un peu sur le look d’une tête et d’une variante de l’ergo jr (voir fichier blend).

Pour l’ergo jr, je me suis directement inspirée d’un autre topic.

L’objectif de cette tête serait donc d’apprendre les bases de la robotique aux enfants (à partir de 9/10 ans), avec un montage facile à réaliser et une partie électronique très simplifiée. La partie programmation pourrait être faite avec un logicel graphique comme Snap.

L’idée ici est de s’inspirer des plaques d’expérimentation (breadboard) pour y insérer des leds ou d’autres composants.
Il faudrait pouvoir les fixer facilement, sans soudure, de manière définitive. Les fils et les résistances seraient placés à l’arrière de la plaque, et on fermerait le crane à l’arrière en le clippant également (je ne l’ai pas représenté dans le fichier blend).

J’étais un peu partie d’une idée comme ça dans un essai de simulation Arduino. Dans ce projet là, je pense placer tout simplement un simple papier ou carton percé de petits trous, sous les leds et le buzzer pour cacher les fils, afin de donner l’impression d’un visage. Mais plutôt qu’un papier, une plaque plastique fine percée de trous aux emplacements des yeux et de la bouche me semblait intéressante, à condition qu’elle soit bien calibrée. Il faut que la photoresistance soit bien visible également.

Dans la tête présentée ici, l’idéal serait d’avoir un système où la résistance et la led sont ensemble, par exemple, on enfonce la led (ou un système contenant une led) dans la plaque et au dos, on clippe dessus un petit bloc contenant la résistance qui fixe le montage et qui est muni de deux fils à connecter à la carte Arduino ou Raspberry. Un peu façon boucle d’oreille…

J’ai imaginé un écran transparent protecteur qui permet quand même de voir la plaque derrière. Il se clipperait sur les côtés de la tête, un peu façon Lego. Les fentes permettent d’enlever les leds ou de les remettre, si l’on suppose un système où les fils se prolongent jusqu’à l’arrière de la plaque (contrairement aux breadboard classiques).
Un dos transparent serait intéressant également pour une meilleure compréhension de ce qu’est un robot.

La photoresistance serait sur le dessus de la tête, par exemple, car si on la place sur le front, cela ne fera plus visage.

2 Likes

2 projets qui ont à voir avec mon idée et/ou peuvent permettre de la développer :

Je me suis entraînée sur Arduino au fablab de la Villette pour faire fonctionner 2 leds et un buzzer en fonction de la valeur d’une photoresistance.
Mon montage est encore très simpliste mais il faut bien démarrer ! J’ai finalement pris une résistance de 10kOhms pour protéger la photorésistance, je n’ai pas encore trouvé comment calculer la valeur minimum nécessaire.

Le programme permet de lancer le buzzer quand la lumière est basse et de faire clignoter les leds quand la lumière est forte.

J’aimerais bien trouver un moyen simple de cacher les résistances et les fils, et que ne dépassent que les leds, le buzzer et la photorésistance.
Je vais déjà essayer de trouver des cavaliers et peut-être imprimer une feuille avec des trous espacés de 2.54 mm comme modèle (ou scanner la plaque d’essai) qui me permettra de perforer uniquement les trous dont j’ai besoin. Je en sais pas si utiliser simplement du carton plume pourrait fonctionner pour un prototype.

Pour le visage, j’aimerais que les éléments soient clippables ou aimantables, ou trouver un système sans soudure quelconque, mais il pense que ce n’est pas possible en raison des risques de court-circuit.

Après avoir rencontré 2 personnes au dernier samedis Robots qui travaillent dans des fablabs, j’ai noté plein de noms que je commence à aller voir sur le web et qui risquent d’être utiles pour mon idée.

Le premier est littlebits, qui propose des kits avec des composants éléctroniques à clipper. C’est opensource (CERN Hardware License).

Je pensais aussi à quelque chose comme les éléments de programmation du robot Cubetto de Primo, qui me semblent mieux que les autres composants clippables que j’ai vu ailleurs puisqu’on peut réaliser ceux-ci soi-même.

Pour faire tourner le moteur de la tête à droite ou à gauche en fonction d’un capteur placé au niveau des oreilles, je ne sais pas trop quoi choisir. Avec un capteur de son, je ne pense pas que le robot saura d’où vient le son mais juste son intensité. Sinon, j’hésite entre capteur de mouvement à infrarouge ou capteur de distance à ultrasons.

En allant sur le forum d’Inirobot, j’ai vu qu’étaient en cours des projets de programmation de Thymio grâce à une tablette Android.
Je ne sais pas si c’est possible aussi pour Poppy et en particulier pour les mini-creatures. Y a-t-il des applis ressemblant à Snap qui permettraient de le faire (cf scratch jr) ?
J’ai vu une page présentant des applis pour les cartes Raspberry mais elles n’ont pas l’air si facile à connecter avec.
Pour Arduino, il y a des apllis en ligne de commande mais je n’ai pas eu le temps de trouver des applis de programmation graphiques.

Dans la tête que je propose ci-dessus, ne pourrait-on pas ajouter un support à l’arrière ou sur le haut de la tête pour fixer une tablette ou un smartphone muni d’une appli permettant de programmer simplement le robot ?

Tous les robots Poppy embarquent un petit server web avec des interfaces de programmation simple. Il suffit de taper nomdurobot.local dans le navigateur pour obtenir ces interfaces. On peut donc utiliser python ou snap! pour programmer le robot sur n’importe quel matériel connecté au réseaux Wifi ou Ethernet (tablette, smartphone, ordinateur…)

1 Like

Ce serveur web est commandé par quelle carte ?
J’ai vu que la Raspberry était utilisée sur certaines versions moins chères de Poppy et qu’elle pouvait, si je ne me trompe embarquer un serveur web.
Mais si on voulait faire un robot du même style avec une carte Arduino, il n’y aurait plus ce serveur, je suppose ?

Pour mon idée, je souhaite que ce soit bon marché et facile à programmer à la fois. J’envisagerais si un tel projet était créé de l’utiliser en atelier robotique avec des enfants de 8 à 16 ans environ, avec des niveaux de difficultés variables selon l’âge.

Je me disais qu’en utilisant Arduino, on pouvait faire des séances de formation sur Arduino avec des projets simples comme faire clignoter 1 ou 2 leds (jusqu’à ce petit projet), puis passer vraiment à la robotique avec une tête de ce type.

Outre Littlebits, j’ai vu sur le forum des liens vers des projets comme Microduino , (un peu cher) et TinyCircuits qui pourraient servir de point de départ, peut-être, mais dans ce cas, il n’y a sans doute pas de serveur web embarqué.

Le stade suivant serait une version entière de Poppy ultra simplifiée, avec une breadboard 400 pts pour le visage, et l’Arduino derrière dans son boitier.
Matrice de leds pour les yeux, led pour le nez et buzzer pour la bouche + photoresistance sur le front.

5 servomoteur dynamixel XL-320 et des profilés en plastique de 15mm de coté dans lesquels on peut insérer les fils. Des charnières style Ollo de largeurs différentes permettent de tenir le tout.
Mains et pieds sont trapézoidaux (peut être en mousse plus ou moins rigide, ou alors, un bloc de mousse à la cheville permettrait plus de souplesse ?)

J’ai pensé aux poupées marcheuses des années 70/80 qui ont peu d’articulations, faudrait voir si la marche est possible avec ce système.

Après discussion avec un ami qui a déjà réalisé des robots, on a imaginé d’utiliser un seul moteur DC placé au centre, entre les hanches, pour réaliser la marche.
Je pense que Mr Walker et ce drole d’animal fonctionnent un peu sur ce principe mais j’ai du mal à trouver d’autres exemples.

On prendrait juste des petits moteurs 9 g pour les 3 autres, le but étant de réduire le prix au maximum.

Outre de diminuer leur nombre, choisir un moteur différent me semble intéressant pour l’apprentissage.
La taille du robot sera la plus petite possible pour qu’il soit très léger.

La carte Arduino dans son boitier et l’alimentation seraient placées au niveau du ventre pour stabiliser le robot et rendre la tête plus légère.

Il manque beaucoup de choses, mais j’avance sur le concept.

Le drole d’animal ressemble beaucoup au srandbeest de Theo Jansen

Tu peux trouver plein de modèles imprimés en 3D :

1 Like

Pour les 3 servomoteurs, peut-être que ce serait bien d’utiliser les HobbyKing™ HK15138 comme dans le projet de new2bots. Ils ne coûtent pas chers.

J’ai commencé le document composants-robot-explications.pdf (229.3 KB) avec les composants que j’ai pu trouver sur internet qui pourraient être utiles et des explications techniques pour m’aider à avancer.

J’ai imaginé un nom pour mon futur robot(s’il voit le jour) : Poppyno. faut-il que je fasse un topic pour lui ?

Samedi 5 mars, au Blender User Group, un ami a montré son montage avec un masque Dan (le projet est plus avancé par rapport à cette vidéo), muni de leds pouvant prendre plusieurs couleurs, et 2 moteurs, l’Arduino nano étant pilotée via un script python de Blender.
Malheureusement, après quelques temps d’utilisation, la carte a planté, probablement parce que l’alim ne provenait que du PC. Une alimentation complémentaire est donc à prévoir dans ce design (sans parler des fils de connexion). De toute façon, pour un robot mobile, c’est indispensable !

et pourquoi pas pyppo robot?
bon, j’avoue que je suis un petit peu énervé, parce que “un ami qui a déjà réalisé des robots, on a imaginé d’utiliser un seul moteur DC” et “un ami a montré son montage avec un masque Dan”, :expressionless:
donc pour info, j’ai un nom et être cité sous le terme approximativement affectif mais impersonnel “un ami” me plait moyennement, que lorsque je passe une heure à te convaincre qu’animer la marche avec un moteur DC serait plus simple “on a imaginé d’utiliser un seul moteur DC” n’est pas très juste et que quand je fais une demo et que l’arduino à 1.50€ grille c’est pas forcément la peine de m’afficher.
Je n’ai toujours pas vérifié ce qui avait grillé sur cette arduino d’ailleurs, ça sert à rien de dire “Une alimentation complémentaire est donc à prévoir” tant que je ne l’ai pas fait, ça peut tout aussi bien être mes mains moites la cause de sa panne :blush:
De toutes façon pour alimenter un DC, une alim n’est pas “à prevoir” une alim est tout simplement indispensable.
Voici quelques exemples de mécanisme simple avec un moteur DC:

ça sera tout de même bien plus simple que du Théo Jansen

et on peut aussi le faire tourner avec un deuxième moteur DC

Sinon, “un ami” (de son pseudo Lorembolo) m’a envoyé cette vidéo de mécanisme de déplacement par Graham Jones que j’ai adoré:

Edddy, un “ami” qui aime bien être cité respectueusement

Désolée, je ne savais pas si tu souhaitais ou pas que je mette ton nom ici mais je voulais quand même dire que j’avais eu des conseils sur ce projet ! :blush:
Mais préfères tu Edddy ou le pseudo de ta chaine youtube, e5dy ?

J’ai fait la même erreur pour ton nom sur le wiki du fablab, je corrige de ce pas ! J’ai par contre carrément oublié le nom de la personne qui m’a donné un bon coup de main là-bas, c’est encore pire !

J’y ai aussi noté, dans les difficultés, ma peur de faire de la soudure, et mon désir de trouver des sytèmes qui n’en nécessitent pas (ou au moins pour les futurs utilisateurs) malgré ce que tu m’as dit sur l’impossibilité de trouver un système fiable qui ne court-circuite pas.

Peut-être faudrait-il voir mon projet de la même façon qu’une plaque d’essai, avec le moyen de tester des capteurs et des composants, à certains endroits (pieds, mains, tête, etc), de faire des essais sur différents types de moteurs, sans que le robot soit super costaud et définitivement assemblé ? Un robot d’essai, donc.

En tout cas, merci pour toutes ces vidéos (et pour tous les conseils que tu m’as prodigués).
Les seuls choses auxquelles j’avais pensé pour le système de marche étaient les poupées marcheuses des années 70, puis les automates anciens ou les robots mécaniques des années 50 mais je n’avais pas trouvé beaucoup de doc sur ces sujets car je recherche plutôt des images fixes que des vidéos. Et je suis loin de connaître autant de robots que toi !

En suivant ton exemple, j’ai trouvé d’autres vidéos (dont cet exemple virtuel où on voit assez bien le mécanisme),.
Et même un automate qui descend les pentes sans moteur, inspiré d’un modèle en bois ! Mais pour le plat et les montées, un moteur sera préférable ! :relaxed: Sa simplicité est intéressante, de même que ceux que tu me présentes ici.

Je vois qu’il faut des pieds bien stables pour que ça marche. Est-ce que des chevilles sur ressorts ou des pieds un peu souples (mais pas trop) seraient utiles ou non ?

Pour l’alim, j’avoue que de mon côté, j’avais complétement oublié d’y penser dans mon projet de départ, comme on le voit dans mes posts précédents et dans ma modélisation !
Donc finalement, si tu n’avais pas évoqué cette possibilité samedi dernier (fusse-t-elle responsable du grillage de la mini carte ou pas), j’aurais fait encore plus n’importe quoi ! C’est surtout pour cette raison que j’ai cité ce petit problème.

De mon côté, ma peur de faire griller ma carte Arduino (beaucoup plus chère), voire mon ordi, m’a retenue de faire des tests pendant de longues semaines, ne serait-ce que pour allumer une simple led ! Et me bloquera sans doute encore pour la suite…

Apparemment, il pourrait aussi y avoir d’autres soucis avec Arduino et les petits moteurs, comme tu me l’as dit. Ne risquent-ils pas de chauffer ?
Les expériences des autres (et des amis partageurs en particulier) sont donc toujours enrichissantes et ce n’est pas quelques petits soucis lors d’une démo qui changent l’intérêt de ton projet, que l’on a bien vu fonctionner avec Blender.

Pour la nouvelle suggestion de nom pour mon robot, bravo pour le jeu de mots ! :smile:

Suite au Samedis robots d’aujourd’hui à la Villette sur Matlab, Simulink, Arduino et les robots Lego, je me pose de nouveau des questions sur l’utilisation d’un seul moteur pour les jambes de Poppyno.

Dans le cas des robots Lego Mindstorm (comme pour Thymio), c’est la différence de vitesse entre les moteurs droit et gauche qui permet au robot de tourner.
Pour un robot bipède sans roues comme Poppyno, y a-t-il des méthodes différentes pour changer sa direction sans devoir ajouter trop de moteurs ?

Pour mon projet, je dois me demander si l’intérêt est avant tout d’avoir une mobilité importante ou s’il s’agit juste de tester différents types de composants, capteurs et actionneurs, objectif que j’avais plutôt privilégié jusque là avec le prix le bas possible.

Cependant, si le robot ne peut pas faire grand chose, cela peut aussi être décevant pour des débutants en informatique.

D’autre part, j’ai demandé à l’animateur des Samedis Robots s’il existait des moteurs de type rotule simulant l’articulation des épaules, mais il m’a dit que c’était très compliqué à réaliser. Y a -t-il des travaux sur ce genre de système liés à Poppy ou à d’autres robots ?

Même si ça peut se trouver, j’imagine que ce serait trop cher pour mon projet. Dommage !

Suite à cette réflexion, je me demande si je ne pourrais pas reprendre ma 1ère idée de kit et la combiner avec Poppyno.

L’idée est quand même différente : obtenir à chaque fois un robot mobile, si possible bipède, même si on ne dispose pas du budget et des connaissances pour avoir tous les éléments nécessaires à des mouvements complexes.

Par exemple, pour la 1ère option, on combine une tête réalisée à l’aide d’une plaque d’essai Arduino (où on trouve un moyen de fixer les composants un minimum) et le bas de l’automate en bois. Il faut réfléchir où placer l’alimentation.
Ceux qui le souhaitent peuvent aussi combiner avec un Thymio, par exemple.

Pour aller plus loin, on propose 2 options possibles pour la bas du corps :

Le principe peut être repris pour le torse, avec une versionde rotation simple des bras et une version avec 2 moteurs par articulation pour obtenir un mouvement plus complexe.

La difficulté est de prévoir quelque chose de modulable sans avoir à tout refaire à chaque fois, à l’exception de la programmation, qui elle aussi pourrait utiliser un système modulable par fonctions ou librairies.

Pour l’instant, tout cela est très théorique car je maîtrise peu la robotique, mais j’avance progressivement d’un côté sur le concept, de l’autre sur la partie Arduino.