Aller au contenu


Photo
* * * * * 2 note(s)

Arduino due, Moteurs CC et asservissement PID

Arduino Due Codeurs PID Asservissement

  • Veuillez vous connecter pour répondre
25 réponses à ce sujet

#21 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 089 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 20 septembre 2019 - 06:37

Juste pour être sur tu peux toujours poster le code exacte utilisé pour chaque vidéo avec la vidéo ? 
Pour être sûr des petits ajustement que tu fais / vérifier comment tu les fais. 

En fait l'hélice du milieu c'est celle qui reçoit la consigne de vitesse demandée ... Donc c'est peut être pour cela que c'est sur elle que tu vois le problème... 

Je peux éventuellement te proposer une micro modif dans le code que tu vas poster correspondant à cette vidéo pour que tu me dise si ça te corrige ton problème...


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

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 ! 

 

Les réalisations de Mike118  

 

 

 


#22 bvking

bvking

    Nouveau membre

  • Membres
  • 27 messages

Posté 21 septembre 2019 - 02:08

Dans les deux dernières videos, c'est le même code. Celui que j'ai mis en pièce-jointe.

Je le remets ici une plus propre.

 

Fichier joint  max_ardui0.1_12V.ino   17,06 Ko   1 téléchargement(s)



#23 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 089 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 22 septembre 2019 - 01:54

void yoyo1(double rpm, int16_t temps) {   // temps en secondes
  static uint8_t etat = 0;
  static uint32_t reftemps = 0;
  
   switch (etat) {
     case 0: 
      if(millis() - reftemps > temps * 1000 ) {// 5-->15 accelere les cycles de repetions  // 1000 car comparaison de secondes avec ms et 4 car quart de tour  
       mode = POSITION;
       for(uint8_t i = 0; i < 5; i++) { 
        setConsigneMoteur(i, rpm - (i* 60) / (float)(5 * temps)); // 5(2 bizarre--> 5, 10  l'ecart inter phase est plus lissé (moins grand)
       } 
       reftemps = millis();    
       etat = 1;
      
      }
    break;
     case 1:
      if(millis() - reftemps > temps * 1000) { // 1000 car comparaison de secondes avec ms et 4 car quart de tour
       mode = POSITION;
       for(uint8_t i = 0; i < 5; i++) { 
        setConsigneMoteur(i, rpm  - ((4-i) * 60) / (float)(5* temps)); //(0-->5, 10 ok 15= pas de vitesse qui accelere ou decelèrer entre etat
       }
       reftemps = millis();  
       etat = 0; 
    
      }
    break;
   }
}

Micro modif sur la fonction yoyo1
=> La vitesse mise en paramètre est désormais la vitesse maximale du moteur qui tourne le plus vite
=> Le temps que tu mets en paramètre indique maintenant le temps entre les changements de cycles. 

 

Les deux cycles sont : 
Cycle 1 : Le moteur 0 tourne le plus vite et les autres sont ralentis de manière à faire un joli escalier à la fin du cycle.
Cycle 2 : L'escalier se referme, le moteur 4 tourne le plus vite. 

Si besoin on peut mettre en place un cycle intermédiaire où les moteurs restent synchronisés , et un état intermédiaire où l'escalier reste stable ...
 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

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 ! 

 

Les réalisations de Mike118  

 

 

 


#24 bvking

bvking

    Nouveau membre

  • Membres
  • 27 messages

Posté 23 septembre 2019 - 05:17

Là ça commence bien au debut, puis on voit le moteur 2 prendre du retard et se synchroniser sur le moteur 1.

 

Je crois qu'avec mon autre config et avec le void yoyo1 à 50 bpm, j'avais un problème avec l'execution de la 3ème ou 4ème fois que la void yoyo1 se lançait.

 

Mais la c'est autre chose, c'est avant même qu'elle se replie.

Si t'as un ensemble de test à me faire faire, n'hésite pas.

 

Fichier(s) joint(s)



#25 bvking

bvking

    Nouveau membre

  • Membres
  • 27 messages

Posté 02 octobre 2019 - 04:57

Salut Jonathan,

 

J'ai refait des tests avec le programme précédent la dernière retouche que t'avais faite.

Avec les consignes pour void yoyo1

 

setConsigneMoteur(i, (rpm * temps  + (i+2 )* 60) / (float)temps); //   puis

setConsigneMoteur(i, (rpm * temps  + (i-2 )* 60) / (float)temps); // 

 

Je me suis aperçu qu'en fonction des paramètres de vitesses et de répétions cycles, le programme et donc les pâles ne buggait pas pareillement

 

Avec yoyo (15,120) le monitor n'affiche plus rien au debut du 3ème cycle. Au bout 1 min 36 sec. On dirait donc qu'elle bugge exactement en debut de cycle

 
 Avec yoyo (15,60) le moteur 0 se decalle (prend du retard) un peu avant deux min, et le monitor continue d'afficher, donc l'Arduino ne bugge pas.
C'est autre chose.
C'est ce qu'on voit dans la vidéo.
 
J'ai fait d'autres essaies avec ce programme "0_12Vbugi-2" , que j'appelle i-2 , et on peut lire les commentaires directement dans void loop (si ça peut aider!)
 
*************************
 
J'ai aussi fait des test avec le programme avec la dernière retouche que j'appelle 4-i
 
setConsigneMoteur(i, rpm  - ((4-i) * 60) / (float)(5* temps))
 
J'ai observé ce genre de résultat:
                 // Avec 4-i--> 15,120 le programme n'affiche plus rien exactement au bout de quatre min.
                // Exactement, à la fin d'un cycle entier, exactement quand les pâles sont alignées, le programme ne relance pas la boucle void yoyo1.
                // Par contre ce qui est bien c'est q'on ne resent pas la vitesse changé entre deux état
                // Avec 4-i --> 15,75 le programme n'affiche plus rien exactement au debut d'un deuxième cycle, exactement quand elles avaient fini de s'aligner.
                // Donc même probleme entre les parametres 15,120 et 17,75. ???
                
                // Avec 4-i--> 15,60 moteur 2 se synchronise au moteur 1 avant la fin du cycle (après le debut du demi-cyle), donc avant deux minutes
                // Par contre le programme continue d'afficher les états
                // Avec i-2--> 15,60 moteur 0 se decalle en premier, mais le monitor continue d'afficher
 
Voilà, espérant ne pas t'avoir trop embrouillé. 
 
S'il est plus simple de faire un déphasage plus petit 120° (par exemple) au lieu de 180°avant que les pales ne se replie, on peut changer de choix esthétiques.
Ce qui compte pour moi, ce sera plus la partie interactive que le motif ouverture repli, bien qu'il faille bien commencer par le debut.
:mr47_05:

Fichier(s) joint(s)



#26 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 089 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 02 octobre 2019 - 05:42

Je reconnais que je suis plutôt embrouillé x) 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

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 ! 

 

Les réalisations de Mike118  

 

 

 






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users