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

interpolation

Discussion dans 'Electronique spécifique CNC' créé par arnaud2, 7 Mars 2008.

  1. arnaud2

    arnaud2 Ouvrier

    Messages:
    372
    Inscrit:
    15 Décembre 2006
    Localité:
    moselle 57
    interpolation
    salut tout le monde
    j'aimerai savoir comment faire une interpolation linéaire avec un pic
    quels types de calcul sont a faire (sans nombre a virgule)
    mon but :
    enregistrer le gcode sur une carte mmc
    lire le fichier avec le microcontroleur
    faire l'interpolation et commander les moteurs pas a pas
    j'ai pas encore defini le type de microcontroleur que je vais utiliser mais ca sera surement un pic 18f
    merci
     
  2. coredump

    coredump Compagnon

    Messages:
    3 405
    Inscrit:
    8 Janvier 2007
    Localité:
    Côte d'azur
    interpolation
    Tu veux absolument utiliser un PIC?

    Pour un truc aussi complexe je te conseillerais plutot un ARM type SAM7:

    http://www.sparkfun.com/commerce/produc ... cts_id=774

    La carte a déja un connecteur SD/MMC, un port USB et surtout un debuggeur pas cher et ca tourne moultement plus vite (et ca se programe en C)...

    Pour l'interpolation lineaire, ce ne sont que des maths, il faut juste passer en virgule fixe au lieu de virgule flottante, mais c'est un sujet un peu vaste pour un post.
     
  3. arnaud2

    arnaud2 Ouvrier

    Messages:
    372
    Inscrit:
    15 Décembre 2006
    Localité:
    moselle 57
    interpolation
    les arm sont juste en boitier tqfp ou tsop
    j'aimerais bien utiliser que des composant dip a la limite un dspic en boitier dip40
    pour ce qui est de la fréquence de sortie 4000hz ca suffirait je pense qu'avec une puce a 30mips ca doit etre fesable
     
  4. coredump

    coredump Compagnon

    Messages:
    3 405
    Inscrit:
    8 Janvier 2007
    Localité:
    Côte d'azur
    interpolation
    Il existe des headers boards qui sont pratique pour enficher dans un montage deja fait, les prix sont certes plus élevés (35$ pour une 64kB), mais au final ca peut faire gagner beaucoup de temps.

    Pour avoir patiqué pendant pas mal de temps la prog sur ARM, c'est un autre monde par rapport aux microcontrolleurs type PIC et AVR.
     
  5. MaX-MoD

    MaX-MoD Compagnon

    Messages:
    2 306
    Inscrit:
    17 Avril 2007
    Localité:
    Annecy (74)
    interpolation
    J'ai soudé des 33Fjesaispluscombien en TQFP64 0.5mm d'écartement sur des adaptateurs trouvés sur eBay, ça se fait sans trop de pb. Il faut juste une bonne soudure avec un bon flux, la taille n'est pas critique. On soude pratiquement toutes les pattes ensembles puis on vient enlever le surplus avec le fer. C'est très rapide et ça fonctionne à 100%

    Pour la comparaison ARM/PIC il faut prendre en compte le fait que les dsPIC aient un coeur DSP => une opération virgule fixe 16b = 1 cycle d'horloge (3 pour la division)

    Sur les architectures qui n'ont pas de DSP ben il faut soit passer en entier ou travailler en centaines de MHz.

    Je connais pas trop les ARM, mais si ils ont aussi un DSP, à 60MHz ça peut le faire 8-)
    quoique les 33F sont à 40MIPS :roll:
    Histoire de goûts tout ça^^

    PS: qu'en est-il des libs et exemples de codes sur ARM? Microchip fournit des piles USB, Ethernet, carte SD, graphisme etc. etc. gratos, c'est plutôt bien ça :-D

    Ah, et y'a un autre sujet du type commencé par Otatiaro :wink:
    interpcnc-en-mieux-ca-vous-dirait-t1523.html


    Max
     
  6. Otatiaro

    Otatiaro Ouvrier

    Messages:
    466
    Inscrit:
    6 Mai 2007
    Localité:
    Metz (57)
  7. coredump

    coredump Compagnon

    Messages:
    3 405
    Inscrit:
    8 Janvier 2007
    Localité:
    Côte d'azur
    interpolation
    Je suis d'accord que le coeur dsp est un avantage en terme de vitesse de traitement si on ne fait que ca, mais la je parle surtout de vitesse de developement.
    L'architecture ARM est tres orthogonale, a l'opposé des pic (Edit: on dirait que c'est plus le cas des PIC24 qui sont mieux). C'est vraiment un plus quand on programme en C. En plus c'est quand meme du 32bit natif, avec de la ram et de la flash en quantité. Certe on ne l'utilisera pas quand on a besoin d'une tache simple.

    Dans l'exemple que cite arnaud2, il faut lire un fichier gcode sur une MMC/SD (donc format FAT), parser le fichier pour creer l'interpolation, et enfin ensuite commander les moteurs pas a pas. Je suis meme pas sur qu'un ARM suffise pour ca (ou alors un gros).

    Edit: n'oublions pas que les outils ARM/AVR sont pratiquement tous gratuit (GCC, OpenOCD, JTAG) et multiplatforme (vu que je suis sous linux c'est primordial).
     
  8. MaX-MoD

    MaX-MoD Compagnon

    Messages:
    2 306
    Inscrit:
    17 Avril 2007
    Localité:
    Annecy (74)
    interpolation
    okay, je regarderais ça un de ces 4, quant j'aurais le temps (= peut être l'été 2009? :lol: )

    C'est vrai que c'est chiant d'être obligé de passer par Wine pour utiliser MPLAB :roll:
    Du coup je garde une partition dows rien que pour ça pratiquement :x

    A+
    max
     
  9. arnaud2

    arnaud2 Ouvrier

    Messages:
    372
    Inscrit:
    15 Décembre 2006
    Localité:
    moselle 57
    interpolation
    existe t'il des cours online sur la programmation des arm en francais?
    quand j'etai encore a l'ecole on avais un vieux tour cnc (ceux ou on enregistrait le gcode sur des mini casettes)
    ben le microcontroleur c'etait un 8052AH qui gerait tout
    je pense quand meme qu'un dspic est capable de mieux
     
  10. armaris

    armaris Compagnon

    Messages:
    750
    Inscrit:
    16 Janvier 2008
    interpolation
    Pour l'ARM, je plussois, j'ai tendance à délaisser le PIC pour les nouveaux projets.

    Tu devrais pouvoir faire quand même de l'interpolation (linéaire, circulaire et hélicoïdale) avec un PIC, il faut travailler en entier, seule la fréquence max sera limitée.

    Je te mets un lien vers quelques algorithmes élémentaires, attention le fichier fait 27Mo.
    Ils sont tirés du livre "Synthèse d'images : algorithmes élémentaires" de G. Hégron chez Dunod informatique, il date de 1985 mais les algos n'ont pas changés.
     
  11. Otatiaro

    Otatiaro Ouvrier

    Messages:
    466
    Inscrit:
    6 Mai 2007
    Localité:
    Metz (57)
    interpolation
    Salut,

    Depuis le temps que j'y pense, j'ai retrouvé l'algo auquel je pensais quand je voulais me faire une carte d'interpolation ...

    Ca s'appel l'algorithme de Bresenham, c'est tout con, mais didiou que c'est puissant (en gros, on ne travaille qu'en entier, pas de division, et ca, c'est bon :wink: ).

    ++

    PS : Au cas ou ... http://fr.wikipedia.org/wiki/Algorithme ... _Bresenham

    [EDIT] En plus ca fait aussi de l'interpolation circulaire, elliptique, sinusoidale, etc ... y'a bon non ?
     
  12. MaX-MoD

    MaX-MoD Compagnon

    Messages:
    2 306
    Inscrit:
    17 Avril 2007
    Localité:
    Annecy (74)
    interpolation
    Yup, je connais, j'avais commencé (ébauché^^) avec Nicolas Morel un interpolateur (moi à base de dsPIC, lui à base d'ARM).
    je ne me rappelle plus vraiment de la vitesse mais le dsPIC était plus rapide que l'ARM à 20% de fréquence pross en plus.
    J'en avais retenu que c'était utilisable, mais je n'avais recueilli aucune donnée sur le traitement du fichier G, génération de pulses, etc.
     
  13. armaris

    armaris Compagnon

    Messages:
    750
    Inscrit:
    16 Janvier 2008
  14. arnaud2

    arnaud2 Ouvrier

    Messages:
    372
    Inscrit:
    15 Décembre 2006
    Localité:
    moselle 57
    interpolation
    voila ca avance

    l'algorithme d'interpolation linéaire est terminé et testé
    pour le moment je ne vais pas mettre d'interpolation circulaire carla plupart des logiciels de fao peuvent converti les arc de cercle en vecteurs

    la micro qui sera utilisé est un pic18f4685 car il a presque 100ko de memeoire programme et 4ko de ram

    apres test la frquence maxi de sortie des pas est de 50khz tout en gerant les accelerations et la vitesse de depart avec la puce a 10mips (40mhz)

    en final il y aura plusieurs mode de fonctionnement

    -autonome : le fichier gcode sera dans une carte mmc (fat16) et
    dera lu et interpolé

    -rs232 : chaque ligne de code est envoyé par port serie puis executé
    a la fin du mouvement le pic renvoie l'info comme quoi tout
    est fait et que le pc peut envoyé la ligne suivante

    -manuel : deplacement de chaque axe en continu ou d'une mesure
    genre 0.01 0.1 1 ou 10mm

    pour visualiser tout un ecran lcd 128*64 piloté par spi

    peut etre par la suite (soyons fou) un ecran 240 *128 avec affichage graphique des trajectoires des axes

    pour le moment la partie interpolation est faite

    voici le code (en basic) Voir la pièce jointe code.zip
     
  15. MaX-MoD

    MaX-MoD Compagnon

    Messages:
    2 306
    Inscrit:
    17 Avril 2007
    Localité:
    Annecy (74)
    interpolation
    Tiens, justemen ce WE je m'ennuyais et j'avais commencé à intégrer Bresenham sur mon PIC32 (80MHz :P )
    Je vais regarder ton code, et voir si on peut facilement le porter pour PIC32.

    Si tu m'y autorise, bien sûr :wink:

    Avec la puissance des PIC32, j'avais rapidement évalué un max à 200KHz-1MHz, USB, RS232, CAN ou ethernet

    Par contre, il faut un buffer de vecteurs, sinon la vitesse d'avance risque d'être très faible dans les courbes...
     
Chargement...

Partager cette page