1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

DRO DRO sur base Arduino

Discussion dans 'Arduino' créé par chlore, 12 Mai 2013.

  1. chlore

    chlore Compagnon

    Messages:
    2 334
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    DRO sur base Arduino
    Bonjour

    Pour un projet n'ayant que peu de rapport avec la CNC j'ai besoin de récupérer les info d'une règle digital type PAC. Pour mes premiers essais et bien que que je vais en final utiliser une carte µP beaucoup plus puissante j'ai décidé d'utiliser une carte arduino sans utiliser la programmation assembleur : je reste donc dans l'environnement de travail IDE 1.04 de l'arduino et avec le bootloader classique.
    Voici les premiers résultats à l'arrache :

    La mission semble accomplie
    La vidéo montre l'utilisation de la règle en mode "normal" (3 mesures par seconde) puis en mode "rapide" (env. 30 mesures par seconde) qui sera l'utilisation nécessaire pour mon projet.
    Le nombre en binaire correspond à la mesure brute. Les dernier bits sont très fluctuant et sortent tels que du PAC. Heureusement qu'il s'agit d'une valeur en 1/20480 de pouce qu'il faut donc multiplier par 25.4/20480 pour avoir la mesure en mm.
    La ligne "échec" représente le nombre d’échecs pour récupérer le signal sur le nombre de tentatives. Que ce soit en mode "normal" ou rapide " cela tourne aux alentour de 1% de rejets.

    Pour le fun et bien que j'en ais aucune utilité, après nettoyage du code je vais faire un DRO 3axes sur base de carte mini pro dont je publiais le code afin que tout le monde puisse s'amuser avec et personnaliser (dont le choix de l'écran et la présentation).
    Tel que, la place occupée sur la carte mega est de 5380 octets (sur 258 048)
     
    Dernière édition par un modérateur: 4 Mai 2015
  2. toff

    toff Compagnon

    Messages:
    712
    Inscrit:
    1 Novembre 2008
    Localité:
    60157 Oise
    DRO sur base Arduino
    Ah c'est top !
    N'étant pas fan de Pic, je m'était posé la question de recycler mon Arduino en DRO....
    Je suis donc très intéressé par cette super mise en pratique :prayer:
     
  3. du4

    du4 Apprenti

    Messages:
    81
    Inscrit:
    6 Mai 2012
    Localité:
    38 Grasianapolis
  4. JieMBe

    JieMBe Compagnon

    Messages:
    1 151
    Inscrit:
    17 Mai 2009
    Localité:
    Maine et Loire
    DRO sur base Arduino
    +1 je trouve cela extrêmement intéressant. J'avais eu l'idée d'en faire une aussi mais, c'est assez loin dans la liste des projet, d'abord terminer les projets en cours. Juste pour info est qu'il y beaucoup de composants entre le PAC et l'Arduino ?
    Il serait aussi intéressant de standardiser les appels de la procédure qui lit les valeurs des du PAC pour pouvoir adapter rapidement le code au différents protocoles de PAC utilisés.

    JMB
     
  5. chlore

    chlore Compagnon

    Messages:
    2 334
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    DRO sur base Arduino
    Bonjour
    Il y a exactement le même nombre de composants qu'avec les solutions à base de pic :
    - LM393/LM358 + condo+résistances pour les lignes Data/Clock,
    - pont de resistances ou LM317 + résistances ou CI spécial 1.5V+condo pour l'alim 1.5V,
    - CD4066 ou assimilé pour la simulation bouton RAZ et mise en mode "rapide" (dans la video j'ai un BS170 pour le RAZ et un simple bouton pour le mode rapide en direct sur la ligne "Data"),
    etc ... bref tout ce qui est obligatoire à cause du "1.5V" des PAC
    Les seuls "moins" qui peuvent y avoir c'est l'environnement microprosseur (quartz etc ...) puisque intégré sur la carte arduino
    L'avantage de l'arduino c'est que pour peu que l'utilisateur ait quelques notion de programmation c'est facilement modifiable pour faire l'interface d'affichage alors que les solutions PIC s'est figé à moins d'avoir un programmateur etc .. sans compter que les sources dispo pour les pics sont soit pas disponibles soit sont en assembleur ...ce qui limite un peu :wink:
    Pour les autres protocoles de PAC je laisse ça à d'autres , déjà que l'arduino ne va pas me servir dans mon projet (tout au moins comme prévu) mais était une mise en bouche pour voir si je peux utiliser un PAC dans mon projet avant d'avoir le µprocesseur définitif
     
  6. flo12

    flo12 Nouveau

    Messages:
    42
    Inscrit:
    22 Janvier 2012
    DRO sur base Arduino
    Bonjour à vous :-D ,

    Etant très intéresse par le système, je me demandais si on ne pourrait pas utiliser un encodeur rotatif à la place de la règle pour avoir une buté numérique pour pas trop cher (c'est pour un scie a ruban, je pense que la précision n'a pas besoin de dépasser le millimètre :lol: )

    Bonne soirée à vous
     
  7. LETARTARE

    LETARTARE Ouvrier

    Messages:
    350
    Inscrit:
    27 Septembre 2010
    Localité:
    Haute-Savoie
    DRO sur base Arduino
    bonjour,
    réalisation très intéressante et une vidéo très probante.
    Pourriez-vous nous indiquer comment se procurer le cordon de liaison pour récupérer les informations sur le DRO ?
    Bien cordialement
     
  8. chlore

    chlore Compagnon

    Messages:
    2 334
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    DRO sur base Arduino
    Bonjour

    Le cordon sur la vidéo avait été acheté chez RC-machines mais :
    - c'est très cher pour ce que c'est
    - ce n'est pas fiable sur une machine, déjà que c'est limite sur un bord de table, car ça a tendance à se détacher ou tout au moins à avoir de mauvais contacts

    @flo12 : oui on peut sans soucis remplacer la regle par un encodeur rotatif mais ce n'est plus le même programme
     
  9. chlore

    chlore Compagnon

    Messages:
    2 334
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    DRO sur base Arduino
    Bon j'ai un peu travaillé ces jours ci et j'ai un peu optimisé le code mais ... je n'ai qu'environ 97.4% de bonnes valeurs . Le reste est soit je loupe la mesure (env. 1%), ce qui n'est pas grave puisque je le sais, soit j'ai une mauvaise valeur (1.6%) et là c'est plus problématique. Certaines mauvaises valeurs sont très simple à filtrer d'autres plus délicates car cohérentes.

    Pour un DRO ça n'a pas une grande incidence : juste que pendant une fraction de seconde (en gros 1/3) la valeur affichée est fausse :) par contre c'est gênant pour mon projet

    Le signal envoyé par les règles semble correct à l'oscilloscope (hormis les bits de poids faibles qui dansent la java mais cela n'a aucune conséquence notable sur la valeur en mm) donc il y a quelque chose dans mon code qui n'est pas fiable (ou le code généré par le compilateur :???: )

    J'ai laissé tomber le fait de passer en mode rapide car sur 3 règles en ma possession, achetées à des moments différents, toutes ne réagissent pas de la même façon aux commandes "mode rapide" (une se met en "mode maxi" : la valeur change qui si la nouvelle valeur est supérieure à l'ancienne) alors que rien ne les distingue extérieurement

    La vidéo ci dessous montre un arduino mini pro (16MHz) avec 2 règles et un comparateur au 1/1000. Ce dernier est sur le même protocole que les règles mais la fréquence de mesure normale (je n'ai pas cherché le "mode rapide") est d'environ 10 mesures/s soit 3 fois plus rapide que les règles. Les principales différences résident dans l’intervalle entre les deux mots de 24 bits qui est un peu plus court que les règles et la fréquence de l'horloge plus rapide. De plus les derniers bits (poids faible) sont beaucoup plus stables que ceux des règles.

    L’intérêt de l'arduino mini pro c'est que l'on peut faire un DRO 3 axes plus mesure de vitesse de broche (LM 2917) sur quelques cm² et à cout très modeste

     
    Dernière édition par un modérateur: 4 Mai 2015
  10. lion10

    lion10 Compagnon

    Messages:
    3 396
    Inscrit:
    7 Mai 2010
    DRO sur base Arduino
    bonjour

    Décidément les ventes d'aficheurs de dro pour les amateurs vont baisser!

    Le protocole pour dialoguer avec vos règles, le comparateur ou un pied à coulisse à 10 euros lidl est il le même ?

    Quand vous parlez d'échec c'est une erreur de réception du genre mauvais checksum ?

    Le mode rapide ou lent est à l'initiative de votre carte qui interroge plus ou moins fréquemment le pac afin qu'il délivre sa mesure ?

    cdlt lion10
     
  11. chlore

    chlore Compagnon

    Messages:
    2 334
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    DRO sur base Arduino
    La différence entre mon comparateur et les règle est expliqué ci dessus. Pour les PAC lidl je n'en sais rien ...Les 2 pac en ma possession sont sur le même protocole que les règles mais ils ne viennent pas de chez lidl.

    Les règle ont plusieurs mode d'envois ( et d'affichage aussi d'ailleurs) des données : mode "hold" mode "normal", mode "rapide", etc . La différence entre normal et rapide est que les séries d' impulsions (que j’appelle mesures) sont soit sur une fréquence d'environ 3 fois/s ou bien de 40 fois/s.

    Ce que j’appelle échec c'est que je ne parvient pas à chopper la série d'impulsion car je n'attend pas assez longtemps (pour laisser leur chance aux autres règles) pour garder une fréquence de rafraichissement de l'affichage assez rapide.

    Voici une série d'impulsions sur mes règles : 2 groupes de 24 bits, le premiers groupe étant une valeur absolue arbitraire choisie par le PAC a la mise sous tension et le deuxième groupe correspond à la valeur affichée (et donc relative) sur le PAC.
    channel(0) correspond à l'horlode et channel(1) (en vert) aux valeurs
    Dso3.jpg
     
  12. beetle bug 64

    beetle bug 64 Apprenti

    Messages:
    217
    Inscrit:
    30 Juillet 2009
    Localité:
    64
    DRO sur base Arduino
    Bonjour, je découvre l'univers Arduino et ne connaissant pas grand choses en electronique et surtout en programmation je suis étonné par ce que peuvent faire les amateurs (éclairé) à la maison. J'ai donc parcouru en entier le super site : http://www.siteduzero.com/sciences/tutoriels/arduino-pour-bien-commencer-en-electronique-et-en-programmation pour mieux comprendre ce monde qui me fascine.
    Ma question est donc, pourrait-on avoir un aperçu du cœur du programme pour pouvoir mesurer la complexité de celui-ci? Comment nomme -t-on l'entrée (input) sur la carte? Vous l'avez branché sur la sortie PWM? Est-ce le CI qui permet de séparer la lecture des 3 axes ou suis-je à côté de la plaque :oops:
    Je suis désolé de poser des questions aussi basique sur votre post et si vous avez un lien qui me permettrais d'apprendre plus précisement Arduino je vous remercie d'avance.
     
    Dernière édition par un modérateur: 16 Avril 2015
  13. lion10

    lion10 Compagnon

    Messages:
    3 396
    Inscrit:
    7 Mai 2010
    DRO sur base Arduino
    bonsoir

    ok c'est plus clair. Le chronogramme provient d'un analyseur logique inclu dans le debuuger arduino ?

    C'est pas mal.

    cdlt lion10
     
  14. amurianum

    amurianum Compagnon

    Messages:
    956
    Inscrit:
    21 Janvier 2013
    DRO sur base Arduino
    non il s'agit d'un autre programme, peut être un petit analyseur logique comme on en trouve aujourd'hui sur ebay

    chlore, tu dis que le channel 1 correspond aux valeurs, mais lesquelles :wink:
     
  15. chlore

    chlore Compagnon

    Messages:
    2 334
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    DRO sur base Arduino
    Bonjour

    Le chronogramme provient de l'analyseur logique 16 voies 66MHz intégré à mon oscilloscope.
    Pour le canal 1 je ne vois pas trop ce qu'il faut rajouter à ce qui a été écrit plus haut à part peut être qu'il faut multiplier par 25.4 et diviser par 20480 la valeur (dernier groupe correspondant au déplacement du PAC après remise à zéro donc valeur relative) pour avoir la mesure en 1/100mm pour les règles ou *25.4/204800 pour avoir la valeur au 1/1000mm pour le comparateur.

    Je publierais le code quand j'estimerais que je suis arrivé à fiabiliser le bidule ou bien que j'en aurais marre et qu'en fait je continuerais sur le µP qui correspond à mon projet
    Le code pour la lecture d'une règle (donc hormis le code pour l'affichage etc ...) fait une 30 lignes incluant les déclarations de variables spécifiques à cette lecture.
    Pour apprendre l'arduino il suffit de taper arduino dans google (ou autre) pour trouver de quoi apprendre et en français qui plus est.
    Oui le montage tel que représenté sur la dernière vidéo permet la lecture de 3 axes (regles) et est malheureusement nécessaire pour remettre les signaux en 1.5V issus des règles à un niveau (+5V) compréhensible par l'arduino.

    L'utilisation une arduino mini pro (équivalent chinois à moins de 5€) + afficheur comme le mien (grande taille = double d'un "normal") + quelques composant revient à moins de 30€ hors circuit imprimé, ou à moins de 20 € avec un afficheur 4*20 "normal" (plus petit) ou bien à moins de 10 € si on se contente d'envoyer les mesures sur un PC.
    L'avantage de la solution arduino sur les les solutions à PIC (ou autres) c'est que le code sera libre et donc laissera la possibilité à l'utilisateur de modifier facilement le programme pour correspondre à ses besoins spécifiques surtout en terme d'affichage (sur afficheur LCD, écran tactile, PC, ...)
     
Chargement...

Partager cette page