[Autre] codeur incrémental
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

codeur incrémental



  1. #1
    jekoalal

    codeur incrémental


    ------

    j'ai pour but de réaliser un dispositif qui doit se placer sur le vélo plus précisément sur la roue. il pouvoir envoyer une impulsion toutes les 10ms si possible afin de bien pouvoir repérer le moment dont l’on freine et dont nous nous arrêtons, afin de permettre la mesure précise de cette latence. j'ai pensé a celui ci Encodeur Incrémental 400 P/R pour permettre la mesure précise. je ne sais vraiment pas ou le placer tout d'abord pour mesurer le nombre de tour de roue. Si quelqu'un a des idées je suis preneur.

    -----

  2. #2
    jiherve

    Re : codeur incrémental

    bonsoir,
    ce n'est pas possible avec ce type de codeur qui n'est pas du tout fait pour çà, il décédera très vite.
    Pour ton probleme il faudrait placer un codeur optique sur ta roue :
    une couronne percée de trous régulièrement espacés et une fourche optique pour detecter ces trous.
    autre solution : utiliser une "dynamo" d’éclairage qui sort donc de l'alternatif et faire une mesure de fréquence ou de periode.
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    Murayama

    Re : codeur incrémental

    Bonjour!

    Je ne dis pas que c'est impossible, mais j'ai du mal à voir l'utilité de l'encodeur dans ce cas
    s'il ne s'agit que de repérer le moment "dont l'on freine", etc.
    Un encodeur qui mesure toutes les 10 ms, c'est parfaitement possible. Vous avez un encodeur
    précis? Une référence?
    Pour un vélo, il faut quelque chose qui consomme peu. N'en v'là un qui ferait l'affaire.
    J'ai fait un prototype juste pour démontrer ses capacités. Il a une résolution de 1024 pas
    par tour. Il est possible de lire jusqu'à 4kHz (pour être précis, 4k n'est pas la fréquence
    de l'horloge SPI, mais le nombre réel de lectures possibles). Donc une lecture toutes les
    250 µs. Avec un SPI à 10 MHz et des trames de 16 bits, on est dans les 1.6 µs de temps
    de lecture.

    Il y aura un peu à bricoler et surtout programmer: c'est un encodeur absolu, donc vous n'aurez
    pas d'impulsions, mais une valeur à lire. Ensuite, vous lisez, et quand vous vous apercevez
    que la valeur actuelle est la même que la valeur précédente (1), c'est que vous êtes à l'arrêt.

    (1) Au bruit près, évidemment.

    Il vous faut un moyen de le faire tourner de manière synchrone à la roue avant, par exemple
    en le montant sur une roulette en caoutchouc qui roule sur le disque eud'frein.

    Je viens de faire une petite video, mais le site répond: fichier non valide. Sans préciser la cause.
    Bon, je mets une photo à la place. Ce que ça fait: quand on tourne le bouton rouge, l'angle change.
    Une charge (180 mAh) permet de faire tourner le système environ 100 heures.

    Nom : TW11.png
Affichages : 170
Taille : 324,9 Ko

    Pascal
    Dernière modification par Antoane ; 18/04/2023 à 09h18. Motif: Suppression PJ en double

  4. #4
    jekoalal

    Re : codeur incrémental

    C'est une très bonne idée pour le coder optique mais il faut que ce soit le plus simple à placer et à coder. Peux tu m'en dire plus sur la dynamo je trouve que c'est une excellente idée mais je ne sais comment relever les mesures de fréquence ou de période tout en roulant en vélo.

  5. A voir en vidéo sur Futura
  6. #5
    jekoalal

    Re : codeur incrémental

    c'est une bonne idée aussi Pascal, le problème est que je dois mesurer une intensité par rapport à la vitesse pour que mon algorithme fonctionne. Je dois absolument obtenir une vitesse et pouvoir les relevés tout en étant sur mon vélo.

  7. #6
    jekoalal

    Re : codeur incrémental

    * l'intensité de freinage plutôt.

  8. #7
    Murayama

    Re : codeur incrémental

    Bonjour!

    c'est une bonne idée aussi Pascal, le problème est que je dois mesurer une intensité par rapport
    à la vitesse pour que mon algorithme fonctionne. Je dois absolument obtenir une vitesse et pouvoir
    les relevés tout en étant sur mon vélo

    l'intensité de freinage plutôt.


    Pour faciliter l'aide, il faudrait commencer par utiliser des mots standards en physique.
    Intensité est un terme précis qui désigne l'intensité du courant qui est le nombre d'électrons qui traversent
    une section du conducteur par seconde.
    L'intensité du freinage évoque pour moi plutôt une accélération. Accélération au sens physique, c'est à dire
    que freinage = décélération = accélération négative.

    Résumons: vous voulez mesurer l'accélération du vélo? (donc en m / s^2 ?).
    La dynamo a un gros désavantage: quand on est proche de l'arrêt, il n'y a plus de signal. L'encodeur fonctionne
    même à l'arrêt.

    En ce qui concerne ce que je vous propose: vous avez la possibilité de mesurer un angle. C'est de la très basse
    résolution (1024 pas par tour) au vu de la technologie actuelle, et l'avantage est le prix.
    Vous pouvez faire 4000 mesures de cet angle par seconde. Vu que les accélérations du vélo sont modérées
    (même pour un champion cycliste), c'est largement suffisant. C'est même probablement trop.
    Vous allez avoir une série de valeurs entre 0 et 1023. On va supposer que l'encodeur tourne à la vitesse de
    la roue de 700 mm (2m par tour, ne chipotons pas pour l'instant).
    Un exemple: valeur = 1010, valeur suivante : 6 (je prends un cas compliqué volontairement). La roue a donc tourné
    de 6 + (1024-1010) = 20. Vous savez que 1024 correspond à 1 tour. Donc la distance parcourue est
    (20 / 1024) * 2m. Numériquement, c'est 40/1024 ou 0.004m. Et comme le temps est 0.25ms parce que nous
    fonctionnons à 4000 mesures par seconde, 0.004 * 4000 = 16m/s. Donc dans les 50 km/h.

    Voilà, vous savez maintenant calculer une dérivée par rapport au temps.
    Le calcul est simple, vous mesurez 2 positions en un intervalle de temps connu, et vous en déduisez quelle distance
    vous pourriez couvrir en 1 seconde. Pour les véhicules, c'est plutôt en heures, mais c'est la même chose.

    Maintenant, l'"intensité" du freinage, c'est le même principe: vous voulez savoir combien de temps il faut pour
    réduire votre vitesse. Donc combien de temps il faut pour passer de 16m/s comme ci-dessus à 8 m/s ou 25 km/h.
    S'il vous faut 1 seconde, alors vous pouvez dire que chaque seconde, vous réduisez votre vitesse de 8 m/s.
    Donc votre accélération est de -(8m/s)/s, moins 8 m/s par seconde. Et comme on divise 2 fois par des secondes,
    on a coutume d'appeler cela des mètres par seconde carrée ou m/s^2. Bref, vous calculez la vitesse, et vous
    retranchez la vitesse d'avant, vous aurez l'accélération. Que vous pouvez exprimer en m/s^2 ou en g, sachant
    que 1g = 10m/s^2.

    le problème est que je dois mesurer une intensité par rapport à la vitesse pour que mon algorithme fonctionne.


    Ce n'est pas clair. En supposant que l'intensité est l'accélération, avoir l'accélération par rapport à la vitesse n'apporte
    rien. Si vous enregistrez la vitesse (en fonction du temps), vous connaissez aussi l'accélération qui est sa dérivée,
    voir plus haut.

    Je dois absolument obtenir une vitesse et pouvoir
    les relevés tout en étant sur mon vélo


    Pour la vitesse, voir plus haut.

    Vous devriez aussi surveiller votre grammaire, vous relire. Si vous écrivez et modifiez, la phrase ne tient
    plus debout, ça m'arrive tout le temps.

    Que voulez vous dire par "pouvoir les relevés"?
    - Pouvoir les relever? Dans ce cas, relever quoi et quoi? Le s suggère plusieurs choses à relever.
    - Il manque un mot? pouvoir enregistrer les relevés? C'est une possibilité, mais dans ce cas aussi, les relevés de quoi
    et quoi?

    Cette discussion me rappelle un système que j'avais fait il y a au moins 10 ans, avec un GPS,
    une carte SD pour enregistrer la position, et un écran LCD 160x128. L'algorithme supprime la
    mesure pendant les feux rouges de mon début de parcours, le temps de sortir de Kyoto.
    Qui correspond à repérer le moment "dont l'on s'arrête".
    La carte SD enregistre des fichiers googlemap, donc on peut voir le parcours après coup.

    Pascal

  9. #8
    jekoalal

    Re : codeur incrémental

    Bonjour, Pascal

    Vous avez totalement raison, je me suis embrouillé dans ma phrase et désolé pour la grammaire je ne me suis pas relu.

    Tout d'abord merci pour l'explication du codeur incrémental. J'aurais une question sur cette phrase "la roue a donc tourné
    de 6 + (1024-1010) = 20" le 20 correspond donc à l'angle de l'encodeur, est-ce bien ça ?

    Maintenant pour l'intensité de freinage, je n'ai pas tellement compris votre exemple. "vous mesurez 2 positions en un intervalle de temps connu, et vous en déduisez quelle distance
    vous pourriez couvrir en 1 seconde" Le problème est tant que je dois juste pouvoir obtenir l'intervalle de temps entre deux pulsations de l'encodeur afin d'avoir des ms pour connaitre ma précision et le temps pour que je freine. Je n'ai aussi pas compris le "1 seconde" car comme je le dis juste au-dessus je veux juste l'intervalle entre les deux pulsations pour obtenir la latence entre le freinage.

    Oui c'est ça je dois aussi obtenir l'accélération, vous pourriez me faire un autre exemple concernant l'accélération avec la même vitesse 16 m /s.

    Enfin oui désolé, il manque un mot. Je dois obtenir les donnés suivants : la vitesse en fonction du temps ainsi que sa vitesse instantanée et enfin l'accélération pour obtenir une courbe avec la variation de vitesse du vélo, pour me permettre d'avoir toutes les donnés que j'ai besoin.

    Avec toutes ses données je ainsi les relevés sur Excel ce serait bien, comme dans cette vidéo https://www.youtube.com/watch?v=3Kt1...86%D9%88%D8%B1.

    J'ai besoin d'avoir les informations en temps réel sur mon PC par Bluetooth ou bien juste par un fil tout simplement mais je ne sais pas comment faire, je parle en matière de codage sur de l'Arduino .

    Cordialement, Jekoalal

  10. #9
    jiherve

    Re : codeur incrémental

    bonjour
    indépendamment des considérations théoriques le soucis sera : comment placer ce capteur ?
    Soit tangentiel sur la jante
    Soit central sur le moyeu
    ce choix fait le reste pourra être discuté.
    JR
    l'électronique c'est pas du vaudou!

  11. #10
    jekoalal

    Re : codeur incrémental

    Je pensais justement à utiliser la fixation du dynamo afin de placer mon codeur incrémental dedans.
    Si vous avez d'autres solution je suis preneur.

    Jekoalal

  12. #11
    jiherve

    Re : codeur incrémental

    re
    non c'est une solution simple, attention au glissement possible!
    JR
    l'électronique c'est pas du vaudou!

  13. #12
    Murayama

    Re : codeur incrémental

    Bonjour!

    Maintenant pour l'intensité de freinage, je n'ai pas tellement compris votre exemple. "vous mesurez 2 positions en un intervalle de temps connu, et vous en déduisez quelle distance vous pourriez couvrir en 1 seconde"


    Si vous voulez connaître votre vitesse avec un système digital (1), c'est comme si vous marchez sur une route.
    Vous passez devant une borne, vous regardez l'heure. Vous passez devant une 2ème borne 10 minutes plus
    tard, vous en déduisez que vous avez fait 1 km en 10 minutes donc que vous marchez à 6 km/h de moyenne.
    C'est difficile à comprendre? Il y a bien 2 positions (dans mon exemple 1010 et 6) et un intervalle de temps
    connu (1/4000)s, soit 250 µs. Vous savez par ailleurs que 1 tour de roue, c'est 1024 points, mais c'est aussi
    2 mètres. Changement de une unité de l'encodeur est donc égal à 2 mètres / 1024 divisions =~= 2mm.
    Donc n divisions = 2mètres x n/1024 m. J'ai choisi comme intervalle une seconde pour avoir un résultat en
    mètres par seconde, qui est une unité pratique pour faire des calculs. Mais ça doit marcher aussi en shaku
    par cycle de sablier. À une constante près.

    (1) Il y a des solutions analogiques comme dans les vieux compteurs de voiture. Un aimant tournant dans une cloche
    métallique avec un ressort de rappel, etc, etc... Mais avec Arduino, ce serait difficile.

    J'ai besoin d'avoir les informations en temps réel sur mon PC par Bluetooth ou bien juste par un fil


    Je serais à votre place, j'éviterais de travailler sur un PC en roulant à vélo. Une solution serait de stocker
    les données brutes sur une carte SD et regarder après avoir posé le vélo.

    Oui c'est ça je dois aussi obtenir l'accélération, vous pourriez me faire un autre exemple concernant
    l'accélération avec la même vitesse 16 m /s.


    Vous exagérez! Je vous ai dit que c'était la même chose.
    Reprenons l'exemple des bornes kilométriques.
    Un premier calcul vous révèle que vous marchez à 6km/h. Pour les 10 minutes d'après, vous êtes entre
    2 bornes, devant une petite borne blanche, vous n'avez parcouru que 900m. L'intervalle est
    constant, comme avec l'encodeur). Vous en déduisez que vous avez décéléré de 6 à 5.4 km/h, parce que
    ça monte ou autre... Vous pouvez dire que vous avez perdu 0.6 km/h en 10 minutes, donc 3.6km/h par heure,
    non? Je vous laisse réfléchir. Mais c'est exactement la même chose. Revoyez vos cours de physique de seconde.
    Votre accélération a donc été -3.6 km/h par heure, ou encore -3.6km/h^2 (km par heure au carré). NB:
    le carré porte sur le temps uniquement. N'allez pas me calculer le carré de la vitesse, ça ne marchera jamais.

    Pascal


  14. #13
    jekoalal

    Re : codeur incrémental

    Bonjour !

    J'ai compris maintenant merci mais pas besoin de me dire que j'exagère, j'ai juste demander un autre exemple je ne voit ce qu'il y a de mal.

  15. #14
    Murayama

    Re : codeur incrémental

    Bonjour!


    pas besoin de me dire que j'exagère, j'ai juste demander un autre exemple je ne voit
    ce qu'il y a de mal.

    Dans votre cas, j'aurais opté pour le profil bas, mais bon.
    Vous devriez (re)lire la charte du forum. Ici, on ne résout pas les problèmes des
    demandeurs, on les conseille.
    - Je vous ai expliqué avec force détails, parce que vous semblez n'avoir aucune notion
    de physique, ou du moins de cinématique, la manière de faire vos calculs.
    - Message 3 réécrit en 7 avec plus de détails, pour vous voir demander un exemple
    alors que je venais de détailler le mode opératoire du calcul d'accélération.
    - Malgré cela: ré-explication message 12, vous ne pouvez pas me reprocher mon manque de
    bonne volonté.


    À tout hasard, je ne suis pas rémunéré pour vous répondre, comme aucun des participants.


    Trois messages détaillés pour se voir envoyer bouler... Je suis peut-être trop habitué
    ici dans mon travail à une reconnaissance et une courtoisie qui n'ont plus cours en France
    depuis longtemps... Je n'aurai qu'un dernier commentaire: à l'avenir, démerdez-vous!


    Pascal


    Bon, ben je vais bosser un peu pour moi, du coup.

Discussions similaires

  1. [Programmation] Sorties du codeur incrémental
    Par Slaivers dans le forum Électronique
    Réponses: 4
    Dernier message: 31/05/2016, 22h18
  2. Codeur incrémental
    Par invitee0ba7c35 dans le forum Électronique
    Réponses: 9
    Dernier message: 16/12/2011, 13h30
  3. Codeur Incrémental
    Par petitnul12 dans le forum Électronique
    Réponses: 16
    Dernier message: 27/10/2010, 20h21
  4. Codeur incrémental?
    Par inviteed63aef3 dans le forum Électronique
    Réponses: 1
    Dernier message: 20/04/2007, 20h51
  5. Codeur Incremental
    Par invitef341dab1 dans le forum Électronique
    Réponses: 4
    Dernier message: 26/02/2006, 12h55
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...