Bonjour,
ca fait un momment que je n ai pas lu le post,je vois que l on parle de moi.
pour répondre , oui a chaque pulse sur codeur de broche j applique l algorithme de Bresenham pour savoir si on
envoi un pluse step au pap.
on ne peux envoyé au maximum q un step par pulse.
pour les commentaires le prog est toujours en phase de conception( manque de temps) pour info le prog est de moi et l idée d utiliser Bresenham aussi.
l avancement de mon projet je suis en train ecrire les menu ,intégration d un deuxième codeur pour verfier le pap.
Ok, merci de ton retour.
L'inconvénient de faire le calcul à chaque pulse, c'est que la broche doit tourner lentement ou alors il faut un gros micro et aller vite. J'aimerais utiliser un CPU à 10 MIPS.
Je pense que c'est optimisable en réalisant les calculs à l'avance et en stockant les résultats dans un tableau ou même direct dans le code. Sur un tour, les avances sont standard et on peut coder en dur les fractions correspondantes.
De mon côté, je compte utilise un PIC 18F4431 qui possède une unité ''Feedback motion'' capable de traiter l'encodeur en hardware mais aussi de générer une interruption quand l'encodeur atteind une valeur pre-réglé, du coup, je compte utiliser cette fonction pour ne déclencher une IT quand il faut envoyer un pulse et en rechargeant le comparateur à la prochaine valeur à chaque IT.
Pour le pulse du stepper, la je pense utiliser une autre fonction hardware, le module PWM en mode One Shot, pour qu'il me génère un step d'une durée de 10us tout seul sans IT logiciel. En gros, dans l'IT pulse, je déclenche le step qui se terminera tout seul en hardware.
Le but de tout ça est de traiter une broche à 3000rpm et des avances jusqu'à 1mm à cette vitesse. Pour les avances plus grandes, généralement on tourne plus doucement.
Petit récapitulatif:
Vis mère au pas de 2mm avec stepper en direct piloté en 1/2 pas, ça donne 200step/mm, soit une résolution de 0,005mm. Je pense que c'est suffisant.
Encodeur de 1000pulse/tour, à mon avis largement suffisant, on pourra toujours faire de 2x et 4x à vitesse faible.
Avec les astuces soft au dessus, j'espère pouvoir traiter correctement la fonction avec le petit PIC à 10MIPS. Il y aura un afficheur LCD 4x20 et un encodeur de selection avec poussoir intégré. Aucun calcul flottant en live, juste des comparaisons et des lectures de tableau par pointeur pour charger le comparateur de pulse. Pour générer le step, juste une écriture de registre, le reste se fait en matériel.
Reste à gérer les accélérations mais le module motion feedback mesure la vitesse tout seul, faudra quand même faire les calculs.
Il me reste à coder les fonctions de base et les simuler pour voir combien de cycle ça prend. Surtout que partir en IT et revenir prend déjà plusieurs cycles.
Si ca passe, je me route un PCB et je me lance, ça fait longtemps que j'ai ça en projet.
Si ça passe pas, je passe sur un FPGA pour le temps réel et un PIC pour l'IHM.