Répondre à la discussion
Page 2 sur 3 PremièrePremière 2 DernièreDernière
Affichage des résultats 31 à 60 sur 66

encodeur linéaire avec arduino




  1. #31
    Yvan_Delaserge

    Re : encodeur linéaire avec arduino

    Citation Envoyé par Murayama Voir le message


    Non, malheureusement, ça ne peut pas fonctionner, parce que la sortie d'une tête
    magnétique est nulle à vitesse nulle.
    Ça pourrait fonctionner (un peu) si on peut s'assurer que la vitesse est constante,
    un peu comme sur les vieux analyseurs de spectre à rouleau. Mais le but d'un encodeur
    linéaire est d'être précis même à vitesse nulle. Ou alors il faudrait développer des
    capteurs à effet Hall spéciaux, mais je ne suis pas certain que ce soit faisable.
    D'ailleurs si aucun fabricant ne l'a fait...

    Donc on doit avoir un matériau magnétique avec une certaine force de champ, à vue de
    nez quelque dizaines de kA/m. Les bandes magnétiques seraient bien trop faibles pour
    émouvoir les capteurs à effet Hall. NB: Je dis "force de champ" parce que je ne sais
    pas comment ça s'appelle en Français. Je trouve "force du champ magnétique" sur google,
    mais ça me paraît chelou parce que ce n'est pas une force. Disons 磁場の強さ et n'en
    parlons plus. C'est le H, pas le B qui est utilié dans ce petit monde assez fermé.
    A propos de H et de B, je trouve ceci sur le web:

    Usage des lettres B et H dans les équations de Maxwell
    L'usage des lettres B et H semble bien stabilisé.
    En revanche la dénomination de ces champs magnétiques est très fluctuante. Dans le système international, l'unité de mesure du champ magnétique B
    est le Tesla = kg * s**-2 * A**-1 et l'unité de mesure du champ magnétique H est l'ampère par mètre = A * m**-1

    Mais il y a de quoi embrouiller:
    CHAMPMAG.jpg

    Dommage pour l'idée de la bande magnétique!
    Pour rester dans ce qui serait réalisable par l'amateur pour un capteur de position absolue, mais rotatif cette fois, je me demande s'il serait envisageable de réaliser l'équivalent de ce qui était utilisé autrefois, dans ce que l'on appelait un synchro ou un resolver, mais en utilisant des capteurs à effet Hall. C'est exactement le principe des capteurs TW11. ça serait plus volumineux, mais ça devrait fonctionner, non?.
    Sauf que les capteurs à effet Hall que l'on trouve facilement, du genre A 3144, ont une sortie tout-ou-rien.
    Mais s'il était possible de s'en procurer avec une sortie analogique, on pourrait les lire avec un Arduino, calculer des interpolations et avoir une précision intéressante. Probablement plus grande qu'avec un synchro qui n'utilisait que trois bobines de "lecture". Les capteurs à effet Hall étant de petites dimensions, on pourrait en disposer plusieurs tout autour de l'aimant, ce qui permettrait(?) une meilleure résolution (?) non?

    -----

    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  2. Publicité
  3. #32
    Yvan_Delaserge

    Re : encodeur linéaire avec arduino

    Pour préciser le principe d'un synchro (Selsyn) ou d'un resolver:

    SELSYN.jpg

    J'ai eu l'occasion il y a un certain nombre d'années, d'examiner de près les organes d'un radar de type ancien, dont les indications de position des axes de rotation étaient fournies par un synchro, lues par une électronique noyée dans un bloc de résine et affichées sur un afficheur 7 segments avec une précision de 0,1 degré.

    A l'époque où le radar avait été construit (années 70), les capteurs à effet Hall venaient de faire leur apparition.
    Le selsyn était mécaniquement très bien construit. Il donnait l'impression de quelque chose de haute précision.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  4. #33
    Yvan_Delaserge

    Re : encodeur linéaire avec arduino

    Un selsyn à capteur Hall deviendrait donc quelque chose comme ça:

    SELSHALL.jpg

    L'arduino lirait les intensités du champ magnétique, qui passeraient selon l'angle de rotation par des maxima positifs ou négatifs.
    On pourrait imaginer une " Look-up table" avec des valeurs tous les degrés, et on pourrait ensuite calculer des interpolations pour atteindre le dixième de degré de résolution.

    Penses-tu que ça pourrait fonctionner?

    Et si on dispose davantage de capteurs Hall, est-ce que la résolution pourrait être meilleure?
    S'il était possible de se procurer des capteurs dont la sortie ne soit pas "tout-ou-rien" bien sûr!
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  5. #34
    Yvan_Delaserge

    Re : encodeur linéaire avec arduino

    Il existe des modules à effet Hall permettant de mesurer un courant compris entre -5 et + 5 A.
    Ils utilisent le chip ACS 712.
    Ils se présentent comme ça:

    HALLACS7.jpg

    Donc ils ne fonctionnent pas en tout-ou-rien ceux-là.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  6. #35
    Yvan_Delaserge

    Re : encodeur linéaire avec arduino

    Et ils fonctionnent en faisant circuler le courant à mesurer au voisinage d'un capteur à effet Hall:

    HALLCURR.jpg

    Un courant de 5 A va produire un champ magnétique plutôt faible en comparaison de celui d'un aimant.

    Il s'agirait d'utiliser ces modules en les montant de manière à ce que les lignes de champ de l'aimant fixé à l'axe en rotation, traversent le chip perpendiculairement à la surface du circuit imprimé.

    Qu'en pensez-vous?
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  7. #36
    Murayama

    Re : encodeur linéaire avec arduino

    Bonjour!

    Citation Envoyé par Yvan_Delaserge Voir le message
    Un selsyn à capteur Hall deviendrait donc quelque chose comme ça:

    Pièce jointe 355836

    L'arduino lirait les intensités du champ magnétique, qui passeraient selon l'angle de rotation par des maxima positifs ou négatifs.
    On pourrait imaginer une " Look-up table" avec des valeurs tous les degrés, et on pourrait ensuite calculer des interpolations pour atteindre le dixième de degré de résolution.

    Penses-tu que ça pourrait fonctionner?

    Et si on dispose davantage de capteurs Hall, est-ce que la résolution pourrait être meilleure?
    S'il était possible de se procurer des capteurs dont la sortie ne soit pas "tout-ou-rien" bien sûr!
    Ben c'est justement ce que fait le TW11. En plus, ce n'est pas une sortie tout ou rien, mais un angle
    lu entre [0 et 1024[ [pour l'intervalle [0, 2pi[

    NB: il existe le même genre en 14 bits. Il s'appelle iC-MHM et c'est un QFN28.

    Ah oui, encore une chose: on doit utiliser les capteurs Hall par paire uniquement, pour annuler le bruit
    environnant. S'il y a un moteur à proximité, il y aura forcément un peu de champ magnétique qui fuit.
    Donc il vaut mieux que ces fuites n'aient pas d'influence sur la masure. Ou peu.

    Et faire tout ce traitement par Arduino, je pense que ce ne sera jamais assez rapide...

    Pascal
    Dernière modification par Murayama ; 09/12/2017 à 23h54.

  8. #37
    Murayama

    Re : encodeur linéaire avec arduino

    Re!

    Il s'agirait d'utiliser ces modules en les montant de manière à ce que les lignes de champ
    de l'aimant fixé à l'axe en rotation, traversent le chip perpendiculairement à la surface du
    circuit imprimé.
    Qu'en pensez-vous?

    Oui, c'est une solution qui peut fonctionner. Mais elle serait bien plus compliquée qu'un
    simple chip dédié qui fait déjà tout. Il faudrait 3 capteurs (6 pour travailler en différentiel),
    il faudrait s'assurer que cette solution est bien linéaire, il faudrait lire et faire tout le
    traitement, alors que le TW11 (ou le MHM en 14 bits) sont déjà validés.

    D'autre part, si on revient au sujet de départ, je pense que notre Vosgien cherche une
    solution simple. En fonction de l'expérience ou du défaut d'icelle, il se peut que câbler
    un simple SPI et le programmer correctement soit déjà suffisamment compliqué (NB: je
    n'en sais rien, mais en tout cas s'il savait le faire, il ne viendrait pas demander ici).

    Si on résume le tout, on a pour l'instant des solutions:

    1. Capteur 10 bits + switch. Absolu sur 1 tour, il faut compter les tours depuis une remise
    à 0. Faisable et peu coûteux. Pas de démultiplication, pas de pignons.

    2. Capteur 10 bits + démultiplication 1/25 au moins + autre capteur 10 bits.
    Avantage: solution qui donne une valeur absolue sur toute l'étendue du déplacement,
    remise à 0 inutile. Pour les solutions 1 et 2, pas de calibration, tout fonctionne directement.
    Tout bien réfléchi, le bricoleur peut peut-être accepter de passer par le 0 quand il allume
    sa machine. Ce qui fait que la solution (1) est plus simple et moins coûteuse.

    3. Démultiplication + capteur 14 bits. Solution absolue sur toute l'étendue du déplacement.
    La mise en oeuvre est un peu plus compliquée. Ça marche directement comme 1 et 2, mais
    si on veut vraiment les 14 bits, alors ça demande un peu de travail. Et si on ne veut pas les
    14 bits, je ne vois pas l'intérêt.

    Les 3 solutions ci-dessus demandent des poulies et une courroie crantée. Pour les très grandes
    courroies, on peut les acheter au mètre et utiliser un raccord sur le mobile.

    Voilà pour les solutions accessibles par un bricoleur.

    Maintenant, il y a les solutions purement linéaires. C'est soit cher, soit compliqué à mettre en
    oeuvre. Soit les 2.

    Pascal

  9. Publicité
  10. #38
    cricri8888

    Re : encodeur linéaire avec arduino

    Bonjour à tous, merci pour toutes vos réponses, effectivement, ce que j'imaginais faire n'a pas l'air facile à réaliser.
    Je pensais pouvoir réaliser ça "Butée Numérique Précision 0.1mm - Systéal" à moindre coût. je comprend mieux pourquoi on ne trouve pas si facilement des exemples sur internet. J'ai trouvé ça, "ARDUINO: capteur de position angulaire ou lineaires" quelqu'un peux me dire ce qu'il en pense.
    J'espérais simplement utiliser un codeur rotatif sur une règle. Pensez vous qu'un pignon d'engrenage sur le codeur rotatif qui se déplace manuellement sur une crémaillère pourrais fonctionner et à quel précision.
    Une vis ou une règle magnétique seraient certainement la meilleur solution, mais pour un coût un peu plus onéreux que prévu.

  11. #39
    cricri8888

    Re : encodeur linéaire avec arduino

    Réponse à la question Qu'est-ce qui chauffe la maison?

    La maison n'est pas chauffé, elle n'a pas de déperdition. Etanche à l'air, beaucoup d'isolant avec un lambda très faible, triple vitrage, pas d'ouverture au nord, les baies vitrées au sud et une VMC double flux très performante. La chaleur produit par les appareils électrique de la maison suffisent à la maintenir. Quand il fait vraiment très froid et gris, (pas de soleil dans les fenêtres), il y a un petit poêle à bois. Je consomme environ un demi stère de bois par an, ce qui correspond à mes chutes d'atelier et la taille des arbres à l'extérieur.
    Dernière modification par cricri8888 ; 10/12/2017 à 17h18.

  12. #40
    adipie

    Re : encodeur linéaire avec arduino

    Je te déconseille de monter le pignon directement sur le codeur.
    Un petit axe sur deux paliers sur lequel tu accouples le codeur axialement.
    Les codeurs rotatifs sont allergiques aux efforts radiaux.
    Comme tu déplaces cette butée manuellement, tu la pousse contre une butée fixe, puis tu appuis sur un bouton "Remise à zéro"".
    Pour entraîner le pignon, tu poses des crémaillères avec un faible module sur la partie fixe.
    Plus tard dans la journée je te donnerai plus de précision.

  13. #41
    adipie

    Re : encodeur linéaire avec arduino

    Regarde cette page: https://www.prudhomme-trans.com/page...res-de-mesure/
    Pour trouver des crémaillères de mesure.
    Avec un pas de 5 mm, un pignon de 20 dents et un codeur incrémental de 1000 impulsions par tour, tu arrives à une résolution de 0.1mm.
    Pour un déplacement de 2500 mm tu aura 25 tours de pignons soit 25000 impulsions du codeur.
    Il faudra soigner le montage mécanique de l'ensemble.
    Pour le codeur: https://www.ebay.fr/itm/Nouveau-1Pcs...wAAOSwcUBYIDa2

  14. #42
    Murayama

    Re : encodeur linéaire avec arduino

    Bonjour!

    Je te déconseille de monter le pignon directement sur le codeur.
    Il n'est pas question de monter le pignon sur l'encodeur mais au contraire
    l'aimant de l'encodeur sur le pignon, et le semiconducteur face à l'aimant.

    Regarde cette page: https://www.prudhomme-trans.com/page...res-de-mesure/
    Pour trouver des crémaillères de mesure.
    Avec un pas de 5 mm, un pignon de 20 dents et un codeur incrémental de 1000 impulsions
    par tour, tu arrives à une résolution de 0.1mm.
    Pour un déplacement de 2500 mm tu aura 25 tours de pignons soit 25000 impulsions du codeur.
    Il faudra soigner le montage mécanique de l'ensemble.
    Pour le codeur: https://www.ebay.fr/itm/Nouveau-1Pcs...wAAOSwcUBYIDa2
    Questions: êtes vous certain qu'on peut acheter une crémaillère de 2m50? Dans le tableau,
    L va jusqu'à 1230 mm. Si c'est un pas de 5, c'est moins.
    -> Si oui, quel serait le prix approximatif? (vu que les faces sont rectifiées,
    j'imagine que ce n'est pas donné). Surtout si la crémaillère fait 2m50.
    Un autre problème. La crémaillère étant fixe, le pignon est solidaire du mobile
    dont on veut mesurer le déplacement. Il va falloir aussi ajouter une chaîne de câble
    genre : https://www.igus.fr/energychains

    En ce qui concerne la solution à courroie, c'est la courroie qui coûte le plus cher.
    https://us.misumi-ec.com
    Il faudrait fouiller le site de Misumi et aussi d'autres pour trouver moins cher, on ne sait
    jamais). Ou alors en Chine. Le montage n'a pas besoin d'être soigné.
    Je verrais bien ça dans un rail alu en U retourné avec un système pour tendre.

    Donc en regardant en vitesse, 168 Euros pour 5m de courroie ouverte, un fermoir 7 euros,
    2 poulies, dison 10 euros pièce, un encodeur 10 bits (environ 5 euros), un aimant, une
    carte CPU (TI launchpad 5529, par exemple, 12 ~ 13 euros). Un afficheur (5 euros).

    On peut prendre des poulies assez petites. L'autre jour, je disais 30 mm, mais il est possible
    de faire à moins, et on gagne d'autant en résolution.

    Bon, je dirais que pour 200 ~ 250 Euros, on a la solution complète avec du matériel
    neuf avec pédigree, pas des choses incertaines achetées on ne sait où. Pas besoin de
    chemin de câble puisque l'encodeur est fixe.

    La programmation est quasi-triviale, mais pour quelqu'un qui n'a jamais fait ça,
    c'est un très bon exercice.
    - Timer pour lire l'encodeur toutes les ms (par exemple)
    - À l'échéance du timer, lecture de l'encodeur, calcul du nombre de tours puis de la
    distance, et affichage.

    J'ai bien envie de faire un kit...

    Pascal

  15. #43
    adipie

    Re : encodeur linéaire avec arduino

    Bonjour,
    Il n'est pas question de monter le pignon sur l'encodeur mais au contraire
    l'aimant de l'encodeur sur le pignon, et le semiconducteur face à l'aimant.
    Nous ne parlons pas de la même chose, je parlais d'un pignon 20 dents qui engrène avec une crémaillère et qui transforme le mouvement linéaire en mouvement rotatif qui lui entraîne un codeur rotatif incrémental.
    Pas d'aimant en jeu.

    êtes vous certain qu'on peut acheter une crémaillère de 2m50? Dans le tableau,
    L va jusqu'à 1230 mm. Si c'est un pas de 5, c'est moins.
    D'après le tableau, 1030 + 1030 + 440 = 2500 (ces crémaillères sont mise bout à bout.)

    Si oui, quel serait le prix approximatif?
    Question à poser au fournisseur.

    La crémaillère étant fixe, le pignon est solidaire du mobile
    Le demandeur devrait poster une photo de sa machine pour pouvoir réfléchir à cette question.

    la solution à courroie
    Vu l'élasticité d'une courroie de cette longueur, il est utopique de vouloir tenir le 1/10 ème de mm.

  16. #44
    cricri8888

    Re : encodeur linéaire avec arduino

    Bonsoir,
    Cette dernière solution m'intéresse beaucoup, c'est un peu ce genre de chose que j'imaginais.
    Je pensais que ça pouvais fonctionné avec un simple codeur rotatif à 2 euros chez ebay mais apparement ce n'est pas ca.

    IMG_0517.JPG
    Demain je vais faire une demande de prix pour le pignons et les crémaillères que vous m'indiquez, je vous tiens au courant.
    Je vous envoie une photo de ma table de coupe en cour de réalisation.
    Le meuble support en bois est fini, il manque les poignées de tiroir. La partie bois je métrise très bien.
    Le support de butée est un profilé bosch, je suis en train de réaliser le support de pièces façon convoyeur à rouleau. Pour la partie métallique, ce n'est pas non plus un problème pour moi à réaliser. Le pneumatique par la suite pour maintenir les pièces c'est très simple aussi. Par contre la partie électronique me pose bien du soucie et c'est pour ça que j'ais demandé de l'aide.
    IMG_0152.jpgIMG_0153.jpgIMG_0154.jpg

  17. #45
    adipie

    Re : encodeur linéaire avec arduino

    Bonjour, malgré les photos, je n'ai pas encore bien saisie à quoi ressemble cette butée.
    Si le codeur doit être embarqué sur la butée mobile, il est possible de monter le boîtier électronique avec un afficheur LCD directement sur la partie mobile.
    Une carte Arduino n'est peut être pas la meilleure solution, je verrai plutôt un microcontrôleur PIC alimenté par une pile (pour éviter de traîner un câble d'alimentation avec la butée).
    Mode d'emploi possible:
    Le PIC est en sommeil pour économiser la pile.
    Je pousse la butée contre le point zéro.
    J'appuis le bouton"Init" ce qui va réveiller le PIC et allumer l'afficheur.
    Je pousse la butée à la cote voulue, ce qui va afficher la position mesurée.
    Après x secondes le dispositif se remet en veille.
    Pour l’histoire, en 2009 j’ai réalisé un dispositif alimenté par une pile de 9V et qui affiche la température de la nappe phréatique sur un LCD 2x16 avec le même principe.
    A ce jour je n’ai jamais remplacé la pile.
    Avec un codeur 500 points par tour tu aura une résolution de 0.2 mm, ce qui n’est pas si mal pour ce type d’application.
    Pour éviter d’avoir du jeu entre le pignon et la crémaillère, tu peux monter le codeur sur un genre de petit levier à ressort, ceci aura comme avantage d’avoir un jeu zéro et d’avoir une certaine liberté dans le positionnement de la crémaillère.
    As-tu un lien concernant le profilé Bosch ?

  18. #46
    adipie

    Re : encodeur linéaire avec arduino

    Le système idéal pour cette application:
    https://www.asm-sensor.com/fr/prozessanzeigen.html
    https://www.asm-sensor.com/fr/produk...ge=210&prod=99
    Inconvénient: Le coût.

  19. #47
    adipie

    Re : encodeur linéaire avec arduino

    Si tu te limite à 2000 mm, voici un capteur à fil qui pourrait convenir.

    https://fr.aliexpress.com/item/Draw-...StoreLevelAB=0

  20. #48
    cricri8888

    Re : encodeur linéaire avec arduino

    Bonjour,
    Effectivement, ce serai mieux si le codeur était embarqué sur la butée mobile, comme sur la photo.
    format-4_604-116_03(1).jpg
    Il peut être à pile avec un système de veille, votre solution me parait très bien, si j’arrive à la réaliser.
    Dans le cas contraire, un câble qui suit la butée est possible aussi.

    Le profilé Bosch.
    40x40_dims.gif
    Je ne me souviens plus si c’est du 40/40 ou du 45/45, je vérifierais ce soir et j'envérai une photo de ma butée qui sera bien sur à modifier.
    J'ai fait une demande de prix pour les crémaillères de mesure chez prud'homme, j'attend leurs réponse.
    Si tous ça fonctionne, il reste la carte arduino, le montage avec son afficheur et le programme. Je suis encore loin de voir ma butée fonctionner, mais grâce à votre contribution, j'avance bien.

  21. #49
    adipie

    Re : encodeur linéaire avec arduino

    Tu pourrai aussi utiliser un capteur à câble en passant le câble à l'intérieur du profilé.

    https://www.google.fr/search?q=%22co...cHSuyalZ0pnlM:

    ProfBosch.JPG

  22. #50
    cricri8888

    Re : encodeur linéaire avec arduino

    L'idée du capteur à câble est pas mal non plus, je ne connaissais pas du tout cie système.

    Le principe de ma butée manuel avec son guidage et serrage dans le profilé à modifier pour s'adapter au système numérique.
    IMG_0524.jpgIMG_0523.jpgIMG_0525.jpg

    Le profilé est un 40/40 que j'avais récupéré, mais ce n'est pas du Bosch. Il est un peu moin bien, l'intérieur est un peu différent. Il fonctionne avec ma butée manuel. Il peux fonctionner avec une crémaillère, mais il n'y a pas la place pour y mettre le système du capteur à câble.
    Au cas où j'ai du vrais profilé Bosch en 30/30

  23. #51
    Murayama

    Re : encodeur linéaire avec arduino

    Bonjour!

    Vu l'élasticité d'une courroie de cette longueur, il est utopique de vouloir tenir
    le 1/10 ème de mm.
    Vu les specs de départ (précision 1/10mm sur 2m50) de toute façon, c'est cuit, comme
    ça a été dit dès le départ.
    D'autre part, l'élasticité d'une courroie n'aurait d'effet que si la courroie était
    soumise à des efforts (couple sur les poulies) . Or le seul but de cette courroie
    est de faire tourner un aimant, il n'y a donc aucun effort autre que les frottements
    des roulements. Il s'agit tout de même d'une courroie dite "timing belt" qui est faite
    pour les transmission de mouvements assez précis, très utilisée en robotique.

    Bon, j'ai fait un prototype pour vérifier la faisabilité.
    1. La mécanique.

    01Rail.jpg02ChewingGum.jpg

    Voici montage général sur la première photo. J'ai 2 poulies séparées de 300 et
    quelques mm. Le rail linéaire qui est en arrière plan n'a rien à voir, c'est un autre
    système en construction. La plupart du matériel vient de chez Misumi (poulies, courroies,
    paliers, etc). Le rail de base a des rainures en T bien pratiques, j'en ai toujours
    en stock. Il fallait donc monter l'aimant sur une des poulies. Dans un premier temps,
    j'avais essayé de fixer l'aimant avec du chewing-gum, mais il m'était difficile de
    centrer l'aimant convenablement, et la linéarité s'en ressentait. J'ai donc attendu
    d'avoir des pièces à faire, et j'ai profité du fait que j'étais sur la CNC pour usiner
    un support d'aimant.

    04Poulie.jpg05Aimant.jpg

    La linéarité est nettement meilleure. La règle tient avec des chutes de plastique
    collées entre elles par du ruban double face. Ce n'est pas très mécanique, mais ça
    permet de vérifier.

    2. Le capteur
    Fixé face à l'aimant par un morceau de plexi transparent collé au double face sur le
    chant de la base. Et la carte du capteur est collée sur cette même plaque.
    Comme on le voit, ce n'est pas vraiment en face, donc la linéarité doit en prendre
    un coup, mais c'est juste pour montrer que ça marche. L'écart entre l'aimant et le
    capteur est un peu trop grand (environ 3 ~ 4mm), donc bruit potentiel. Mais avec des
    filtres (voir plus bas), on peut éviter les résultats catastrophiques.

    3. La carte:
    J'ai utilisé une carte Texas Instruments qui date un peu déjà, peut-être 4 ou 5 ans.
    Elle a l'avantage d'avoir un jeu de connecteurs au pas de 1.27, ce qui est idéal
    pour mettre un connecteur correspondant celui du capteur. Un autre avantage, c'est
    que j'ai tous les morceaux de code cpp pour gérer le capteur, l'afficheur, etc...
    La programmation est faite à la va-vite, exactement comme je disais l'autre jour: Un timer,
    une interruption toutes les 1ms qui appelle la fonction qui lit le capteur et affiche.

    Tiens, je n'ai que 4 photos, mais l'éditeur me dit que j'en ai déjà mis 5...
    Je vais les ajouter après.

    4. Essais.
    Comme il s'agit d'un capteur absolu sur 1 tour, pas besoin de capteur de fin de course.
    Il suffit quand on allume d'être dans le premier tour de poulie (donc entre 0 et 72mm).
    Ah oui: la poulie a 24 dents au pas de 3, donc 72mm. On peut aussi évidemment ajouter
    un capteur pour remettre à 0 le nombre de tours, l'angle étant toujours valable.
    Bien que le capteur ne soit pas bien centré, je ne vois pas d'écart notable entre
    l'afficheur et la règle. Bien sûr, ceci demanderait de vraies mesures.
    Pour l'étalonnage, j'ai tourné la poulie de façon à ce que l'affichage indique 0, et
    là, j'ai collé une ligne bleue (1) sur la courroie face au 0. Ensuite, si je bouge
    vers 50, 100, 150, l'affichage a l'air d'indiquer la même chose. A l'oeil, donc je
    ne dois pas me tromper de plus d'une graduation, 0.5mm. Mais je suis sûr que c'est mieux
    que ça.

    (1) Pour un mec des Vosges, je ne pouvais pas faire moins.

    J'ai aussi vérifié que si je vais vers l'autre bout du rail (environ 280mm) et que je
    reviens, je retrouve bien la même valaur. Validé. Et si j'éteins en début de rail
    (dans les premiers 72mm) et que je rallume, j'ai vérifié aussi que la valeur de change pas.

    Filtres:
    Comme les premiers essais étaient assez bruités (distance entre l'aimant et le capteur),
    j'ai ajouté du filtrage. Un filtre de Kalman un peu particulier. Comme son intégrale
    est de 256, je gagne 4 bits en résolution. La partie prédictive permet de suivre
    le signal au plus près. On voit sur l'image ci-dessus que l'afficheur indique 11.64xxx.
    On voit que sur le 4 se superpose un 5: le chiffre des centièmes de mm n'est pas stable,
    les autres le sont. Si on a +/- 1/100 mm de résolution 2/100mm par rapport à la circonférence
    (72mm), ça fait un rapport de 36000, donc environ 15 bits, ce qui est en accord avec les
    10 bits de l'encodeur + 4 bits obtenus par filtrage.

    Voilà, il manque une vraie évaluation du bruit et de la précision, mais cet essai n'a pas
    plus de prétention que ce qu'il est: un premier jet résultant de mes pauses café. Il y
    a de bonnes raisons de penser que ça marchera quelle que soit la longueur de la courroie.

    Pascal
    Images attachées Images attachées

  24. #52
    adipie

    Re : encodeur linéaire avec arduino

    Citation Envoyé par cricri8888 Voir le message
    Le profilé est un 40/40 que j'avais récupéré, mais ce n'est pas du Bosch. Il est un peu moin bien, l'intérieur est un peu différent. Il fonctionne avec ma butée manuel. Il peux fonctionner avec une crémaillère, mais il n'y a pas la place pour y mettre le système du capteur à câble.
    Tu as la place pour mettre un capteur à câble, car le câble peut passer à l'extérieur du profilé, à l'arrière ou en dessous.

  25. #53
    cricri8888

    Re : encodeur linéaire avec arduino

    Merci pour ce prototype, les explications on l'air claire et précise, pour un novice dans ce domaine j'avoue qu'il va me falloir un peu de temps pour tout comprendre.
    Je vais creuser ces deux pistes. Le système à courroie ainsi que celui de l'encodeur sur crémaillère.
    Je vais essayer de bricoler des prototypes pour voir si j'arriverais à réaliser mon projet.

  26. #54
    Murayama

    Re : encodeur linéaire avec arduino

    Bonjour!

    Il est possible de porter le code sur une autre carte parce que je ne suis pas certain que celle-là soit
    toujours disponible, je ne la trouve plus sur Digikey. Et puis le petit afficheur n'est pas idéal
    dans ce contexte. Comme l'encodeur ne se déplace pas, l'affichage non plus. Il serait possible d'en
    mettre un avec de gros chiffres (5 cm par exemple).

    Une photo tout de même pour montrer le résultat, je n'ai pas pu la mettre hier.

    08Result.jpg

    On voit que le chiffre des 1/10 est parfaitement stable et que les 1/100 oscillent autour de 4. Bref,
    une résolution à quelques 1/100. Les autres chiffres sont absolument superflus, mais j'ai utilisé des
    routines d'affichage que j'utilise pour d'autres capteurs.
    Il est possible d'ajouter une fonction de calibration. Il y a plusieurs approches. Soit vous coincez entre
    la lame et la butée une barre de longueur connue et vous apprenez cette valeur à votre système qui
    calculera tout en fonction de cette valeur, soit vous positionnez la butée sur une certaine longueur, vous
    coupez une planche, vous la mesurez et vous entrez cette valeur. La carte calculera la différence à
    apporter. En fait, je crois que je préfèrerais cette dernière solution qui vous donne un résultat plus réel.

    Pour les façons d'entrer un chiffre, il y a plusieurs approches. J'utilise généralement une télécommande
    ordinaire et un récepteur (moins de 1 Euro). L'avantage est que cela n'occupe qu'une seule patte du
    processeur. Tous les chiffres sont là, vous avez en plus d'autres touches pour naviguer dans les menus.
    Mais il faut évidemment un petit écran graphique dans ce cas là. On peut d'ailleurs mettre un petit
    écran pour le réglage et un grand pour l'affichage.

    J'ai une scie circulaire dans mon labo pour découper du bois, des plaques de plexi et autres. Je crois
    que je vais m'en faire un pour moi. Merci pour l'dée.

    Pascal (menuisier du dimanche)

  27. #55
    cricri8888

    Re : encodeur linéaire avec arduino

    J'ai reçu le devis pour les crémaillères de mesures. Pour une application loisir d'un particulier, c'est excessivement cher. 280€ H.T. Le mètre pour une crémaillère carré. 170€ H.T. Le mètre pour une crémaillère ronde et 70 € H.T. Le pignon.
    Je vais devoir laisser tomber la crémaillère.
    Avez vous une idée de la précision d'une roue à la place du pignon qui roulerai sur un simple profilé à la place de la crémaillère. Ca doit être très aléatoire.
    La courroie et les poulies seront beaucoup plus abordable, encore faut-il trouver la carte et la programmation.
    Je vais continuer à chercher.

  28. #56
    adipie

    Re : encodeur linéaire avec arduino

    Pour pouvoir continuer à chercher une solution, il faudrait que tu indiques si tu veux rester à 0.1 mm sur 2500 et indiquer ton budget max. que tu souhaites y consacrer.

  29. #57
    Murayama

    Re : encodeur linéaire avec arduino

    Bonjour!

    Juste pour votre info. L'autre jour, je vous parlais de courroie crantée au mètre. C'est assez cher (dans les 200
    Euros, voir plus haut). Par contre, il en existe sur Aliexpress pour beaucoup moins cher que ça.
    8 dollars, donc un peu plus de 6 euros pour 10 m.
    Il y a même des kits, mais la courroie est un peu courte. Il faudrait chercher, il y a certainememnt d'autres kits.
    Pour les mots-clés de recherche: timing belt, timing pulley, etc...
    Depuis ici, il est écrit "free shipping". Je ne sais pas si c'est pareil pour l'Europe, mais à ce prix là, ça vaut le coup
    d'essayer.
    TimingBelt.pngTimingSet.png


    Si on résume: courroie + poulies (port compris) -> Dans les 20 Euros maximum.
    Encodeur + aimant + carte d'adaptation (pour souder le chip) -> Dans les 10 euros.
    Carte processeur: dans les 15 Euros (Texas Instruments Launchpad 5529).
    Écran: si vous prenez un écran LCD par exemple à 2 lignes de 16 caractères, l'affichage est assez petit, mais
    par contre c'est dans les 5 euros, et c'est plus facile à programmer que l'afficheur graphique que j'utilise
    dans la manip ci-dessus.

    Bref, nous en sommes à 50. Si vous ajoutez un rail en alu en forme de U pour monter les poulies correctement
    à chaque bout, je pense que vous allez vous en tirer pour moins de 100 Euros le tout pour une précision suffisante.

    Pascal

  30. #58
    cricri8888

    Re : encodeur linéaire avec arduino

    Merci pour ces infos,
    Je pensais trouver une solution pour un budget de 100 à 200€ maxi, c'est à peux prêt le prix que j'avais pour faire un positionement numerique sur ma raboteuse. Je pensais qu'une butée manuel avec indicateur numérique était plus simple à faire et ne coûtait pas très chère. Je me suis trompé, j'aimerais ne pas dépasser 200€ et rester à une précision de plus ou moins 2 ou 3 dixième de millimètres.

  31. #59
    Murayama

    Re : encodeur linéaire avec arduino

    Bonjour!

    vous allez vous en tirer pour moins de 100 Euros le tout


    j'aimerais ne pas dépasser 200€ et rester à une précision de plus ou moins 2 ou 3 dixième de millimètres


    Le contrat est rempli (1) ou bien j'ai loupé quelque chose?

    (1) À l'exception de la condition Arduino, mais c'est possible aussi.

    Pascal


  32. #60
    Panaderia

    Re : encodeur linéaire avec arduino

    Bonjour à tous,

    J'avoue ne pas avoir tout très bien compris. Aussi excusez moi si je vous répète. Je crois que c'est Murayama qui a un moment parle de vernier. Et c'est cette solution que je souhaite développez ici avec ma petite expérience( presque nul)

    Si je devais faire un positionnement au 1/20eme de millimètre à moindre coût, j’opterai pour un mètre a ruban à moins de 1€ le mètre (Facom) pour faire une sorte de pied a coulisse.

    J'imprimerai sur une feuille la règle de vernier sur Xcm qui serrai fixer sur le chariot tandis que le mètre a ruban serrai fixé sur le banc.

    Avec une petit camera CCD bon marché que je pointerai sur l'échelle de Vernier (fixé au chariot) par soft je chercherai a calculer le déplacement (incrémentation + calcule vernier)

    Aussi, je pense qu'il serrai facile de corriger les écart de température par soft.

    Pour 50€ et un/deux jour de développement (et beauoucp de documentation) ca devrai être jouable...

    Bonne journée a tous

Page 2 sur 3 PremièrePremière 2 DernièreDernière

Discussions similaires

  1. [Outils/Fab/Comp] opto coupleur avec encodeur linéaire et micro controleur
    Par vibram dans le forum Électronique
    Réponses: 29
    Dernier message: 14/09/2017, 18h24
  2. [Programmation] ARDUINO - Piloter en position un moteur DC avec encodeur
    Par ThomasCarlier dans le forum Électronique
    Réponses: 21
    Dernier message: 24/07/2016, 11h51
  3. Communication arduino-arduino avec module Xbee
    Par TPESI22012 dans le forum Électronique
    Réponses: 2
    Dernier message: 23/12/2013, 17h24
  4. choix et commande moteur avec encodeur + arduino
    Par nicocco033 dans le forum Électronique
    Réponses: 0
    Dernier message: 25/11/2012, 16h23
  5. un compteur décompteur avec un encodeur rotatif
    Par xarolium dans le forum Électronique
    Réponses: 9
    Dernier message: 29/12/2006, 14h15