Calcule des angles
✔ Ce sujet est résolu
frangipane
42 Messages
Le samedi 15 janvier 2022 à 13:34:49
Bonjour,
Après quelque recherche, je me demande si l'angle calculé par le drone est le bon (ce qui serait peut-être la nature de mon problème).
Si j'ai bien compris la variable qui stock la valeur de l'angle en degré est "measures".
Si je l'affiche sur le port série, les valeurs ne correspondent pas à l'inclinaisons de mon drone (sauf au début où c'est égale à zéro).
Il y a quand même un changement lorsque j'incline le drone mais il est trop "lent", ex : si je l'incline à 45° il m'affichera environ 7°. En plus, la valeur dérive...
Si la variable "measures" affiche bien l'inclinaison du drone, comment régler le problème ?
Merci d'avance,
frangipane
Après quelque recherche, je me demande si l'angle calculé par le drone est le bon (ce qui serait peut-être la nature de mon problème).
Si j'ai bien compris la variable qui stock la valeur de l'angle en degré est "measures".
Si je l'affiche sur le port série, les valeurs ne correspondent pas à l'inclinaisons de mon drone (sauf au début où c'est égale à zéro).
Il y a quand même un changement lorsque j'incline le drone mais il est trop "lent", ex : si je l'incline à 45° il m'affichera environ 7°. En plus, la valeur dérive...
Si la variable "measures" affiche bien l'inclinaison du drone, comment régler le problème ?
Merci d'avance,
frangipane
Le lundi 24 janvier 2022 à 21:25:07
Salut frangipane, décidément ce projet de drone te prend la tête à ce que je vois !
Plus tu avances et plus je me dis qu'il doit y avoir une couille dans mon code.
Pour mon projet, je me suis inspiré de http://www.brokking.net
Ce que je te propose, c'est déjà d'essayer avec sa version, téléchargeable ici :http://www.brokking.net/ymfc-al_downloads.html
Si ça ne fonctionne pas avec ça, c'est que tu as un problème ailleurs (équilibrage du cadre, alimentation, moteur, etc).
Si ça tourne, déjà ça te fera du bien au moral de voir ton drone voler.
Ensuite, tu pourras essayer de comparer les deux pour voir ce qui déconne.
Bon courage !
Plus tu avances et plus je me dis qu'il doit y avoir une couille dans mon code.
Pour mon projet, je me suis inspiré de http://www.brokking.net
Ce que je te propose, c'est déjà d'essayer avec sa version, téléchargeable ici :http://www.brokking.net/ymfc-al_downloads.html
Si ça ne fonctionne pas avec ça, c'est que tu as un problème ailleurs (équilibrage du cadre, alimentation, moteur, etc).
Si ça tourne, déjà ça te fera du bien au moral de voir ton drone voler.
Ensuite, tu pourras essayer de comparer les deux pour voir ce qui déconne.
Bon courage !
frangipane
42 Messages
Le dimanche 30 janvier 2022 à 16:25:45
Aaaaaaaaaaaaaaaaaaaaaah !
Je vois devoir tout remodifier puisque mon j'ai un Arduino méga, ca va me prendre un peu de temps !
J'ai besoin de faire son setup ?
Merci
Je vois devoir tout remodifier puisque mon j'ai un Arduino méga, ca va me prendre un peu de temps !
J'ai besoin de faire son setup ?
Merci
Le dimanche 30 janvier 2022 à 18:50:31
Oui, fait son setup. Vérifie quand-même que son truc est compatible avec un méga mais ça devrait le faire.
Le dimanche 13 février 2022 à 19:19:44
Yo, pour info j'ai refait un test la semaine dernière, débug avec Serial.print à 57600 bauds et un inclinomètre numérique posé sur le drone pour camparer les valeurs. Tout va bien de ce côté là, les angles calculés concordent avec l'inclinometre.
frangipane
42 Messages
Le dimanche 13 février 2022 à 19:38:50
Ben moi non...
Donc le problème viens bien de la ?
Avec les cours j'ai un manque de motivation c'est horrible ! J'ai pas encore fait le programme du mec.
Vous avez bien comparé avec la variable "measures" ou une autre ?Je comprends pas vraiment comment mon drone pourrait calculer autre chose que le bonne angle...
Donc le problème viens bien de la ?
Avec les cours j'ai un manque de motivation c'est horrible ! J'ai pas encore fait le programme du mec.
Vous avez bien comparé avec la variable "measures" ou une autre ?Je comprends pas vraiment comment mon drone pourrait calculer autre chose que le bonne angle...
Le lundi 14 février 2022 à 11:43:23
Ah... Quand tu debug, tu initialises bien le data rate de Serial à 56700 bauds ? C'est important d'utiliser ce débit.
Oui c'est bien "measures" que je compare.
Oui c'est bien "measures" que je compare.
frangipane
42 Messages
Le lundi 14 février 2022 à 13:16:55
Je m'étais mis à 9600 bauds, mais qu'est-ce que ca peut changer ?
Je m'appretait à refaire un test quand je suis retomber sur cette ligne :
TWBR = 12; // Set the I2C clock speed to 400kHz
Or, sur le chapitre 5 je suis tombé sur ca :
TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz)
Même si on n'utilise plus cette méthode je suis un peu perdu du coup. En plus, il doit y avoir une différence entre arduino UNO et MEGA pour ca non ?
Il me semble que le méga et le uno fonctionne à 16Mhz.
Je dois mettre 12 où 24 ?
PS : y a longtemps j'avais tester la méthode du chapitre 5 qui marchait très bien (donc avec TWBR = 24)
Je vais faire des test
Je m'appretait à refaire un test quand je suis retomber sur cette ligne :
TWBR = 12; // Set the I2C clock speed to 400kHz
Or, sur le chapitre 5 je suis tombé sur ca :
TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz)
Même si on n'utilise plus cette méthode je suis un peu perdu du coup. En plus, il doit y avoir une différence entre arduino UNO et MEGA pour ca non ?
Il me semble que le méga et le uno fonctionne à 16Mhz.
Je dois mettre 12 où 24 ?
PS : y a longtemps j'avais tester la méthode du chapitre 5 qui marchait très bien (donc avec TWBR = 24)
Je vais faire des test
Le lundi 14 février 2022 à 13:41:29
Ah mais ça change tout ! A 9600 bauds tu ralentis considérablement le programme, du coup la fréquence d'échantillonnage réelle n'est plus du tout la même.
frangipane
42 Messages
Le lundi 14 février 2022 à 13:48:46
Ah !
Et si je commence une liaison série à 9600 sans rien écrire ensuite dans la loop ca ralenti aussi ?
Et si je commence une liaison série à 9600 sans rien écrire ensuite dans la loop ca ralenti aussi ?
frangipane
42 Messages
Le lundi 14 février 2022 à 13:54:36
Pitié dite moi que non !
(ca marche beaucoup mieux tout de suite la...)
(c'est stylé vous avez pil 777 messages !)
(ca marche beaucoup mieux tout de suite la...)
(c'est stylé vous avez pil 777 messages !)
Le mardi 15 février 2022 à 14:13:43
Et si je commence une liaison série à 9600 sans rien écrire ensuite dans la loop ca ralenti aussi ?Si tu n'écris aucun message, je ne crois pas que ça ralentisse, mais j'en suis pas sûr.
frangipane
42 Messages
Le lundi 18 avril 2022 à 21:23:14
Bon, heuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu...
J'en ai marre là. C'est toujours pas du tout satisfaisant.
Je ne n'utilise plus le port série lors de mes essaies. J'ai utilisé le canal auxiliaire "VRB" pour calibrer le drone (c'est plus facile). Mais :
- Le coefficient P est rapidement trop violent (un peu stable vers 0.04)
- Le coefficient I est juste pas utilisable même avec des valeurs infime <0.001
- Le coefficient D est plus sympa lui, il est stable vers 8
Peut-être que c'est du aux vibrations ? j'ai pas fait un truc hyper propre. Je pense que je vais tout refaire ?
Je fais finalement essayer le code avec "YMFC", ca va me prendre un petit peu de temps car il utilise des truc en binaire pour manipuler les broches. Son arduino est un UNO et moi et ATmega2560, et donc ca change.
frangipane
J'en ai marre là. C'est toujours pas du tout satisfaisant.
Je ne n'utilise plus le port série lors de mes essaies. J'ai utilisé le canal auxiliaire "VRB" pour calibrer le drone (c'est plus facile). Mais :
- Le coefficient P est rapidement trop violent (un peu stable vers 0.04)
- Le coefficient I est juste pas utilisable même avec des valeurs infime <0.001
- Le coefficient D est plus sympa lui, il est stable vers 8
Peut-être que c'est du aux vibrations ? j'ai pas fait un truc hyper propre. Je pense que je vais tout refaire ?
Je fais finalement essayer le code avec "YMFC", ca va me prendre un petit peu de temps car il utilise des truc en binaire pour manipuler les broches. Son arduino est un UNO et moi et ATmega2560, et donc ca change.
frangipane
Le mardi 19 avril 2022 à 13:04:00
Ah mais attention hein, dans mes articles j'utilise un Arduino Uno aussi, avec de la manipulation de ports tout comme YMFC.
Tiens-nous au courant de ton avancement.
Ciao
Tiens-nous au courant de ton avancement.
Ciao
frangipane
42 Messages
Le mardi 19 avril 2022 à 14:41:11
Oui oui, j'avais déjà tout adapter à un Atmega2560.
(il vole toujours pas)
Donc, j'ai finit de reprendre le programme de YMFC. Le setup marche très bien, y pas de soucis.
J'ai relevé des valeurs (pour les vibrations) entre 80 et jusqu'à 200 lors du "calibrage esc", les 4 moteurs en test en même temps. Je ne sais pas ce que ca veut dire mais à mon avis c'est trop élevé.
Pour le code, l'asservissement de YMFC semble plus doux. (Mais il part sur un côté. On observe quand même l'effet d'un asservissement)
J'ai remarqué que vous aviez pris à peu près les mêmes coefficients PID que lui. Je pense aussi que des coeff similaires auraient du fonctionner pour le miens (il est pas très différents du votre).
A mon avis le problème viens donc des vibrations. Avez vous fait ce test ? qu'avez vous eu comme valeurs ? qu'est-ce que vous en penser ?
Bonne fin de journée,
(il vole toujours pas)
Donc, j'ai finit de reprendre le programme de YMFC. Le setup marche très bien, y pas de soucis.
J'ai relevé des valeurs (pour les vibrations) entre 80 et jusqu'à 200 lors du "calibrage esc", les 4 moteurs en test en même temps. Je ne sais pas ce que ca veut dire mais à mon avis c'est trop élevé.
Pour le code, l'asservissement de YMFC semble plus doux. (Mais il part sur un côté. On observe quand même l'effet d'un asservissement)
J'ai remarqué que vous aviez pris à peu près les mêmes coefficients PID que lui. Je pense aussi que des coeff similaires auraient du fonctionner pour le miens (il est pas très différents du votre).
A mon avis le problème viens donc des vibrations. Avez vous fait ce test ? qu'avez vous eu comme valeurs ? qu'est-ce que vous en penser ?
Bonne fin de journée,