Aller au contenu


Photo
- - - - -

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


43 réponses à ce sujet

#41 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 581 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 !

 

Les réalisations de Mike118  

 

 

 


#42 bvking

bvking

    Nouveau membre

  • Membres
  • 13 messages

Posté 11 février 2019 - 12:29

Je vais voir ça!



#43 bvking

bvking

    Nouveau membre

  • Membres
  • 13 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
  • 7 581 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 !

 

Les réalisations de Mike118  

 

 

 




Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users