J'étais déjà tombé dessus sur alie il y a longtemps, mais je ne pensé pas qu'ils seraient si utiles ^^

Servomoteur PUISSANT pour robot bipède
#62
Posté 04 avril 2017 - 10:43
M'ont l'air carrément géniaux ces moteurs !
Alors [newbie mode ON], la question est : comment les piloter avec un arduino ? Sur les vidéos il y a du potard, de la télécommande, mais avec un arduino quel est le principe ?
#63
Posté 04 avril 2017 - 01:14
Si avec un testeur de servo on peut actionner ce servo, alors je dirais comme n'importe quel servo.M'ont l'air carrément géniaux ces moteurs !
Alors [newbie mode ON], la question est : comment les piloter avec un arduino ? Sur les vidéos il y a du potard, de la télécommande, mais avec un arduino quel est le principe ?
Mais j'aimerais bien avoir l'avis des personnes compétentes sur le sujet.
Voici une vidéo avec un testeur de servo :
Ma chaine YouTube : https://www.youtube..../oracid1/videos
#64
Posté 04 avril 2017 - 03:12
Salut , alors les servos fonctionnent avec un protocole PPM ,
Si tu as déjà utiliser l'arduino , tu vas dire "wtf c'est pwm normalement pas ppm " en fait c'est juste un autre protocole a peine différent
mais d’après les forums que j'ai visiter il n'y a pas grandes difficultés pour utiliser ton arduino pour faire du PPM
#65
Posté 06 avril 2017 - 11:16
Ouf, ça rassure ;-)
#66
Posté 10 avril 2017 - 01:58
Je vois que ça parle de ce moteur https://fr.aliexpres...2325553738.html, quelqu'un l'a acheté ?
#67
Posté 10 avril 2017 - 04:21
On parlait de ce servo là : https://fr.aliexpres...0615.0.0.1x4S8S
Il semblerait que les produits soient équivalents pour le couple, 260kg.cm, et la rapidité 0.12 s/60°, mais le ASME-MXA fait 3600° (10 tours) alors que le tient ne fait que 300°, ce qui est déjà très bien.
L 'avantage du tien, c'est qu'il est moins cher, 63€ contre 100€, mais est-ce un produit comparable, à voir.
De toute façon, c'est trop tard, c'est commandé.
Ma chaine YouTube : https://www.youtube..../oracid1/videos
#68
Posté 10 avril 2017 - 06:02
J'attends ton avis alors.
#69
Posté 10 avril 2017 - 06:19
Mais malheureusement, n'ayant pas les 2 servos, je ne pourrai pas les comparer.
Ma chaine YouTube : https://www.youtube..../oracid1/videos
#70
Posté 10 avril 2017 - 08:03
Tu as déjà reçu ???
tu as quel matos ?
alors en gros tout le monde ici est habitué au PWM qui est classiquement un envoi d'impulsions binaires (soit 0V soit 5V pour arduino ).
Ce qui va faire varier la position du servo grâce à ces impulsions binaires c'est le temps durant lequel l'impulsion sera à 5V
(et la tout de suite on voit que c'est très ingénieux car en fait ça permet , avec une commande "binaire" de transmettre des valeurs analogiques [qui sont les durées durant lesquelles le signal est haut (5V) bref j’espère que je suis pas le seul a y voir du génie dans cette méthode ahah ]
Avant de continuer les explications on doit savoir que le PWM se fait aux alentours de 500 hz ce qui veut dire qu'entre deux impulsions il y a 2 millisecondes
à la fréquence que tu veux
Dans le cas ou la fréquence est de 500 Hz si le "temps" durant laquelle l'impulsion envoyée est haute (5V) est égal à - 2ms : le servo se met à 100% de ça capacité de rotation
- 1ms : le servo se met à 50% de sa capacité
-0ms : le servo se met à 0% de sa capacité ect ect ect..... (proportionnel)
------------------------------
Mais alors le PPM ?
Ben c'est pareil ! enfin , nan , disons que le principe est pareil ...
Le truc qui change c'est les 500 hz la fréquence qui deviennent du 50Hz
vous direz que ça change pas grand chose du coup , et bien si en fait ca veut dire que ce signal PWM spécial est très ...lent !
en effet 20ms pour une période ! (ça varie je crois de 10 a 20 , à vérifier )
MAIS , c'est ce qui est drôle avec le PPM c'est que on pourrait s'attendre donc à : -20ms : le servo se met à 100% de ça capacité de rotation
- 10ms : le servo se met à 50% de sa capacité
- 0ms : le servo se met à 0% de sa capacité ect ect ect.....
Ben non ...
c'est toujours -2ms : le servo se met à 100% de ça capacité de rotation
-1ms : le servo se met à 50% de sa capacité
-0.7ms : le servo se met à 0% de sa capacité
ce qui veut dire que si je veux mettre mon servo a 100% de ça capacité et bien je vais devoir faire 2ms de signal "haut" puis 18ms de signal "bas" en attendant que le cycle se répète ! (comment ça c'est pas drôle ?!)
Voila voila c'est ce que je sais du truc , ptet qu'il y a des erreurs , je m'en excuse d'avance mais c'est de la vulgarisation , donc normal que je doive simplifier
donc si tu es sous arduino :
Servo nom_de_ton_servo; int angle = 0; //ici on met l'angle voulu int angle_max = 180; //l'angle max que le servo peut atteindre int frequence = 50; // en Hz on peut set la fréquence ici int periode = 1/frequence ; // on a donc une période en secondes int impulsion; impulsion = ((angle/angle_max)*(periode)); //on a donc angle/angle_max qui donne un pourcentage //ce pourcentage on le multiplie par la période , on a donc la durée que doit prendre l’impulsion pour faire l'angle (en secondes) nom_de_ton_servo.attach(/*X*/); nom_de_ton_servo.writeMicroseconds(impulsion*1000000); // on fait * 1000000 car c'est en Microsecondes
je me suis servi de ça : (que j'ai modifier)
https://openclassroo...ontroler-un-esc
#71
Posté 11 avril 2017 - 06:20
Et bien comme je l'ai indiqué ici, ce sera le ASME-MXA, c'est commandé, http://www.robot-maker.com/forum/topic/11297-robot-bipede-3d-crowdfunding/?p=81679Tu as déjà reçu ???
tu as quel matos ?
Mais j'attends le facteur.
Pour la commande du servo en PWM ou PPM, Mike a fait un tuto qu'il n'a pas encore présenté, mais cela ne saurait tardé.
Mais ce que tu dis a l'air très intéressant.
Ma chaine YouTube : https://www.youtube..../oracid1/videos
#72
Posté 11 avril 2017 - 07:07
Ahhhhh okok Mike désolé , pour le matos je parlais du contrôleur, mais garde le bout de code que j'ai fait il peut être vraiment pas mal si tu es sur arduino je pense car il est facilement adaptable, il sufit de changer les paramètres et tout se fait seul
Ps ton lien mène vers une extrudeuse d’imprimante 3D
#73
Posté 11 avril 2017 - 11:29
Corrigé.Ps ton lien mène vers une extrudeuse d’imprimante 3D
Ma chaine YouTube : https://www.youtube..../oracid1/videos
#74
Posté 11 avril 2017 - 10:20
Ahhhhh okok Mike désolé , pour le matos je parlais du contrôleur, mais garde le bout de code que j'ai fait il peut être vraiment pas mal si tu es sur arduino je pense car il est facilement adaptable, il sufit de changer les paramètres et tout se fait seul
Ps ton lien mène vers une extrudeuse d’imprimante 3D
Pas besoin d'être désolé !
Voici le lien vers le tuto sur PWM et PPM en question =)
N'hésitez pas à faire des remarques dessus et à dire si vous trouvez ça claire ou pas
- Path aime ceci
Si mon commentaire vous a plus laissez nous un avis !
Nouveau sur Robot Maker ?
Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope aux articles, à la boutique et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être !
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!
#75
Posté 11 avril 2017 - 10:49
Du coup mon code marche mike ??
#76
Posté 12 avril 2017 - 12:38
Je ne l'ai pas essayé,
Quelque remarque comme ça :
il manque l'include de la librairie servo,
Et j'ai pas l'habitude de spécifier la fréquence quand j'utilise cet lib ...
J'ai pas l'habitude d'utiliser la methode writeMicroseconds
( voir l'exemple le plus simple déjà fournis avec l'IDE arduino comme indiqué dans le tuto sur PPM et PWM )
Neanmoins je suppose que ça doit fonctionner. Par contre point important la période minimale de l'impulsion n'est pas de 0 microsconde elle est à environ 0.7 ou 0.9 ms donc il faut revoir le mappage manuel que tu as fait en le mettant de la forme
a x + b a et b étant deux constantes telle que pour x = 0
a x + b = période minimale en microseconde
et pour x = 100 a x + b = période maximale.
Tu trouves les périodes min et max pour ton servo en testant manuellement ( min environ 0.7 ms, Max environ 2.3 ms )
et je te laisse résoudre pour trouver les valeurs de a et b dans ton cas
Bon sinon il y a aussi la fonction map avec la librairie arduino qui est déjà faite et qui existe et qui fait tout le travail pour toi pour faire un mappage entre deux valeurs si besoin
Pour le reste je te laisse essayer toi même ton code yougo ou sinon Oracid le fera !
Si mon commentaire vous a plus laissez nous un avis !
Nouveau sur Robot Maker ?
Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope aux articles, à la boutique et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être !
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!
#77
Posté 12 avril 2017 - 07:08
Ahah ok merci beaucoup Mike
#78
Posté 12 avril 2017 - 08:30
Ma chaine YouTube : https://www.youtube..../oracid1/videos
#79
Posté 12 avril 2017 - 10:04
C'est déjà fait pourquoi ?
#80
Posté 13 avril 2017 - 07:11
C'est déjà fait pourquoi ?
Pour que l'on soit tous bien en phase sur le sujet.
Pour le code, celui du livre du Starter Kit que l'on peut trouver ici, https://github.com/a...odIndicator.ino, me parait très bien.
Seul différence, comme il s'agit d'un servo 10 tours avec 3000°, il faudra modifier la ligne 42, angle = map(potVal, 0, 1023, 0, 179); par angle = map(potVal, 0, 1023, 0, 2999); et bien entendu utiliser un potentiomètre 10 tours. Le problème, c'est que l'on va perdre en précision, puisque que l'on dépasse 1024.
Ma chaine YouTube : https://www.youtube..../oracid1/videos
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users