Calibrage ESC

1 2
djeje djeje 4 Messages
Bonjour,

Je suis subjugué par la qualité des articles et je vous remercie pour ce partage.

Je me pose une question sur le calibrage des ESC. Dans le tuto on augmente automatiquement le vitesse puis on le stop net.
Ce qui m'étonne c'est que le calibrage ne dépende pas de la radiocommande aussi.
Ma vrai question, j'ai un ESC trackstar 80A que je n'arrive pas à calibrer avec ma radiocommande je pensais donc faire ça avec l'arduino. Qu'en pensez vous ?

Bien cordialement
Jérome
lobodol lobodol 863 Messages BIG BOSS
Salut djejde, content que les articles te plaisent, ça fait plaisir à lire

Pour la partie calibration je te conseille en effet d'utiliser ton Arduino, tu maîtrisera plus les signaux envoyés.
djeje djeje 4 Messages
Merci.

Je me posais une question car je n'arrive pas à le calibrer, à quoi correspondent les valeurs 1000,2000.
Est -ce que ça pourrait en être la cause ?

Merci par avance !
lobodol lobodol 863 Messages BIG BOSS
Ces valeurs correspondent respectivement à la durée min et max de l'impulsion (en ms).
D'après moi c'est clairement ça qu'il faut adapter dans ton cas. Il va te falloir fouiller dans la doc de tes ESC pour trouver leur plage de fonctionnement.
Fredblock Fredblock 20 Messages
Hello
Je me permet de reprendre ce sujet, qui est une bonne base pour solutionner mon problème.
Je suis également sur un projet de drone quadrirotor, malgré le fait que je sois débutant dans l'arduino (mais c'est en faisant que l'on apprend  )
J'ai passé l'étape calibrage des ESC en m'aidant du tuto calibrage des ESC, et jusque là, cela fonctionne. Les moteurs cherchent leurs positions lors de l'alimentation des ESC, et lorsque j'envoie la commande 0 dans le moniteur série, les moteurs s'arrêtent suite au bip bip bip rapproché.
Et suite à la commande 2, les moteurs prennent leurs régimes crescendo jusqu'au régime max et enfin la coupure.
Normalement, arrêtez-moi si je me trompe, mais l'apprentissage est terminé, on peut donc couper l'alimentation des ESC.

Mon problème surgit maintenant.
J'ai voulu tester mes 4 moteurs via un potentiomètre (1er étape avant d'essayer avec un joystick en liaison filaire) afin de simuler manuellement une accélération et/ou décélération des moteurs.
J'ai branché le signal ESC1 sur la pin 4 de l'arduino, l'ESC2 sur la pin 5, l'ESC3 sur la pin 6 et l'ESC4 sur la pin 7.
La masse ESC1/2/3/4 sur la masse breadboard.
5V arduino sur la breadboard + et GND arduino sur la breadboard -
Et la pin A0 sur mon potentiomètre.

Et voici mon code :


Résultat des courses ? Sur les 4 moteurs, celui relié à la PIN7 fonctionne comme je le souhaite, c'est à dire que son régime varie bien selon la position potentiomètre.
Mais les 3 autres moteurs ne fonctionnent pas. Ils cherchent leurs positions en faisant des BIP.

De ce fait, plusieurs interrogations me viennent à l'esprit :
- est-ce que l'apprentissage du couple ESC/MOTEUR est toujours ok malgré que le code apprentissage n'est plus dans l'arduino ? en clair, est-ce que l'ESC garde en mémoire cet apprentissage ? Puisque j'ai l'impression que c'est un problème d'apprentissage/calibrage des ESC vu que 3 moteurs cherchent leurs positions.
- Si l'apprentissage est enregistré, cela semblerait être un problème de connexion du fil signal ESC non ?

Il faut peut-être même combiner les 2 codes, c'est à dire celui du calibrage et essayage des moteurs via potentiomètre ?
J'ai essayé plusieurs fois, et le phénomène est répétable. Ce n'est pas aléatoire.

Rappel du matériel :

- 4X Racerstar 2207 BR2207S Fire Edition 2500KV
- 4X ESC XXD HW30A 30A
- ARDUINO UNO
- LIPO 5000 mAh 3S


Merci par avance pour l'aide apportée :)
Fred
lobodol lobodol 863 Messages BIG BOSS
Salut Fredblock, ton problème vient de esc.attach(); Tu dois créer une variable de type Servo par ESC. Là tu ne fait qu'écraser l'assignement à chaque fois.
Ton code doit donc être le suivant :


Avec ça, ça devrait marcher nickel
Fredblock Fredblock 20 Messages
Merci pour ta réponse.
Il est vrai que ça paraît plus logique de cette manière.
Mais par contre il faut que je rajoute ma fonction loop par dessus non ?

Mon autre question, lorsque l'apprentissage de l'ESC est fait, et que l'on enlève le code de l'apprentissage de l'arduino, l'ESC garde bien en mémoire l'apprentissage ?

Fred
lobodol lobodol 863 Messages BIG BOSS
Mais par contre il faut que je rajoute ma fonction loop par dessus non ?
Oui, bien sûr. Je n'ai mis là que ce qui change par rapport à ton code.
Une fois que l'ESC est calibré, c'est stocké dans sa mémoire interne, donc plus besoin du code.
La seule chose indispensable c'est d'initialiser la valeur du zero-throttle dans la fonction setup().
Fredblock Fredblock 20 Messages
Un grand merci à toi :)
Malheureusement j'ai essayer ton code avec le reste  du mien (variable potentiomètre et fonction loop)
Mais un message d'erreur survient après compilation sur la ligne Servo esc1 esc2 esc3 esc4 ;
Avec comme message : " expected initializer before 'esc2'
Fredblock Fredblock 20 Messages
J'ai dupliqué les variables servo pour chaque ESC et ça fonctionne. Voici une copie de mon code :



il y a très probablement moyen de le réduire. mais ça fonctionne.
Si quelqu'un peut m'aiguiller pour le rendre plus optimisé, ça m'intéresse :)

Fred
lobodol lobodol 863 Messages BIG BOSS
Impec. Ton est code tout ce qu'il y a de plus court, pas moyen de le réduire :)
Fredblock Fredblock 20 Messages
Merci pour ton aide.
Je vais maintenant essayé de remplacer le potard par un Joystick type celui de ma radiocommande, et m'attaquer au calibrage du capteur Gyroscopique :)
Fred
Fredblock Fredblock 20 Messages
Hello

Après avoir savourer les premiers décollages de ma petite bête à 4 bras, j'ai très vite remarqué après plusieurs checks, que mes ESC deviennent rapidement (après plusieurs minutes d'alimentation/essais) tiède.

Est-ce un phénomène normal ?
Il faut dire qu'ils sont plutôt consommateur, mais de là être tiède aussi rapidement ...

Hâte de vous lire

Fred
lobodol lobodol 863 Messages BIG BOSS
Yo, oui c'est totalement normal. Tes ESC sont des 30A, avec une LiPo 3S  la puissance dissipée vaut $P = U \times I$ :
$$11.1 \times 30 = 333W$$
Ça en fait des watts !

Réellement, ils ne dissipent pas cette puissance en continue, ça varie en fonction du courant tiré. Mais quand même, c'est normal que ça chauffe.
Fredblock Fredblock 20 Messages
Hello
Merci pour ta réponse.
Cela semble logique, mais la rapidité à laquelle ils chauffent me laissait songeur.

J'ai beaucoup d'autres questions liées au stade auquel mon drone progresse.
Si tu es d'accord, je vais ouvrir un ou plusieurs autre sujets différents ( pour structurer un peu tout de même )

Merci
Fred
1 2
Vous devez être connecté pour pouvoir répondre à ce sujet.
Utilisation des données

Afin d'améliorer ton expérience utilisateur, nous utilisons des cookies 🍪