Bonjour,
J'ai pour projet de construire un Hexapod from scratch. Déjà par fierté de le faire et histoire de comprendre comment ca fonctionne.
J'ai déjà modélisé mon hexapod et monté avec des servomoteurs 35kg. (ouch ! la grosse facture est passée ^^)
Maintenant je dois savoir quel modules electroniques utiliser et là déjà j'ai du mal a me décider !
Je lis des choses à droite, à gauche et difficile de se fixer :frowning
Je sollicite donc votre expertise et vos avis selon les options suivantes :
1- version arduino MEGA + NRF24L01
(je connais un peu arduino, le Mega est assez puissant et toute la connectique, mais c'est
le bordel dans le cabling et faut rajouter un module sans fils)
2- version ESP32 + 2xPCA9685
(je connais un peu arduino, le ESP32 permet de gérer le sans fils mais faut rajouter des
controleurs pour les servos et je crois qu'il y a des limitations de tension et amperage)
3- version Servo2040 + NRF24L01
(je connais pas le micropython mais je crois qu'on peut faire avec l'IDE arduino en C, assez
puissant, gere bien la tension et l'amperage jusqu'a 10A, optimisé pour les cablages)
Voilà ce que j'ai en stock en gros et les idées qui me passent depuis ... quelques semaines ! JE veux bien un retour d'experience pour faire le bon choix
jamais monté d'hexapod donc je ne peux pas donner d'avis
quelles sont réellement vos contraintes ? taille de la carte, complexité du circuit, prix, puissance de calcul, mémoire disponible, protocole radio, ..
1- J'ai commencé a me lancer en me disant je vais utiliser la carte MEGA parce que y'a quelques Youtubeur qui ont utilisés cette carte et toutes les connectiques nécessaires sont dessus et je vois a quoi ressemble le code dans l'IDE arduino.
j'ai même commencé a tester 1 ou 2 servomoteurs, puis je me suis rendu vite compte que pour gérer les branchements j'allais vraiment galérer à moins de créer son propre shield (et là même si y'a des outils apparemment bien sur internet, j'ai jamais fait). et le faire à la main ... bah j'ai commencé mais trop de fils, trop dans tous les sens, forcément un résultat dégueu.
2- en // de ca j'ai vu qu'il existait une carte de chez Pimoroni Servo2040 avec déjà les connectiques prêtes pour accueillir les 18 Servomoteurs et plus si besoin ! Genre le rêve a priori. Alors j'ai commencé a voir pour les branchements etc ... je pense d'ailleurs avoir un truc correct maintenant (en m'aidant de forum et autres discords). Mais il faut ensuite rentré dans le code Micro python que je connais pas. On me dit : "fais pas ca ! c'est nul micro python", donc je me lance dans le C / C++, en plus apparemment il existe des add-on via l'IDE Arduino. Mais là suis même pas capable de récupérer un code dans les exemples et le télécharger sur la carte
Bon peut etre parce que il y a presque rien sur internet sur le Servo2040, alors j'ai regardé pour le RP2040 et donc ca marche peut être pas pareil !?
3- comme j'avais des ESP32 et des PCA9685, me suis dit bon allez ! Ca reste dans l'IDE Arduino et en plus je peux gérer le sans fils directement. J'ai commencé les connections, a tester les servomoteurs etc ... et en échangeant sur des forums et autres discords, on m'alerte que je vais tout cramer parce que les PCA9685 ne peuvent recevoir que 5,5V. Du coup je me demande si c'est pas un peu juste pour contrôler tous les servomoteurs, et on me dit que c'est pas fait pour ca, c'est pour gérer des leds etc ... donc le doute m'habite ! (fallait que je la place)
Maintenant si je devais faire abstraction de cet historique et que j'exprime le besoin :
il faut que je contrôle 18 Servomoteurs (compatible 5V-7,4V) de 35kg qui peuvent sans doute faire circuler un courant de 10 a 12A lorsqu'ils sont tous en fonctionnement avec un peu de charge (mais en vrai je sais pas trop)
il faut que je puisse le contrôler sans fils à terme
idéalement, je voudrais pouvoir optimiser le nombre de matériel et la taille du matériel pour réduire la taille si possible du corps de l'hexapod.
Les éléments qui me semblent obligatoires :
la batterie Lipo (j'ai une 60c - 2S - 6200mAh ou une 35c - 3S - 2200mAh),
un limiteur de tension (à 7,4V) et d'Ampère (à 10 ou 15A) pour la sortie du Lipo vers les Servos et le(s) contrôleur(s) (mais alors là pour trouver qqchose d'une taille raisonnable c'est dur dur)
un limiteur de tension pour le microcontrôleur
Voilà voilà ! Vous comprenez qu'avant de me lancer de nouveau corps et âmes, le choix de l'architecture est structurante pour la suite (mince je parle comme au boulot )
Un grand merci de m'avoir lut et de tous vos conseils précieux !!
En cas de fort courant nécessaire, il y a un bornier à vis pour une alimentation 5V. externe.
Ce module peut se mettre au plus près de tes servo et tu n'as que 2 fils, le bus i2C, pour aller à l'Arduino:
Que ce soit @J-M-L ou @jpbbricole , je post pas souvent sur ce forum mais quand je viens c'est toujours les même qui me viennent en aide ^^ vraiment merci à vous
(et j'ai pas fini de vous embêter ^^)
Pour la distance, ce serait quelques mètres 4 ou 5m (10, 15 m grand max)
Je ne suis pas un pro du hardware mais à mon avis le second est préférable au niveau du câblage de l'alim moteurs.
Vous avez une haute intensité qui rentre sur le premier composant, vous allez tirer pas mal de courant déjà pour les 8 servos, vous ne voulez pas qu'en plus la petite piste V+ fasse passer tout le courant nécessaire pour les 8 servos du second composant
J'ai regardé les liens concernant le PCA9685, pouvez-vous m'aider a comprendre ca :
concernant la Pin OE :
" OE : Output enable. Can be used to quickly disable all outputs. When this pin is low all pins are enabled. When the pin is high the outputs are disabled. Pulled low by default so it's an optional pin!"
en gros si vous avez besoin de faire un arrêt d'urgence, vous connectez cette pin à une broche de votre arduino et vous passez la pin à LOW. Tant qu'elle reste LOW, le composant fonctionne normalement. Mais si vous passez cette pin à HIGH le composant stoppe immédiatement l'envoi d'ordres PWM ce qui devrait arrêter les moteurs.
Ils disent aussi que par défaut la pin est maintenue à LOW en interne sur le composant donc si vous n'avez pas besoin de cette fonctionnalité alors vous pouvez laissez cette pin en l'air, pas la peine de la connecter
alors j'ai testé les connexions du 2e diagram et ca marche bien je vais poursuivre mon code comme ca ...
Sinon par anticipation de quand je devrais le débrancher du PC et de mon alim de labo, j'ai regardeé ce que je devais faire pour le brancher avec juste une batterie externe.
Est-ce que ce diagram vous semble correcte ?
C'est pas correct ?
sinon pour etre sûr, je peux rajouter un mini buck converter ? Parce que l'idée est quand meme de reduire le nombre de composant, donc ca alourdit de rajouter une 2e batterie
j'ai voulu tester et j'ai donc branché coté "IN" mon alimentation de labo et coté "OUT" mon multimètre --> le multimètre affiche bien une tension de sortie.
Par contre quand je tourne le potentiomètre, il ne se passe rien