Aller au contenu


Photo
- - - - -

Robot 2WD homologable pour la coupe de france de robotique réalisé au dernier moment

Odométrie Codeur Encodeur Quadrature asservissement Moteur CC PID

45 réponses à ce sujet

#41 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 173 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é 11 février 2019 - 12:19

Il faut revoir ta façon de traiter les interruptions. 

 

En ne traitant que dans ce cas : 

if((encoderAPinALast == LOW) && LstateA==HIGH)

Tes conditions ne traite qu'un cas sur 2 ... où est le cas où LstateA == LOW ? 
=> tu avais ta résolution divisée par 2.

 

 

il faut que tu fasses : 

Si A change : 

 

A = read(PinA)

sens = A xor (last B )
last A = A

if(sens==directionPositive)
 speed++
else
speed -- 

 

Si B change 

 

B = read(PinB)
sens = !(B xor (last A))

last B = B

if(sens==directionPositive) 
 speed++ 
else 
speed -- 

 

Pourquoi chercher à faire une seule interruption "plus grosse" et faire la distinction des cas dedans quand tu peux faire deux interruptions plus courte avec la distinction déjà effectuée ? =)

 

De plus je te recommande de faire le read(Pin) sans utiliser les digitalRead. Cela sera aussi plus rapide d'exécution => Il faut lire directement le Port et le pin correspondant. 


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  

 

 

 


#42 bvking

bvking

    Nouveau membre

  • Membres
  • 29 messages

Posté 11 février 2019 - 12:29

Je vais voir ça!



#43 bvking

bvking

    Nouveau membre

  • Membres
  • 29 messages

Posté 11 février 2019 - 02:26

Pardon, 

Mais ça à l'air simple pour toi, mais pas pour moi. Je pense pouvoir y arriver mais j'ai plein d'autres choses à programmer

( les vitesses qu'auront chaque moteur, comment ils devront changer de vitesses, comme l'un ou les uns devront interagir avec les autres, avec quels fonctions de couplages....).

Si tu peux modifier vite fait le code je suis pas contre ton aide.

 

Quant à lire directement sur le Port, là c'est de l'abstraction total. 



#44 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 173 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é 11 février 2019 - 03:50

Pardon, 

Mais ça à l'air simple pour toi, mais pas pour moi. Je pense pouvoir y arriver mais j'ai plein d'autres choses à programmer

Si tu peux modifier vite fait le code je suis pas contre ton aide.

 

 

Justement c'est en modifiant le code soit même qu'on apprend. 
Je t'ai volontairement donné que du pseudo code pour que tu tapes toi même le code.
c'est 10 fois plus formateur. 

 

J'aide gratuitement sur le forum =) par contre si c'est pas de l'aide que tu cherches mais que quelqu'un le fasse à ta place je facture mes prestations ... 

Lire directement sur le port :: lien où en on parle http://forum.arduino.cc/index.php?topic=260731.0 

Par contre ça commence à être plus compliqué. Pour le moment garde le digitalRead. Plus tard quand tu souhaiteras tu pourras passer à autre chose !
On pourra ouvrir un sujet dédié à ce topic si tu le souhaites.

 

 


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  

 

 

 


#45 Azhkend

Azhkend

    Nouveau membre

  • Membres
  • 1 messages

Posté 05 mars 2019 - 11:36

Bonjour,

Comment fais-tu pour choisir la valeur du timer :

Timer1.initialize(80000); ?

Merci d'avance ;)

#46 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 173 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é 06 mars 2019 - 12:15


  Timer1.initialize(80000);            // set a timer of length  0.08 sec => permet d'avoir speed le plus proche de 127 sans dépasser 127 en vitesse max ! 

80000 c'est en micro secondes. 

Tu peux choisir le temps qui te convient. Pour ma part j'ai choisit ce temps de sorte à avoir un nombre de tick max  quand on est à vitesse max compris  entre 127 et -127 pour que la valeur de vitesse mesurée tienne sur un int8_t  ... Cette valeur max représente la résolution que tu auras sur la mesure de ta vitesse. 

D'un côté plus le temps sera court mieux ( fréquence d'asservissement plus importante) cela sera mais il faut que suffisament de tick soit compté dans un certain laps de temps pour que cela soit efficace ... 
Il faut ni trop de ticks ni pas assez ...

Ajuste cette valeur en fonction de la fréquence de l'asservissement souhaité et du nombre de tick max que tu as. 
Plus ton moteur tourne vite et plus tu as de ticks par tours plus le temps devra être court et inversement. 
 


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  

 

 

 




Répondre à ce sujet



  



Aussi étiqueté avec au moins un de ces mots-clés : Odométrie, Codeur, Encodeur, Quadrature, asservissement, Moteur CC, PID

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

0 members, 0 guests, 0 anonymous users