Configuration pour animation tête cheval

Bonjour,

Je suis actuellement en train de réaliser une tête de cheval en carton qui devrait être animée ( et expressive ) grâce à 14 moteurs pas à pas
8 pour les yeux ( 4 par oeil )
2 pour la mâchoire inférieure
1 pour la lèvre supérieure de la gueule
1 pour la lèvre inférieure de la gueule
2 pour les oreilles ( 1 par oreille )
Le choix des moteurs pas à pas a été fait compte tenu du souhait de minimiser le bruit de fonctionnement des moteurs ( comparé à celui de servomoteurs ) qui sont appelés à fonctionner simultanément selon les divers états émotionnels du cheval .
Tous les moteurs sont des Nema 14 ( 5 Ncm ) sauf celui du mouvement vertical de la mâchoire inférieure qui nécessite un couple plus élevé ( 23 Ncm ).
L’ensemble du hardware de contrôle et gestion des moteurs serait logé dans la dite tête . L’alimentation générale du système en 12V serait délocalisée dans l’encolure .
Je serais preneur de vos conseils avisés en ce qui concerne la configuration Arduino la plus appropriée pour mon projet : nombre de cartes CPU , shields , etc… adhoc.
Quelques -unes des questions que je me pose : Par exemple pourrait on commander avec une carte les 4 moteurs de l’œil Droit , une 2eme carte pour les 4 moteurs l’œil Gauche , une troisième carte pour le 2 moteurs la mâchoire inférieure et les 2 moteurs des 2 lèvres , et enfin une 4e carte pour les 2 moteurs des 2 oreilles ?
Faudrait- il plusieurs cartes CPU ?
D’avance merci pour votre support
Cordialement
Bernard

:warning:

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ je l’ai déplacé vers le forum francophone pour vous pour cette fois...

Merci de prendre en compte les recommandations listées dans « Les bonnes pratiques du Forum Francophone”

Je mettrais un A4988 par moteur (nécessite deux broches) et contrôlerais le tout avec un seul arduino

Bien sûr le contrôle nécessite une programmation sans utiliser delay() pour les animations

c’est typiquement un programme qui se prête bien à la programmation par machine à états (cf mon tuto éventuellement)

Bonsoir bernie31

Je plussoie @J-M-L, un Arduino, le Mega par exemple, accouplé à 1 A4988 par moteur, ça facilitera la synchronisation des mouvements.
Comment comptes tu créer l'animation?
Tu pourrais créer un langage définissant les mouvements qui, une fois chaînés, créerai une animation.

A+
Cordialement
jpbbricole

Merci JML pour ton rapide retour
Bernie

Bonsoir jpbbicole,
Merci pour ton rapide feedback très appréciable. Je précise que je suis un passionné de modelisme et que j' essaye à mon humble niveau de réaliser des objets originaux en carton ( choix écologique ) mélant technologie et art plastique . D'où ma précédente requête, illustrée par la photo jointe, et quelques précisions sur ce que je souhaiterais faire in fine avec l'aide d'un informaticien / codeur .
A partir d'une matrice d'états émotionnels du cheval, identifiés avec l'aide d'un fin(e) connaisseur( euse ) de cet animal , où pour chaque état (par exemple : calme , peur, curieux, excité, etc...) je connaitrais la position de chacun des éléments mobiles de la tête, je souhaiterais povoir programmer ensuite chacun des 14 moteurs en conséquence.
Puis idéalement cette tête de cheval serait ensuite équipée d'une caméra adhoc au niveau du museau pour détecter les mouvements ( gestes : déplacements ) d'une personne qui se présenterait devant le cheval . En fonction des mouvements ( états émotionnels ) de cette personne , le cheval devrait alors réagir et passer d'un état par exemple calme à curieux ou bien calme à excité etc...
Pour finir la tête serait montée sur un bras cobot 6 axes qui remplacerait l'encolure actuellement fixe et pourrait apporter plus de réalisme à l'ensemble.
une première tête inexpressive ( juste avec les oreilles mobiles et une carte son ) a déjà montée sur un UR 5 appartenant à un centre de formation professionnelle .
N' étant pas un spécialiste en programmation je ferais appel à quelqu'un qui pourrait m'aider à avancer .
Cordialement
Bernard

Bonsoir bernie31

Ah oui, ca simplifie les choses, il n'y a que des états à enregistrer, pas de problèmes de timing.
En fait "il suffit" d'enregistrer la position de chaque moteur dans le cas d'une émotion.
Ces positions "émotionnelles" peuvent être préenregistrées dans l'Arduino ou envoyées, via un moyen de communication, depuis le système de la caméra.
Il y a de quoi "gamberger" :wink:

Cordialement
jpbbricole

Si c’est statique vous ne ferez pas passer l’émotion - il faut que ça bouge

Bienvenue @bernie31 ,

C'est un super sujet, j'espère que toute l'équipe derriére va mettre tout son talent pour donner vie à cet être de carton, et rendre hommage à la sensibilité de la personne animal qu'est le cheval.

J'en envie de dire que vous n'avez pas le droit de vous louper, ça va être du grand art.

J'ai hâte de voir ça.

Merci à vous trois, JML , JPB , JEF, pour vos réponses et encouragements. Ce sera sans doute un projet qui prendra plus de temps que je ne le souhaiterais car ne maitrisant pas les secteurs tels que la connaissance du comportement équin , le système Arduino et surtout la disponibilité dun cobot type UR5.
Pour le reste : construction mécanique et artistique de la tête et de l 'encolure , intégration des éléments électroniques et mécaniques c'est plus facile car dans mon domaine :slight_smile:
Je vais donc m'armer de patience pour faire avancer mes actuels contacts '' chevelus'' sur ce projet qui me tient à coeur .
Cordialement
Bernie

Bonjour bernie31

Du côté du programme, d'après ce qui a été discuté ci-dessus, ce n'est pas très compliqué. Je peux te faire un "échantillon" avec juste 2 ou 3 moteurs.

Cordialement
jpbbricole

Restons modeste je crois.

Faire bouger un moteur, c'est vrai

Mais si vous voulez respecter l'esprit équin, définir les bonnes trajectoires et les appliquer en consigne aux moteurs, moi je ne dirais pas "Ce n'est pas compliqué".

Dans la robotique, il est beaucoup fait usage de moto-réducteurs avec codeurs incrémentaux integrés en sortie d'axes (pour la détermination de la position angulaire des axes).

Aprés, c'est beaucoup de calculs matriciels pour gérer les changements d'axes (X,y,z) et déterminer des trajectoires Smoth et obtenir des résultats fascinants, "beaux" et précis sur les robots.

Bonjour jef59

Dans le post #6 il est dit:

On ne parle pas de mouvements mais de positionner les divers éléments de la tête sur des positions prédéfinies par des spécialistes, en fonction d'une émotion. Ce sont de simples déplacements, ce qui n'est pas très compliqué à programmer.

Cordialement
jpbbricole

Je faisais une remarque, pas une critique.

Perso, les animaux sont mes amis, j'adore les observer, tous.

Et je partage à 200% l'avis

J'ai rarement vu un cheval se desarticuler d'une position à l'autre sans se faire mal.

Si on veut minimiser le bruit des moteurs pas à pas, il faut qu'ils travaillent en micro pas.

Si le cheval utilise AccelStepper qui peut donner jusqu'à 2000 impusions step/s (la doc di 1000, mais je suis persuadé qu'elle se trompe) avec 14 moteurs 200pas/tr et qui sont en 16 micro-pas, si tous les moteurs tournent ensembles, ils feront 2000/(2001614) soit 0,044tr/s soit 1 tour toutes les 22s. Cela ira bien pour l'expression "un cheval bien endormi qui a de la peine à se réveiller.

Je suis en train de réécrire une bibliothèque qui peut faire tourner 14 moteurs en même temps à une vitesse maximale de 4 tours/s (en mode 16 micro-pas).
Le rapport de vitesse entre le moteur qui tourne le plus vite et le moteur qui tourne le plus lentement est de 256 maximum. Par contre on peut utiliser tous les delay(temps); que l'on veut, les moteurs tournent même si le code est bloquant.
Cette bibliothèque tourne sur la Mega, que je conseille aussi pour gérer 14 moteurs en même temps.

En espérant que l'animation de la tête de cheval ne soit pas une animation loup/phoque.

Il est probable que le plus gros des moteurs ne se contente pas d'un A4988, mais qu'il faille un driver plus costaud. Il nous faudrait pour ce genre de conseil le N° des deux types de moteurs.

Bonjour à tous,

Je voulais vous remercier d'ores et déjà pour l'intérêt que vous portez à mon projet et suis preneur de vosconseils quels qu'ils soient.
Pour apporter plus d'infos au moulin les références des moteitrs Nema 14 sont:
petit moteur : Moteur pas à pas fin 0,9 deg Nema 14, 36x36x12.5mm, bipolaire 0,5 A, 5Ncm (9.92oz.in), 4 fils
gros moteur : Moteur Nema 14 14HS17-0504 couple 23Ncm
Pour vous donner une idée de l'état actuel de mon projet je vous invite à regarder la vidéo suivante dont le lien est :

Sur la vidéo la tête qui est montée sur le robot UR5 est celle du proto n°1 et elle n'est pas du tout expressive . Elle est équipée de 2 servomoteurs ( pour les 2 oreilles ) avec une carte son pour le hénnissement . Compte tenu du bruit élevé de leurs pignons réducteurs , il a été décidé d'utiliser pour la suite et le proto n°2 des moteurs PAP avec des microswitches ( un par moteur ) pour leur initialisation
Elle ne fait que préfigurer celle du proto n°2 avec ses 14 moteurs dont vous avez pu voir un peu l'aspect sur la photo jointe à mon premier message.
Ce proto n°1 sera utilisé pour y monter la future caméra et débugger les
problèmes de hardware / software qui ne manqueront pas de surgir au fur et à mesure du déroulement du projet.
J'aurais de nombreuses questions à vous poser comme par exemple l'adéquation de la carte Mega en nombre d'entrées/ sorties avec mon besoin 14 moteurs 4 fils plus les 2 fils du microswitches,
la possibilité d'avoir un couple important sur le gros moteur ,
l'encombrement de l'ensemble du hardware car le volume du crane utile de mon cheval est restreint,
les éventuels problèmes de chauffe de l'ensemble des 14 controleurs et la ventilation
la possibilité de déporter la carte Mega dans l'encolure . distance
Etc...
Je suis evidemment preneur de votre soutien pour le mini programme de controle de 2 ou 3 moteurs ou bien de routines adaptées.
En tout cas merci encore de partager votre savoir avec un passionné de bel objet animé . A mon âge c'est un moyen de ne pas m'ennuyer :slight_smile:
Cordialement
Bernie

Les robots, ou cobots tel que l'UR5 que l'on voit en vidéo ont des axes motorisé avec des codeurs relatifs (de type codeurs incrémental optique) integrés.

Le codeur relatif permet de déterminer à tout moment la position angulaire de l'axe.

C'est un point fort essentiel de ces cobots, grâce à ses codeurs, il est très facile d'apprendre manuellement au cobot une trajectoire qu'il va mémoriser, et répéter à volonté.

Ces robots sont aussi equipés de capteurs de force d'une sensibilité extraordinaire, ce qui fait que vous pouvez les arrêter dans leur trajectoire juste en les bloquant avec 1 doigt sans qu'il vous arrache le bras.

Arriver à faire apprendre aussi facilement un mouvement de la tête du cheval mettant en jeu plusieurs moteurs pas à pas n'est certainement pas aussi facile ou intuitif que l'apprentissage propre à l'UR5.

Et le résultat peut être pas aussi parfait.

Tel était le fond de mon message.

Faire tourner 1 ou plusieurs p.a.p en même temps, OK, c'est +/- facile.
Maîtriser une "belle trajectoire naturelle", c'est une autre histoire je crois.

Sur un cobot, ça fait partie de sa bibliothéque d'instructions "haut niveau" qui rend le travail très intuitif pour l'utilisateur.

Pour le "robot tête de cheval" tout est de bas niveau il me semble pour écrire une trajectoire.

C'est une supposition de ma part.

Vrai ou non?

EDIT:
Dans les année 90, j'ai bossé dans une PME qui avait developpé un robot pour la neurochirurgie, et plus récemment, j'ai suivit une formation sur la maintenance de robot 6 axes STAUBLI, je parle donc UN PEU en connaissance des difficultés en ce qui concerne la maîtrise des trajectoires.

Le moteur à 4 fils, mais il va être piloté au traves d'un A4988 ou équivalent qui ne demande de recevoir que 2 informations (avance et le sens). Il ne faut que 2 broches pour commander un moteur. A priori, il n'y a besoin que d'un seul fin de course par moteur pour l'initialisation? Il ne faudrait que 3 broches per moteur soit 42 broches. Il en reste assez avec une Mega!

Un grand Merci Jef et Vileroi pour vos infos qui peu à peu me précisent les contours du hardware Mega et l'utilisation d'un cobot que je devrai utiliser.
Pour ce qui est de ma vision des choses ( peut être simpliste ) j'imagine ceci:
A un état émotionnel du cheval donné ( par exemple ''curiosité'' ) la tête programmée avec l'arduino donnera l'expression souhaitée avec un positionnement des yeux , machoire, oreilles ,llèvre défini préalablement et mémorisé .
L'encolure elle ( en fait le cobot ) aurait une ou plusieurs trajectoires mémorisée(s) pour le même état emotionnel que la tête ( par exemple pour exprimer sa curiosité le cheval bougerait doucement sa tête vers l'avant pour observer de plus près la personne devant lui ) de sorte que cette ou ces trajectoires seraient a priori fluides ?
Si la personne est calme c'est ce qui se passera .
Si la camera détecte un mouvement brusque ( par exemple etat de la personne alors ''nerveuse'' ) la tête et l'encolure ( cobot ) passerait à l'état ''peur'' du cheval . La tête exprimerait cet état ainsi que le cobot qui partirait en arrière...) .
Est ce que cela semble irréaliste de votre point de vue ?
En résumé l'Arduino gèrerait les expressions de la tête, le logiciel propre au cobot gèrerait les trajectoires de la tête grace au mouvement de l'encolure ,. Quant à la gestion des réactions homme / cheval pourrait elle aussi se faire avec le même Arduino ?
Je ne doute pas de la complexité importante de ce projet , c'est la raison pour laquelle l' avis de professionnels de la robotique et du codage seront très appréciés pour m' éviter de gros désagréments futurs.
Cordialement
Bernie

Je comprend mieux l'idée, compte tenu des trajectoires possibles pour l'encolure, je pense que vu comme cela, ça simplifie la tâche et le rendu peut être trés trés intéressant.

Le top serait de pouvoir faire un travail soigné au niveau du mouvement des yeux, histoire qu'ils fixent plus ou moins une même cible quand la tête bouge.

Vous pouvez trés probablement, grâce à l'armoire de contrôle du cobot, récupérer en temps réel la position x,y,z d'un point précis du "porte outils" au bout du bras robotisé, et l'exploiter pour le suivi des yeux...

Si c'est réaliste à tout point de vue (intéressant, faisable, et ...).