Aller au contenu


Photo
- - - - -

Ajout d'un capteur de courant sur un servomoteur pour mesurer l'effort de serrage d'une pince


11 réponses à ce sujet

#1 Donovandu88

Donovandu88

    Membre passionné

  • Membres
  • PipPipPip
  • 571 messages
  • Gender:Male

Posté 16 décembre 2018 - 03:35

Salut !

 

Dans le cadre de mon projet de pince pour robot j'ai installé le capteur de courant sur le +5v du servo moteur mais lorsque je récupère les valeurs du courant dans le Serial j'obtiens ceci :

50

43

57

7

85

59

102

0

23

57

etc...

 

Les valeurs changent tout le temps alors que le servo n'est pas en mouvement. Une idée d'ou sa peut venir?



#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 547 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é 16 décembre 2018 - 04:20

Ces valeur c'est quoi ? Des mA ? 

Dans tous les cas il faut comparer ça avec les valeurs fourni quand le servo force ... 

 

Sans code, sans unité d'affiché ... difficile d'aider plus ... 


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  

 

 

 


#3 Donovandu88

Donovandu88

    Membre passionné

  • Membres
  • PipPipPip
  • 571 messages
  • Gender:Male

Posté 16 décembre 2018 - 04:53

La valeur, on peut l'avoir en ce qu'on veut, la j'ai simplement récupéré les valeurs du capteur entre 0 et 1024.

J'ai simplement remarquer que les valeurs dépassent le 120 quand on pince quelque chose mais il y a toujours autan de variations. Je pensais avoir une valeur qui reste plus ou moins fixe mais c'est pas le cas.



#4 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 547 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é 16 décembre 2018 - 06:57

Encore une fois sans plus d'info difficile de t'aider ... 

 

avec ce seul message que tu donnes j'ai envie de te dire de faire une moyenne des mesures... une variation de 0 à 102 sur 1024 ça correspond à 10% de la tension max don en gros à 0.5V ... si tu as ton alimentation qui fluctue ça peut avoir un impact non négligeable sur ton acquisition ... 

Sinon divise ton résultat par 100 et regarde quand est ce qu'il est supérieur à 0...

 

Une photo du câblage ça peut aider aussi. 

Je te propose de faire un sujet séparé de ce sujet tu en penses quoi? 


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  

 

 

 


#5 Forthman

Forthman

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 727 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 16 décembre 2018 - 07:11

pas très étonnant puisqu'un servo corrige en permanence sa position.

Comment est fait ce capteur de courant ? ne serait-il pas possible de glisser un condensateur de lissage sur la résistance de shunt ?



#6 Donovandu88

Donovandu88

    Membre passionné

  • Membres
  • PipPipPip
  • 571 messages
  • Gender:Male

Posté 16 décembre 2018 - 08:44

Le capteur de courant que j'ai, c'est celui-ci :

https://www.ebay.fr/...353.m2749.l2649

s-l1600.jpg

 

Au bout du bras j'ai un +5v et un GND commun à tout mes capteurs ainsi que mon servo-moteur mais sur le +5V du servo-moteur j'ai branché le bornier (vert) du capteur de courant en serie.

 

Pour avoir du 5V j'ai un convertisseur 12V-->5V

Peut-être qu'il y a des fluctuations de courant à cause de ça?

 

Pas de photo du câblage car tout est déjà intégré dans la pince du robot.

On peut éventuellement faire un sujet séparé si tu veux.

 

Par contre Forhman, tu me perds un peut ^^



#7 Forthman

Forthman

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 727 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 16 décembre 2018 - 09:57

ok, je viens d'aller voir ton lien et la datasheet sur l'ACS712

quand tu disais récupérer les donnée dans le sérial, je pensais que c'était le capteur qui renvoyait une sortie série.

 

Déjà, assure-toi que le 5Vcc envoyé à ta carte (le capteur avec l'ACS712) est bien propre, ensuite, il y a bien un filtre

sur la broche 6 mais à mon avis la valeur du condensateur est bien trop petite pour lisser les fluctuations d'un servo.

Je pense qu'il serait plus simple de résoudre ça par programme, mais ça dépend du temps disponible sur ton arduino.



#8 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 547 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é 16 décembre 2018 - 10:49

Pour en revenir sur la remarque de Forthman, je pense qu'il partait du principe que les variations de courant observées sont dues au fait que comme le servomoteur est asservi en position en fonction de la correction à apporter au moteur pour maintenir la position asservie le moteur va plus ou moins moins consommé... 

 

Essaye de tenir en équilibre en marchant sur une corde, a moins que tu sois super doué, en gros tu vas osciller légèrement un peu à droite et à gauche autour de la position d'équilibre. 
C'est un peu ce qu'il se passe lors de l'asservissement en position de ton moteur et ça peut se traduire par des variations plus ou moins élevée de courants. 

Dans tous les cas il serait intéressant de remettre les valeurs à l'échel en mA pour voir si ça corresponde à une grande variation ou pas. 
Supposant que 0V c'est 0A et 5V c'est 5A 

une variation de valeur analogique lue de 50 à 100 => ça nous donne une variation en courant  250  à 500mA ... 

 

 

Sinon pour " Lisser les valeurs" par "programme " il suffit de faire une moyenne glissante sur les 5  ou 10 dernières valeurs par exemples...

 


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  

 

 

 


#9 Donovandu88

Donovandu88

    Membre passionné

  • Membres
  • PipPipPip
  • 571 messages
  • Gender:Male

Posté 17 décembre 2018 - 08:14

Déjà, assure-toi que le 5Vcc envoyé à ta carte (le capteur avec l'ACS712) est bien propre, ensuite, il y a bien un filtre

sur la broche 6 mais à mon avis la valeur du condensateur est bien trop petite pour lisser les fluctuations d'un servo.

Je pense qu'il serait plus simple de résoudre ça par programme, mais ça dépend du temps disponible sur ton arduino.

 

Je n'ai pas d’oscilloscope pour vérifier si le 5V est propre  :crazy:

 

Le temps disponible que tu parles, c'est pour savoir si on peut mettre une delay?

 

Pour en revenir sur la remarque de Forthman, je pense qu'il partait du principe que les variations de courant observées sont dues au fait que comme le servomoteur est asservi en position en fonction de la correction à apporter au moteur pour maintenir la position asservie le moteur va plus ou moins moins consommé... 

 

Essaye de tenir en équilibre en marchant sur une corde, a moins que tu sois super doué, en gros tu vas osciller légèrement un peu à droite et à gauche autour de la position d'équilibre. 
C'est un peu ce qu'il se passe lors de l'asservissement en position de ton moteur et ça peut se traduire par des variations plus ou moins élevée de courants. 

Dans tous les cas il serait intéressant de remettre les valeurs à l'échel en mA pour voir si ça corresponde à une grande variation ou pas. 
Supposant que 0V c'est 0A et 5V c'est 5A 

une variation de valeur analogique lue de 50 à 100 => ça nous donne une variation en courant  250  à 500mA ... 

 

 

Sinon pour " Lisser les valeurs" par "programme " il suffit de faire une moyenne glissante sur les 5  ou 10 dernières valeurs par exemples...

 

 

Dans un des exemples sur Ebay, il y a :

 

"As I wrote, output voltage is proportional to input current. The value that links the two measurements is sensitivity (you can find it on the datasheet) which – for 5A model – has a typical value of 185mV/A. The sensor can measure positive and negative currents (range -5A…5A), so if input current is 0, output value is 2.5V.

 

We’re going to read output value with one of the analog inputs of Arduino and its analogRead() function. That function outputs a value between 0 (0V in input) and 1023 (5V in input) that is 0,0049V for each increment.

The formula you need to convert units from analogRead() to Ampere is:"

formula.jpg

 

Donc je pourrais comme tu le dis, faire une moyenne des valeurs. Moyenne sur un temps donné ou moyenne simplement sur les dernières valeurs?



#10 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 547 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é 17 décembre 2018 - 10:03

Tu peux déjà commencer par afficher les résultats en mA , puis faire une moyenne simplement sur les 10 dernière valeurs . 
=)
 


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  

 

 

 


#11 Forthman

Forthman

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 727 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 17 décembre 2018 - 11:02

non, pas de delay, mais être sûr que la fréquence d'échantillonnage soit suffisante, et en même temps qu'elle ne perturbe pas le reste du programme



#12 Donovandu88

Donovandu88

    Membre passionné

  • Membres
  • PipPipPip
  • 571 messages
  • Gender:Male

Posté 18 décembre 2018 - 06:31

D'accord, je vais essayer de faire ça.
Après, en principe on a un peut de temps pour récupérer les valeurs car lorsque le robot pince ou lâche un objet, il n'est pas en mouvement en même temps.



Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users