Problème démarrage du drone

✔ Ce sujet est résolu
1 2 3
frangipane frangipane 42 Messages
Bonjour,

Dans le chapitre 5, je crois, on doit faire une manip pour calculer les offset du gyro et de l'accéléromètre.
Mais je vois pas où mettre ces valeurs dans le code final.

Finalement on s'en fou ?
lobodol lobodol 863 Messages BIG BOSS
Salut, tu peux passer ce chapitre. Le code final n'utilise pas cette technique pour mesurer les angles.
Lit le chapitre 7 plutôt.
frangipane frangipane 42 Messages
Ah ok merci !

Bon… je l'ai "terminé".
Parce que évidement, il marche pas.

Je vois pas où est le problème, mais sachez que j'ai rajouté quatre relais, un par moteur pouvoir couper l'alimentation des moteurs.
Au démarrage, les ESC sont alimentés mais les moteurs font chacun un bip environ par seconde, et ces bips se décalent a chaque fois un peu plus (au début ils les font tous en même temps et après ils se décalent).

Pour l'instant je sais que "pulse_length_esc1" reste à 1000 même en changeant les joysticks. Et je pense que les moteurs ignore le signal.
Tout est alimenté via la batterieen faisant attention au différentes tension. Les grounds sont reliés.
lobodol lobodol 863 Messages BIG BOSS
S'ils font des bips qui se décalent c'est que la séquence d'initialisation des ESC ne s'est pas faite. Normalement on entend "bip1
bip2 bip3" quand on allume. Ensuite 3 bips courts et 1 bip long.
frangipane frangipane 42 Messages
J'ai mis des serial.print un peu partout, dont dans la loop().

Mais la loop() est faite qu'une seul fois ! (je reçoit qu'une seul fois le serial.print)

isStarted() reste à 0
pulse_length[CHANNEL1] reste à 1500

S'il vous plait aidé moi ! Je veux finir ce drone !
frangipane frangipane 42 Messages
Ah ! Je viend de voir votre message.

J'ai bien bip1 bip 2 et bip3 mais pas les autres.
J'ai un programme qui peut calibrer les moteurs.

Comment je peux régler le problème ?
frangipane frangipane 42 Messages
Le programme que j'ai fait calibre tout seul les moteurs, avec la librairie servo.
Après (tojours avec servo) je peux faire tourner les moteurs. Si je leurs donne rien à faire, au bout d'environ 10 s ils refont les bips
frangipane frangipane 42 Messages
J'ai vérifié, je recois bien les signaux de la télécommande.
Mais je pense que mon problème viens de la :


Comme j'utilise un méga, j'ai du tout modifié (notamment parce que les interruptions ne sont pas disponible sur toutes les broches) sauf :"while (PORTH >= 16)" Parce que je sais pas si il faut changer et comment.

Vous avez une idée ?
frangipane frangipane 42 Messages
Re-bonjour,

J'ai peut-être envoyé les messages un peu trop vite, j'ai avancé, réglé des problèmes ect...
J'ai deux problèmes, un gros et un plus petit (normalement).
 1) Le calcule pour la puissance des moteurs est problèmatique.
En gros, il y a un moteur qui dérive (l'esc3) et qui finit par arriver àla puissance max pour une toute petite puissance demandé (les autres ne semble pas avoir de problème).
 2) Les moteurs ne tourne pas (mais bon ça je pense que ce sera vite réglé, et pour l'instant, ça m'arrange).

Pour savoir la puissance des moteurs j'ai mis des serial.print. Et pour mon problème qui est dans le message d'avant j'ai fait ça :


Je sais pas si c'est bon, je sais pas si c'est ça qui cause le problème, mais voila. En tout cas, j'ai compris que ce petit bout de code
attribue à chaque moteur la puissance demandé (c'est bien ça ?)
Je n'ai plus le problème des bips décalé.

En espérant que vous pouvez m'aider,
Et bonne fin de Week-end
lobodol lobodol 863 Messages BIG BOSS
Salut frangipane,

Est-ce qu'à tout hasard tu as accès à un oscilloscope ? Ça te permettait
de vérifier les signaux qui sont générés pour chaque ESC.

Tu as bien ajouté la ligne d'attente pour avoir des signaux de 250 Hz ?


Je n'ai plus le problème des bips décalé.
C'est qu'a priori les signaux sont correctement générés.
frangipane frangipane 42 Messages
Oui j'ai bien cette ligne de code, je l'ai juste pas copié.
J'ai pas d'oscilloscope mais comme j'ai un deuxième arduino, je me suis dit que je pouvais lire les données avec, j'ai commencé mais j'ai pas encore eu le temps.
Je vous redit quand j'ai réussi.

Le problème reste quand même surtout la dérive d'un des ESC. Elle est en moins d'une minute à 2000 dès que je monte un petit peu les gaz.
frangipane frangipane 42 Messages
J'ai un petit problème,
je ne peux plus compilé le code du drone à cause de cette erreur :


Avant ça marchait très bien je comprend pas.

Sinon j'ai pu lire la duré des impulsions avec mon autre arduino et il lit 1000 partout.
lobodol lobodol 863 Messages BIG BOSS
C'est bizarre que ça se mette à déconner d'un coup. Tu fais bien la manipulation de ports dans le fichier .ino et pas dans un .h ?

S'il lit 1000µs partout c'est qu'au moins les signaux sont correctement générés.
frangipane frangipane 42 Messages
Re-bonjour !

J'ai deux problèmes, on va commencer par celui que je ne maitrise pas du tout : le calcule de la puissance des moteurs semble un peu anarchique.
Le mieux c'est de vous montrer en vidéo :

Le drone est posé bien droit par terre. Au début je démarre le drone et je donne la puissance minimum (pas arrêt mais juste un tout petit peu de puissance). Après je relance et je met directement la puissance max, et à partir de 1min 30 je baisse progressivement pendant 10s.

On peut observer que seulement deux moteurs "démarre" est que le 3e dérive complètement. A la fin il dérive tellement qu'il passe de 1800 à 1100 d'un coup.

En espérant que vous comprenez d'où viens le problème
frangipane
lobodol lobodol 863 Messages BIG BOSS
Salut frangipane,

étrange comme comportement. Il me semble que quelqu'un sur le forum avait corrigé le problème en initialisant la variable level_adjust à 0 dans la fonction calculateSetPoint() (je ne retrouve plus le message en question).

Essaye ça et dis-moi si ça corrige ton problème.
1 2 3
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 🍪