FR 3058595 A1 20180511 FR 1660669 A 20161104 1 Procédé pour piloter de façon adaptative un moteur pas à pas, et dispositif correspondant Des modes de réalisation de la présente invention concernent la commande de mouvement pour les moteurs pas-à-pas, plus particulièrement le pilotage par « micropas » de moteurs pas-à-pas, situés par exemple dans un appareil électronique, comme une imprimante, une imprimante 3D, un appareil photographique numérique grand public ou une caméra de sécurité. Le pilotage par micropas (« micro-stepping » en anglais) est une technique de pilotage généralement utilisée pour obtenir un positionnement précis avec les moteurs pas-à-pas. Le pilotage par micropas permet de façon avantageuse à un moteur pas-à-pas d'atteindre des positions qui sont situées entre deux de ses pas mécaniques avec une meilleure résolution que dans le pilotage par demi-pas. Ces positions intermédiaires sont couramment appelées des micropas. Par conséquent, un mode de pilotage par micropas d'un moteur pas-à-pas est le nombre 1/N, où N est le nombre de micropas entre deux pas mécaniques du moteur pas-à-pas. En général, la valeur de N est 2n, où n est un entier supérieur à 1. Les modes de pilotage par micropas les plus courants sont 1/4, 1/8, 1/16, etc. En conséquence, un moteur pas-à-pas est capable de fonctionner dans différents modes de pilotage, parmi lesquels le mode de pilotage par pas entiers, le mode de pilotage par demi-pas et plusieurs modes de pilotage par micropas ayant différentes résolutions. On utilise couramment une unité de traitement comme un microcontrôleur pour commander ces différents modes de pilotage par pas d'un moteur pas-à-pas. Toutefois, étant donné que toutes les opérations de commande et de calcul doivent être réalisées par l'unité de traitement avant 3058595 2 chaque déplacement par micropas, et que l'unité de traitement peut avoir en même temps d'autres tâches à traiter, le pilotage par micropas conventionnel nécessite une très grande puissance de calcul de l'unité de traitement, qui est très difficile à satisfaire en permanence. La 5 situation peut encore s'aggraver quand la vitesse du moteur devient plus élevée, car l'augmentation de la vitesse du moteur implique une réduction du temps disponible pour les opérations de commande et de calcul. La vitesse des applications conventionnelles des moteurs pas-à- 10 pas nécessitant un positionnement par micropas est donc limitée par la puissance de calcul de l'unité de traitement de façon statique. En conséquence, la vitesse et la précision d'une telle application conventionnelle des moteurs pas-à-pas n'est pas optimisée en prenant en compte la puissance de calcul de l'unité de traitement en 15 temps réel. Selon un mode de réalisation, il est proposé un procédé adaptatif et un dispositif correspondant pour piloter un moteur pas-à-pas de manière dynamique afin de toujours appliquer le pilotage par micropas le plus fin possible si la puissance de calcul de l'unité de 20 traitement servant à commander le moteur pas-à-pas le permet. Selon un mode de réalisation, il est proposé un tel procédé et un tel dispositif qui limitent la vibration du moteur pas-à-pas quand on fait passer le mode de pilotage du plus grossier au plus fin, ou inversement. 25 Il est proposé aussi, selon un mode de réalisation, de fournir une option avantageuse soit pour augmenter le couple du moteur pas-à-pas, soit pour réduire sa vibration. Selon un mode de réalisation, il est proposé d'adapter automatiquement le mode de pilotage par micropas pour maximiser la 30 vitesse du moteur en fonction de la position visée. A cette fin, quand la puissance de calcul restante diminue, généralement quand la vitesse du moteur augmente, l'unité de traitement fait passer le mode de pilotage du mode de pilotage par micropas le plus fin au mode le plus grossier, et si cela ne suffit pas, au mode de pilotage par demi-pas puis 3058595 3 par pas entiers. A l'inverse, quand la puissance de calcul restante augmente, généralement quand la vitesse du moteur diminue ou quand le moteur approche d'une position visée qui demande de la précision, l'unité de traitement change le mode de pilotage progressivement. Elle 5 le fait passer du pilotage par pas entiers au pilotage par demi-pas, puis du mode de pilotage par pas le plus grossier au plus fin, de sorte que la précision requise pour atteindre la position visée est préservée. Selon un aspect, il est ainsi proposé un procédé de pilotage d'un moteur pas-à-pas. Ledit moteur est piloté selon des modes de 10 pilotage par pas qui comprennent un mode de pilotage par pas entiers, un mode de pilotage par demi-pas et des modes de pilotage par micropas. Ledit procédé comprend la commande du mode de pilotage courant du moteur par une unité de traitement. Selon une caractéristique générale de cet aspect, pendant une 15 phase d'accélération du moteur qui est dans un mode de pilotage courant autre que le mode de pilotage par pas entiers, l'unité de traitement teste, après chaque augmentation de la vitesse, si sa puissance de calcul restante est suffisante pour rester dans ledit mode de pilotage courant, et si ce n'est pas le cas, elle passe au mode de 20 pilotage à pas plus grossier le plus proche en présence d'une première condition de changement. Un tel procédé permet d'adapter avantageusement le mode de pilotage courant à la puissance de calcul restante de l'unité de traitement en temps réel. Avec l'augmentation de la vitesse du moteur, 25 le temps pour calculer les paramètres de commande entre deux pas voisins devient rapidement de plus en plus court. Le passage au mode de pilotage à pas plus grossier le plus proche en présence d'une première condition de changement peut réduire non seulement la charge de travail de l'unité de traitement mais aussi le temps pour 30 atteindre la position visée puisque la longueur du micropas est augmentée dans le mode de pilotage à pas plus grossier le plus proche. Ladite première condition de changement peut par exemple comprendre une correspondance de la position courante du moteur 3058595 4 dans ledit mode de pilotage courant avec une position définie dans ledit mode de pilotage à pas plus grossier le plus proche. On notera que la longueur du micropas dans ledit mode de pilotage courant est plus petite que celle du micropas dans le mode de 5 pilotage à pas plus grossier le plus proche. Si la position courante du moteur se situe au milieu de deux micropas voisins dudit pilotage à pas plus grossier le plus proche, ledit moteur n'est pas capable de réaliser un nouveau micropas dudit mode de pilotage à pas plus grossier le plus proche tant que ladite position courante n'a pas atteint 10 une position définie dans ledit mode de pilotage à pas plus grossier le plus proche. En d'autres termes, il lui faut réaliser au moins un nouveau pas dans ledit mode de pilotage courant. Ledit moteur comprend des phases de moteur, par exemple deux phases de moteur pour un moteur bipolaire. Dans ce cas, on 15 réalise un pilotage par micropas en appliquant une paire de valeurs sinusoïdale et cosinusoïdale discrétisées aux phases du moteur pas-à-pas et un circuit de commande électronique bien connu de l'homme de l'art et généralement connu sous le nom de pont en H est utilisé dans ledit moteur. Les courants pour les différentes phases peuvent être 20 observés dans le pont en H et ces courants varient avec les mouvements des micropas. Ladite première condition de changement peut en outre comprendre de préférence un écart de courant minimum sur les phases du moteur. 25 Ceci permet de s'assurer que chaque passage dudit mode de pilotage courant au pilotage à pas plus grossier le plus proche est réalisé avec une vibration minimale. Selon un mode de mise en oeuvre, ledit test comprend l'évaluation du temps de calcul nécessaire pour déterminer les 30 paramètres de commande à appliquer au moteur pour que le moteur atteigne la position suivante dans ledit mode de pilotage courant et la détermination du temps de passage requis par le moteur pour passer réellement à ladite position suivante en prenant en compte la vitesse courante du moteur. Ladite puissance de calcul restante est suffisante 3058595 5 pour rester dans ledit mode de pilotage courant si ledit temps de passage est supérieur ou égal audit temps de calcul plus une première marge. En l'absence de ladite première condition de changement, au 5 moins un nouveau pas peut être réalisé par le moteur dans ledit mode de pilotage courant. Ladite première marge peut être adaptée pour permettre la réalisation dudit au moins un nouveau pas dans ledit mode de pilotage courant. Cette première marge est avantageusement plus grande qu'un 10 premier paramètre égal à la longueur d'un micropas dans ledit mode de pilotage courant divisée par le produit de l'accélération et du temps de passage, et elle peut être de façon typique supérieure ou égale à la somme dudit premier paramètre et d'un temps réservé pour les besoins dynamiques des autres tâches que doit exécuter le microcontrôleur 15 (µc). En fonction de l'application, l'homme de l'art sera apte à déterminer la valeur appropriée pour cette première marge. Selon un autre mode de mise en oeuvre, au cours d'une phase de décélération du moteur qui est dans un mode de pilotage courant autre 20 que le mode de pilotage par micropas le plus fin, l'unité de traitement teste, après chaque réduction de la vitesse, si une deuxième condition de changement est remplie pour passer dans le mode de pilotage à pas plus fin le plus proche. Par exemple, ladite deuxième condition de changement peut 25 comprendre le fait de vérifier si la puissance de calcul restante de l'unité de traitement est suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche. Ceci permet avantageusement à l'unité de traitement de passer progressivement du mode de pilotage courant au mode de pilotage le 30 plus fin possible pendant la phase de décélération afin de prendre en compte la puissance de calcul restante de l'unité de traitement et la précision des mouvements de micropas. Ladite vérification peut comprendre : 3058595 6 évaluer le temps de calcul nécessaire pour déterminer les paramètres de commande à appliquer au moteur pour que le moteur atteigne la position suivante dans ledit mode de pilotage courant, déterminer le temps de passage requis par le moteur pour 5 passer réellement à ladite position suivante en prenant en compte la vitesse courante du moteur, et déterminer que ladite puissance de calcul restante est suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche si ledit temps de passage est supérieur ou égal audit temps de 10 calcul plus une deuxième marge. La deuxième marge est avantageusement supérieure à un deuxième paramètre égal à la différence entre le temps de passage courant dans ledit mode de pilotage courant et le temps de passage suivant dans ledit mode de pilotage à pas plus fin le plus proche, et 15 elle peut de façon typique être supérieure ou égale à la somme dudit deuxième paramètre et d'un temps réservé pour les besoins dynamiques des autres tâches que doit exécuter l'unité de traitement. En fonction de l'application, l'homme de l'art sera apte à déterminer la valeur appropriée pour cette deuxième marge. 20 La deuxième marge peut être différente de la première marge ou égale à celle-ci. Selon un autre mode de mise en oeuvre, si ladite puissance de calcul restante n'est pas suffisante pour permettre le passage audit mode de pilotage courant à pas plus fin le plus proche, si la différence 25 entre la position finale et la position courante du moteur est inférieure à un pas entier et si ladite position finale n'est pas accessible avec le mode de pilotage courant, la vitesse du moteur est réduite pour obtenir une puissance de calcul restante suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche. 30 Selon un autre mode de mise en oeuvre, ladite deuxième condition de changement comprend en outre un écart de courant minimal sur les phases de moteur du moteur. 3058595 7 Pour la première condition de changement, ceci permet de lisser chaque passage du mode de pilotage courant au mode de pilotage à pas plus fin le plus proche avec une vibration minimale. Dans le cas où ladite deuxième condition de changement n'est 5 pas remplie, un nouveau pas peut être réalisé par le moteur dans ledit mode de pilotage courant. Selon un autre mode de mise en oeuvre, quand le moteur marche à vitesse constante, le mode de pilotage courant est progressivement modifié jusqu'à atteindre le mode de pilotage par pas entiers, quelle 10 que soit la puissance de calcul restante. Cette façon de piloter le moteur à vitesse constante permet d'accroître le couple de sortie du moteur en faisant passer le mode de pilotage courant au mode de pilotage le plus grossier possible. Dans ce cas, la puissance de calcul restante n'est pas vérifiée puisque le 15 micropas devient de plus en plus grand quand la vitesse du moteur est constante. En conséquence, le temps pour les opérations de commande et de calcul et la puissance de calcul restante deviennent de plus en plus pertinents. Selon encore un autre mode de mise en oeuvre, quand le moteur 20 marche à vitesse constante, le mode de pilotage courant peut être progressivement modifié jusqu'à atteindre le mode de pilotage le plus fin possible. Dans ce mode, le mode de pilotage courant est changé dans le sens inverse par rapport au précédent mode pour piloter le moteur à 25 vitesse constante. L'emploi du micropas le plus fin possible est destiné à minimiser la vibration du moteur lorsqu'il fonctionne dans son mode en régimen établi (c'est-à-dire à vitesse constante). La puissance de calcul restante est vérifiée ici parce que le temps pour les opérations de commande et de calcul devient de moins en moins pertinent, 30 puisque le micropas devient aussi de plus en plus petit. Selon un autre aspect, il est proposé un dispositif pour piloter un moteur pas-à-pas. Ledit moteur est configuré pour être piloté selon des modes de pilotage par pas comprenant un mode de pilotage par pas entiers, un mode de pilotage par demi-pas et des modes de pilotage par 3058595 8 micropas. Le dispositif comprend une unité de traitement pour commander le mode de pilotage courant du moteur. Selon une caractéristique générale de cet autre aspect, pendant une phase d'accélération du moteur qui est dans un mode de pilotage 5 courant autre que le mode de pilotage par pas entiers, l'unité de traitement est configurée pour tester, après chaque augmentation de vitesse, si sa puissance de calcul restante est suffisante pour rester dans ledit mode de pilotage courant, et dans le cas contraire, pour passer au mode de pilotage à pas plus grossier le plus proche en 10 présence d'une première condition de changement. Selon un mode de réalisation, ladite première condition de changement comprend une correspondance de la position courante du moteur dans ledit mode de pilotage courant avec une position définie dans ledit mode de pilotage à pas plus grossier le plus proche. 15 Selon un mode de réalisation, ledit moteur comprend des phases de moteur, et ladite première condition de changement comprend en outre un écart de courant minimum sur les phases du moteur. Selon un autre mode de réalisation, pendant ledit test, l'unité 20 de traitement est configurée pour évaluer le temps de calcul nécessaire pour déterminer les paramètres de commande à appliquer au moteur pour que le moteur atteigne la position suivante dans ledit mode de pilotage courant, pour déterminer le temps de passage requis par le moteur pour passer réellement à ladite position suivante en prenant en 25 compte la vitesse courante du moteur, et ladite puissance de calcul restante est suffisante pour rester dans ledit mode de pilotage courant si ledit temps de passage est supérieur ou égal audit temps de calcul plus une première marge. Selon cet autre mode de réalisation, en l'absence de ladite 30 première condition de changement, l'unité de traitement est configurée pour commander le moteur pour réaliser au moins un nouveau pas dans ledit mode de pilotage courant, ladite première marge étant adaptée pour permettre la réalisation d'au moins un nouveau pas dans ledit mode de pilotage courant. 3058595 9 Selon encore un autre mode de réalisation, dans lequel au cours d'une phase de décélération du moteur qui est dans un mode de pilotage courant autre que le mode de pilotage par micropas le plus fin, l'unité de traitement est configurée pour tester, après chaque 5 réduction de la vitesse, si une deuxième condition de changement est remplie pour passer dans le mode de pilotage à pas plus fin le plus proche. Par exemple, ladite deuxième condition de changement peut comprendre le fait de vérifier si la puissance de calcul restante de 10 l'unité de traitement est suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche. Selon un mode de réalisation, pendant ladite vérification, l'unité de traitement est configurée pour évaluer le temps de calcul nécessaire pour déterminer les paramètres de commande à appliquer au 15 moteur pour que le moteur atteigne la position suivante dans ledit mode de pilotage courant, pour déterminer le temps de passage requis par le moteur pour passer réellement à ladite position suivante en prenant en compte la vitesse courante du moteur, et pour déterminer que ladite puissance de calcul restante est suffisante pour permettre le 20 passage audit mode de pilotage à pas plus fin le plus proche si ledit temps de passage est supérieur ou égal audit temps de calcul plus une deuxième marge. Selon un mode de réalisation, si ladite puissance de calcul restante n'est pas suffisante pour permettre le passage audit mode de 25 pilotage à pas plus fin le plus proche, si la différence entre la position finale et la position courante du moteur est inférieure à un pas entier et si ladite position finale n'est pas accessible avec le mode de pilotage courant, l'unité de traitement est configurée pour réduire la vitesse du moteur afin d'obtenir une puissance de calcul restante 30 suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche. Par exemple, ladite deuxième condition de changement peut comprendre en outre un écart de courant minimum sur les phases de moteur du moteur. 3058595 10 Selon un mode de réalisation, si ladite deuxième condition de changement n'est pas remplie, l'unité de traitement est configurée pour commander le moteur pour lui faire réaliser un nouveau pas dans ledit mode de pilotage courant. 5 Selon un autre mode de réalisation, quand le moteur marche à vitesse constante, l'unité de traitement est configurée pour modifier progressivement le mode de pilotage courant jusqu'à atteindre le mode de pilotage par pas entiers, quelle que soit sa puissance de calcul restante. 10 Selon encore un autre mode de réalisation, quand le moteur marche à vitesse constante, l'unité de traitement est configurée pour modifier progressivement le mode de pilotage courant jusqu'à atteindre le mode de pilotage le plus fin possible. Selon encore un autre aspect, il est proposé un système, comme 15 un autofocus pour lentille optique ou une imprimante 3D, comprenant au moins un moteur pas-à-pas et au moins un dispositif tel que défini ci-dessus. D'autres avantages et caractéristiques de l'invention apparaîtront à l'étude de la description détaillée de modes de mise en 20 oeuvre et de réalisation, ceux-ci n'étant en aucune façon limitatifs, et des dessins annexés dans lesquels : - les figures 1 à 6 représentent schématiquement des modes de mise en oeuvre et de réalisation de l'invention. Des modes de réalisation de l'invention vont maintenant être 25 décrits dans le domaine technique du pilotage par micropas pour les moteurs pas-à-pas, que l'on peut trouver par exemple dans un système SYS, comme un appareil photographique numérique grand public APN, comme représenté sur la figure 1. Ledit système SYS comprend ici deux dispositifs DEVI et 30 DEV2 qui comportent respectivement une unité de traitement PU1 et PU2, par exemple ici deux microcontrôleurs (couramment dénommés « MCU » en langue anglaise), et plusieurs moteurs pas-à-pas correspondants SM1 à SM3. Par exemple, la première unité de traitement PU1 est configurée pour piloter le premier moteur pas-à-pas 3058595 11 SM1 tandis que la deuxième unité de traitement PU2 est conçue pour piloter simultanément les deuxième et troisième moteurs pas-à-pas SM2 et SM3. Par souci de clarté et de simplicité, on se réfère à présent à la 5 figure 2 afin d'illustrer un exemple d'un dispositif DEV comprenant une unité de traitement PU et un seul moteur pas-à-pas SM piloté par l'unité de traitement PU selon l'invention. L'unité de traitement PU couplée au moteur pas-à-pas SM est configurée pour déterminer de façon adaptative un mode de pilotage 10 par pas du moteur SM parmi plusieurs modes de pilotage comprenant un mode de pilotage par pas entiers FSDM, un mode de pilotage par demi-pas HSDM et des modes de pilotage par micropas. Dans le présent exemple non limitatif, il y a trois modes de pilotage par micropas. Le plus grossier est un mode de pilotage par 15 quart de pas QSDM. Le plus fin a le nombre 1/16 et est référencé SSDM. L'autre mode de pilotage par micropas a le nombre 1/8 et est référencé ESDM. Bien entendu, l'invention n'est pas limitée à ces trois modes de pilotage par micropas. D'autres modes de pilotage par micropas sont 20 possibles. Généralement, le mode de pilotage par pas entiers FSDM est le mode de pilotage le plus grossier de tous les modes de pilotage par pas mentionnés ci-dessus, et le mode de pilotage par pas le plus fin est ici le mode de pilotage par micropas le plus fin. 25 Comme son nom l'indique, la longueur de chaque micropas dans le mode de pilotage par seizième de pas SSDM correspond à un seizième de la longueur d'un pas dans le mode de pilotage par pas entiers FSDM. Généralement, l'unité de traitement PU est configurée pour 30 adapter automatiquement le mode de pilotage par pas du moteur pas-à- pas SM pour maximiser la vitesse du moteur selon une position visée TD. A cet effet, quand la puissance de calcul restante RCP de l'unité de traitement PU diminue, généralement en raison d'une 3058595 12 augmentation de la vitesse du moteur ou d'autres tâches parallèles dans le traitement, l'unité de traitement PU fait passer le mode de pilotage du mode de pilotage par micropas le plus fin SSDM au mode le plus grossier QSDM, et si la puissance de calcul restante RCP n'est 5 toujours pas suffisante, elle le fait passer au mode à demi-pas HSDM puis au mode de pilotage par pas entiers FSDM. De manière similaire mais dans le sens inverse, quand la puissance de calcul restante RCP augmente, généralement en raison d'une diminution de la vitesse du moteur ou d'un dégagement d'autres 10 tâches dans le traitement, ou lorsque le moteur pas-à-pas SM approche d'une position visée TD qui nécessite plus de précision, l'unité de traitement fait passer progressivement le mode de pilotage par pas du mode de pilotage par pas entiers FSDM au mode de pilotage par demi-pas HSDM, puis du mode de pilotage par micropas le plus grossier 15 QSDM au mode de pilotage par micropas le plus fin SSDM. De cette façon, la précision requise pour atteindre la position visée TD est satisfaite. Quand le moteur pas-à-pas SM fonctionne dans un mode de régime établi à vitesse constante, l'unité de traitement PU fournit 20 avantageusement deux modes spéciaux comprenant un mode de couple maximisé MTM pour maximiser le couple du moteur pas-à-pas SM à la vitesse constante et un mode de vibration minimisée MVM pour minimiser les vibrations pour la vitesse constante donnée. Le moteur pas-à-pas SM a aussi plusieurs phases de moteur, par 25 exemple ici deux phases PHA et PHB, et un circuit de commande électronique appelé pont en H. En fonction des positions du moteur pas-à-pas, les différents courants produits par le pont en H correspondent aux différentes phases PHA et PHB. Avec un moteur pas-à-pas bipolaire, on obtient un pilotage par 30 micropas en appliquant une paire de sinus et cosinus discrétisés aux phases du moteur pas-à-pas : IpHA(n) = Imaxsin(nn/2N) IpHB(n) = Imaxcos(nn/2N) 3058595 13 où n varie de 0 à 4N. Il est à noter que l'unité de traitement PU limite de manière égale les vibrations pendant tous les passages entre deux modes de pilotage voisins puisque ces passages sont réalisés de préférence 5 quand l'écart de courant sur les phases du moteur est minimal. On se réfère à présent à la figure 3 pour décrire en détail le fonctionnement du dispositif DEV dans un cas typique de phase d'accélération AP dans laquelle la puissance de calcul restante RCP de l'unité de traitement PU diminue normalement. 10 Comme on peut le voir, la figure 3 est composée principalement de deux ensembles : - un premier ensemble d'étapes : la boucle d'accélération AL un deuxième ensemble d'étapes : la boucle d'adaptation en mode de pilotage par micropas pour l'accélération ALA. 15 A chaque mouvement du moteur pendant la phase d'accélération AP, l'unité de traitement PU exécute soit la boucle d'accélération AL, soit la boucle d'adaptation en mode de pilotage par micropas ALA. Au début de la phase d'accélération AP, le moteur pas-à-pas 20 démarre toujours d'une position initiale connue IP. Selon un profil de vitesse donné comprenant différents paramètres comme l'accélération, la vitesse initiale, la vitesse maximale, etc., l'unité de traitement PU augmente progressivement la vitesse du moteur. 25 En fonction de la distance qui sépare la position initiale IP de la position visée TD et du profil de vitesse, l'unité de traitement est configurée pour déterminer une position de décélération PD correspondant au début de la phase de décélération DP, qui sera décrite plus en détail plus loin en référence à la figure 4. 30 Ainsi, l'unité de traitement PU est configurée pour vérifier à l'étape AS1 si la position courante correspond à la position de décélération PD. Si c'est le cas, l'unité de traitement PU passe directement à la phase de décélération DP. Sinon, à l'étape AS2, la vitesse du moteur courante est vérifiée par l'unité de traitement PU. 3058595 14 Si la vitesse maximale du moteur MAXS est atteinte, l'unité de traitement PU passe à la phase de régime établi SP dans laquelle le moteur pas-à-pas SM fonctionne à la vitesse constante maximale MAXS du moteur. 5 Sinon, l'unité de traitement PU augmente la vitesse du moteur à l'étape AS3. A l'étape AS4, l'unité de traitement PU vérifie si le mode de pilotage courant est le mode de pilotage par pas entiers FSDM. Si c'est le cas, le moteur pas-à-pas SM réalise un nouveau pas entier (AS6) et 10 l'unité de traitement PU recommence à l'étape AS1. Si le mode de pilotage courant est autre que le mode de pilotage par pas entiers FSDM, l'unité de traitement PU est configurée pour évaluer le temps de passage ST avant que le pas suivant du moteur SM ne soit réalisé. L'unité de traitement PU détermine aussi le 15 temps de calcul CT nécessaire pour déterminer les paramètres de commande à appliquer au moteur SM pour que le moteur SM atteigne la position suivante après le pas suivant réalisé dans le mode de pilotage courant. Une première marge temporelle TM1 permettant la réalisation 20 d'au moins un nouveau pas dans ledit mode de pilotage courant est aussi prise en compte par l'unité de traitement afin de déterminer, à l'étape AS5, si ledit temps de passage ST est inférieur à la somme du temps de calcul nécessaire CT et de la première marge temporelle TM1. 25 Si c'est le cas, ce qui signifie qu'il n'y a pas assez de puissance de calcul restante RCP de l'unité de traitement PU pour rester dans le mode de pilotage courant, l'unité de traitement est configurée pour entrer dans la boucle d'adaptation en mode de pilotage par micropas ALA. 30 Dans l'autre cas, l'unité de traitement PU pilote le moteur SM pour réaliser, à l'étape AS6, un nouveau pas dans le mode de pilotage courant puis elle revient à l'étape AS1. Cette première marge TM1 est avantageusement plus grande qu'un premier paramètre égal à la longueur d'un micropas dans ledit 3058595 15 mode de pilotage courant divisée par le produit de l'accélération et du temps de passage, et elle peut de façon typique être supérieure ou égale à la somme dudit premier paramètre et d'un temps réservé pour les besoins dynamiques des autres tâches devant être exécutées par le 5 microcontrôleur PU. A l'étape AS7, la position courante du moteur pas-à-pas SM est comparée à une position la plus proche définie dans le mode de pilotage à pas plus grossier. Le but de l'étape AS7 est de vérifier si la position courante correspond à une position définie dans le mode de 10 pilotage à pas plus grossier le plus proche. Si c'est le cas, l'unité de traitement PU est configurée pour vérifier, à l'étape AS8, si l'écart des courants sur ledit pont en H HB du moteur pas-à-pas SM est minimum afin d'assurer une vibration minimale pendant un changement potentiel du mode de pilotage par 15 pas. Dans le cas où il n'y a pas de correspondance entre la position courante et une position définie dans le mode de pilotage à pas plus grossier le plus proche ou que l'écart de courant n'est pas minimum sur le pont en H du moteur SM, un nouveau pas dans le mode de 20 pilotage courant est réalisé à l'étape AS9 puis une autre vérification de la nouvelle position courante est effectuée à l'étape AS10 pour vérifier si l'unité de traitement PU doit passer à la phase de décélération DP. Si ce n'est pas le cas, l'unité de traitement PU recommence à partir de l'étape AS7. 25 Si l'écart de courant mesuré sur le pont en H des moteurs est minimal, l'unité de traitement PU est configurée pour faire passer le mode de pilotage courant au mode à pas plus grossier le plus proche à l'étape AS11. Un nouveau pas dans le mode à pas plus grossier le plus proche 30 est ensuite exécuté à l'étape AS6 avant le redémarrage à l'étape AS1. On se réfère à présent à la figure 4 pour décrire en détail le fonctionnement du dispositif DEV dans un cas typique de la phase de décélération DP dans lequel la puissance de calcul restante RCP de l'unité de traitement PU augmente normalement. 3058595 16 La phase de décélération DP commence à partir de la position de la décélération PD déterminée par l'unité de traitement PU quand le moteur pas-à-pas est toujours en marche. De manière similaire à ce qui est présenté dans la phase 5 d'accélération AP, la phase de décélération DP se compose principalement de deux ensembles : un premier ensemble d'étapes : la boucle de décélération DL un deuxième ensemble d'étapes : la boucle d'adaptation en mode de pilotage par micropas ALD. 10 Au début de la boucle de décélération DL, l'unité de traitement PU est configurée pour vérifier à l'étape DS1 si la position courante correspond à la position visée TD. Si c'est déjà le cas, l'unité de traitement PU est ensuite configurée pour arrêter immédiatement le moteur SM. 15 Sinon, l'unité de traitement PU vérifie ensuite, à l'étape DS2, si la vitesse minimum MINS du moteur pas-à-pas SM est atteinte. Si le moteur SM est en train de fonctionner à la vitesse minimum MINS, l'étape DS3 est sautée. Sinon l'unité de traitement PU ralentit le moteur SM, à l'étape DS3. 20 A l'étape DS4, le mode de pilotage courant est contrôlé pour vérifier s'il est le mode de pilotage par micropas le plus fin SSDM. Si ce n'est pas encore le cas, l'unité de traitement PU est configurée pour évaluer, à l'étape DS5, le temps de passage ST avant que le pas suivant du moteur SM ne doive être exécuté ainsi que le 25 temps de calcul CT et une deuxième marge temporelle TM2 afin de déterminer s'il y a assez de puissance de calcul restante RCP pour passer au mode de pilotage à pas plus fin le plus proche à l'étape DST après un contrôle d'écart de courant positif à l'étape DS6. Si la puissance de calcul restante RCP est déterminée comme 30 n'étant pas suffisante à l'étape DS5, l'unité de traitement PU est ensuite configurée pour vérifier, à l'étape DS8, si la position visée TD se trouve à une distance d'un pas entier par rapport à la position courante et si elle n'est pas accessible avec le mode de pilotage courant. 3058595 17 En fait, le but de l'étape DS8 est de vérifier si la distance qui sépare la position courante de la position visée TD et la longueur de pas du mode de pilotage courant imposent un passage à un mode de pilotage plus fin. 5 Si c'est le cas, l'unité de traitement PU est configurée pour diminuer, à l'étape DS9, la vitesse du moteur jusqu'à ce que la puissance de calcul restante RCP de l'unité de traitement PU soit déterminée comme étant suffisante. En d'autres termes, le temps de passage ST doit être supérieur ou égal à la somme du temps de calcul 10 CT et de la deuxième marge temporelle TM2. La deuxième marge temporelle TM2 est avantageusement plus grande qu'un deuxième paramètre égal à la différence entre le temps de passage courant dans ledit mode de pilotage courant et le temps de passage suivant dans ledit mode de pilotage à pas plus fin le plus 15 proche, et elle peut être de façon typique supérieure ou égale à la somme dudit deuxième paramètre et d'un temps réservé pour les besoins dynamiques des autres tâches devant être exécutées par l'unité de traitement PU. Si la position courante ne se trouve pas dans l'intervalle d'un 20 pas entier par rapport à la position visée TD ou si elle est toujours inaccessible avec le mode de pilotage courant, l'unité de traitement réaliser, à l'étape DS10, un nouveau pas dans le mode de pilotage courant avant de revenir à l'étape DS1. Si le contrôle de l'écart de courant à l'étape DS6 n'est pas 25 satisfait, un nouveau pas dans le mode de pilotage courant est réalisé à l'étape DS11. L'unité de traitement PU est configurée pour vérifier si la position courante correspond à la position visée TD. Si c'est le cas, on arrête le moteur SM, sinon l'unité de traitement PU est configurée 30 pour exécuter de nouveau l'étape DS6 exactement comme après l'étape DS9. A la fin, si le contrôle d'écart de courant est satisfait à l'étape DS6, l'unité de traitement PU est configurée pour faire passer le mode de pilotage courant au mode à pas plus fin le plus proche avant de 3058595 18 réaliser un nouveau pas dans ce mode à pas plus fin le plus proche à l'étape DS10 de la boucle de décélération DL. On se réfère maintenant aux figures 5 et 6 pour illustrer respectivement le fonctionnement du dispositif DEV dans un mode de 5 couple maximum MTM et un mode de vibration minimum MVM quand le moteur pas-à-pas est dans une phase de régime établi SP. Dans le cas du mode de couple maximum MTM qui est représenté sur la figure 5, la phase de régime établi SP commence toujours avec le moteur SM fonctionnant à une vitesse constante CS. 10 A l'étape MTS1, l'unité de traitement PU est configurée pour vérifier si la position courante correspond à la position de la décélération PD déterminée par l'unité de traitement PU. Si c'est le cas, un passage à la phase de décélération DP est planifié. Autrement, l'unité de traitement PU continue de vérifier, à 15 l'étape MTS2, si la mode de pilotage courant est le mode de pilotage par pas entiers. Si cette condition est satisfaite, l'unité de traitement PU réalise un nouveau pas dans le mode de pilotage courant dans une étape MTS6 avant de revenir au début MTS1 de la phase de régime étable SP. 20 Si cette condition n'est pas satisfaite, l'unité de traitement PU continue de vérifier, à l'étape MTS3, si la position courante correspond à une position définie dans le mode à pas le plus-grossier le plus proche. Si c'est le cas, l'unité de traitement PU est configurée pour 25 exécuter une vérification d'écart de courant à l'étape MTS4 avant un éventuel passage au mode à pas plus grossier le plus proche à l'étape MTS5. Si la vérification de l'étape MTS3 ou MTS4 est négative, le passage au mode à pas plus grossier le plus proche n'est pas exécuté et 30 un nouveau pas dans le mode de pilotage courant est réalisé à l'étape MTS6. De cette façon, l'unité de traitement PU est configurée pour assurer un mode de couple maximum MTM pendant la phase de régime établi SP. 3058595 19 Si l'on considère maintenant le mode de vibration minimum MVM illustré sur la figure 6, la phase de régime établi SP commence toujours avec le moteur SM fonctionnant à une vitesse constante CS comme mentionné dans le mode de couple maximum MTM. 5 De la même manière, l'étape MVS1 est exécutée pour vérifier si la position courante correspond à la position de décélération PD. Un passage à la phase de décélération DP est exécuté si cette condition est satisfaite. Sinon, l'unité de traitement PU vérifie (MVS2) si le mode de 10 pilotage courant est le mode de pilotage le plus fin, ce qui signifie ici le mode de pilotage par seizième de pas SSDM. Si ce n'est pas le cas, l'unité de traitement PU est configurée pour vérifier (MVS3) s'il y a assez de puissance de calcul restante RCP de l'unité de traitement PU (c'est-à-dire si ledit temps de passage 15 ST est supérieur ou égal à la somme dudit temps de calcul CT et de ladite deuxième marge temporelle TM2). S'il est déterminé que la puissance de calcul restante RCP n'est pas suffisante ou que le mode de pilotage courant est déjà le mode de pilotage le plus fin, un nouveau pas du moteur SM dans le mode de 20 pilotage courant est réalisé à l'étape MVS8 avant de revenir à l'étape MVS I . Dans le cas où il y a assez de puissance de calcul restante RCP, l'unité de traitement PU exécute un contrôle d'écart de courant à l'étape MVS4. 25 Si cette condition est satisfaite, un passage au mode de pilotage à pas plus fin le plus proche est exécuté par l'unité de traitement PU dans la cinquième étape de vibration minimum MVS5 avant de rejoindre la huitième étape de vibration minimum MVS8 pour réaliser un nouveau pas dans le mode de pilotage à pas plus fin le plus proche. 30 Sinon, un nouveau pas est réalisé dans le mode de pilotage courant à l'étape MVS6 avant de vérifier (MVS7) si la position courante correspond à la position de la décélération PD pour passer à la phase de décélération DP. 3058595 20 Si la position de la décélération PD n'est pas encore atteinte, un retour au contrôle d'écart de courant (MVS4) est programmé par l'unité de traitement. Ainsi, dans ce mode de vibration minimum, le moteur SM 5 fonctionne dans le mode de pilotage le plus fin possible pendant la phase de régime établi, de sorte que la vibration du moteur SM est minimisée. Dans ce mode de vibration minimum, le mode de pilotage le plus fin possible ne peut pas toujours être atteint, même si la vitesse 10 du moteur est constante puisque ledit temps de passage ST diminue avec le mode de pilotage le plus fin possible dans la phase de régime établi SP. En conséquence, la puissance de calcul restante RCP peut ne pas toujours être suffisante pour réaliser un passage au mode de pilotage à pas plus fin le plus proche. REVENDICATIONS1. Procédé de pilotage d'un moteur pas-à-pas (SM), ledit moteur (SM) étant piloté selon des modes de pilotage par pas qui comprennent un mode de pilotage par pas entiers (FSDM), un mode de pilotage par demi-pas (HSDM) et des modes de pilotage par micropas (QSDM, ESDM, SSDM), ledit procédé comprenant la commande du mode de pilotage courant du moteur (SM) par une unité de traitement (PU), caractérisé en ce que, pendant une phase d'accélération (AP) du moteur (SM) qui est dans un mode de pilotage courant autre que le mode de pilotage par pas entiers (FSDM), l'unité de traitement (PU) teste, après chaque augmentation de la vitesse, si sa puissance de calcul restante (RCP) est suffisante pour rester dans ledit mode de pilotage courant, et si ce n'est pas le cas, elle passe au mode de pilotage à pas plus grossier le plus proche en présence d'une première condition de changement. 2. Procédé selon la revendication 1, dans lequel ladite première condition de changement comprend une correspondance de la position courante du moteur dans ledit mode de pilotage courant avec une position définie dans ledit mode de pilotage à pas plus grossier le plus proche. 3. Procédé selon la revendication 2, dans lequel ledit moteur comprend des phases de moteur (PHA, PHB), et ladite première condition de changement comprend en outre un écart de courant minimum sur les phases de moteur (PHA, PHB). 4. Procédé selon l'une quelconque des revendications précédentes, dans lequel ledit test comprend l'évaluation du temps de calcul (CT) nécessaire pour déterminer les paramètres de commande à appliquer au moteur (SM) pour que le moteur (SM) atteigne la position suivante dans ledit mode de pilotage courant et la détermination du temps de passage (ST) requis par le moteur (SM) pour passer réellement à ladite position suivante en prenant en compte la vitesse courante du moteur (SM), et ladite puissance de calcul restante (RCP) est suffisante pour rester dans ledit mode de pilotage courant si ledit 3058595 22 temps de passage (ST) est supérieur ou égal audit temps de calcul (CT) plus une première marge (TM1). 5. Procédé selon la revendication 4, dans lequel la première marge (TM1) est plus grande qu'un premier paramètre égal à la 5 longueur d'un micropas dans ledit mode de pilotage courant divisée par le produit de l'accélération et dudit temps de passage. 6. Procédé selon la revendication 4 ou 5, dans lequel en l'absence de ladite première condition de changement, au moins un nouveau pas est réalisé par le moteur dans ledit mode de pilotage 10 courant, ladite première marge (TM1) étant adaptée pour permettre la réalisation dudit au moins un nouveau pas dans ledit mode de pilotage courant. 7. Procédé selon l'une quelconque des revendications précédentes, dans lequel, au cours d'une phase de décélération (DP) du 15 moteur (SM) qui est dans un mode de pilotage courant autre que le mode de pilotage par micropas le plus fin (SSDM), l'unité de traitement (PU) teste, après chaque réduction de la vitesse, si une deuxième condition de changement est remplie pour passer dans le mode de pilotage à pas plus fin le plus proche. 20 8. Procédé selon la revendication 7, dans lequel ladite deuxième condition de changement comprend le fait de vérifier si la puissance de calcul restante (RCP) de l'unité de traitement (PU) est suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche. 25 9. Procédé selon la revendication 8, dans lequel ladite vérification comprend le fait d'évaluer le temps de calcul (CT) nécessaire pour déterminer les paramètres de commande à appliquer au moteur (SM) pour que le moteur (SM) atteigne la position suivante dans ledit mode de pilotage courant, de déterminer le temps de passage 30 (ST) requis par le moteur pour passer réellement à ladite position suivante en prenant en compte la vitesse courante du moteur (SM), et de déterminer que ladite puissance de calcul restante (RCP) est suffisante pour permettre le passage audit mode de pilotage à pas plus 3058595 23 fin le plus proche si ledit temps de passage (ST) est supérieur ou égal audit temps de calcul (CT) plus une deuxième marge (TM2). 10. Procédé selon la revendication 9, dans lequel la deuxième marge (TM2) est supérieure à un deuxième paramètre égal à la 5 différence entre le temps de passage courant dans ledit mode de pilotage courant et le temps de passage suivant dans ledit mode de pilotage à pas plus fin le plus proche. 11. Procédé selon l'une quelconque des revendications 8 à 10, dans lequel, si ladite puissance de calcul restante (RCP) n'est pas 10 suffisante pour permettre le passage audit mode de pilotage courant plus fin le plus proche, si la différence entre la position finale et la position courante du moteur (SM) est inférieure à un pas entier et si ladite position finale n'est pas accessible avec le mode de pilotage courant, la vitesse du moteur est réduite pour obtenir une puissance de 15 calcul restante (RCP) suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche. 12. Procédé selon l'une quelconque des revendications 8 à 11, dans lequel ledit moteur (SM) comprend des phases de moteur (PHA, PHB), et ladite deuxième condition de changement comprend en outre 20 un écart de courant minimum sur les phases de moteur (PHA, PHB). 13. Procédé selon l'une quelconque des revendications 7 à 12, dans lequel, si ladite deuxième condition de changement n'est pas remplie, un nouveau pas est réalisé par le moteur (SM) dans ledit mode de pilotage courant. 25 14. Procédé selon l'une quelconque des revendications précédentes, dans lequel, quand le moteur (SM) marche à vitesse constante, le mode de pilotage courant est progressivement modifié jusqu'à atteindre le mode de pilotage par pas entiers, quelle que soit la puissance de calcul restante (RCP). 30 15. Procédé selon l'une quelconque des revendications 1 à 13, dans lequel, quand le moteur (SM) marche à vitesse constante, le mode de pilotage courant est progressivement modifié jusqu'à atteindre le mode de pilotage le plus fin possible. 3058595 24 16. Dispositif (DEV) pour piloter un moteur pas-à-pas, ledit moteur (SM) étant configuré pour être piloté selon des modes de pilotage par pas comprenant un mode de pilotage par pas entiers (FSDM), un mode de pilotage par demi-pas (HSDM) et des modes de 5 pilotage par micropas (QSDM, ESDM, SSDM), comprenant une unité de traitement (PU) pour commander le mode de pilotage courant du moteur (SM), caractérisé en ce que, pendant une phase d'accélération (AP) du moteur (SM) qui est dans un mode de pilotage courant autre que le mode de pilotage par pas entiers (FSDM), l'unité de traitement 10 (PU) est configurée pour tester, après chaque augmentation de vitesse, si sa puissance de calcul restante (RCP) est suffisante pour rester dans ledit mode de pilotage courant, et dans le cas contraire, pour passer au mode de pilotage à pas plus grossier le plus proche en présence d'une première condition de changement. 15 17. Dispositif (DEV) selon la revendication 16, dans lequel ladite première condition de changement comprend une correspondance de la position courante du moteur dans ledit mode de pilotage courant avec une position définie dans ledit mode de pilotage à pas plus grossier le plus proche. 20 18. Dispositif (DEV) selon la revendication 17, dans lequel ledit moteur (SM) comprend des phases de moteur (PHA, PHB), et ladite première condition de changement comprend en outre un écart de courant minimum sur les phases de moteur. 19. Dispositif (DEV) selon l'une quelconque des revendications 25 16 à 18, dans lequel, pendant ledit test, l'unité de traitement (PU) est configurée pour évaluer le temps de calcul (CT) nécessaire pour déterminer les paramètres de commande à appliquer au moteur (SM) pour que le moteur (SM) atteigne la position suivante dans ledit mode de pilotage courant, pour déterminer le temps de passage (ST) requis 30 par le moteur (SM) pour passer réellement à ladite position suivante en prenant en compte la vitesse courante du moteur (SM), et ladite puissance de calcul restante (RCP) est suffisante pour rester dans ledit mode de pilotage courant si ledit temps de passage (ST) est supérieur ou égal audit temps de calcul (CT) plus une première marge (TM1). 3058595 25 20. Dispositif (DEV) selon la revendication 19, dans lequel la première marge (TM1) est plus grande qu'un premier paramètre égal à la longueur d'un micropas dans ledit mode de pilotage courant divisée par le produit de l'accélération et dudit temps de passage. 5 21. Dispositif (DEV) selon la revendication 19 ou 20, dans lequel en l'absence de ladite première condition de changement, l'unité de traitement (PU) est configurée pour commander le moteur (SM) afin qu'il réalise au moins un nouveau pas dans ledit mode de pilotage courant, ladite première marge (TM1) étant adaptée pour 10 permettre la réalisation dudit au moins un nouveau pas dans ledit mode de pilotage courant. 22. Dispositif (DEV) selon l'une quelconque des revendications 16 à 21, dans lequel, au cours d'une phase de décélération (DP) du moteur (SM) qui est dans un mode de pilotage courant autre que le 15 mode de pilotage par micropas le plus fin, l'unité de traitement (PU) est configurée pour tester, après chaque réduction de la vitesse, si une deuxième condition de changement est remplie pour passer dans le mode de pilotage à pas plus fin le plus proche. 23. Dispositif (DEV) selon la revendication 22, dans lequel 20 ladite deuxième condition de changement comprend le fait de vérifier si la puissance de calcul restante (RCP) de l'unité de traitement (PU) est suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche. 24. Dispositif (DEV) selon la revendication 23, dans lequel, 25 pendant ladite vérification, l'unité de traitement (PU) est configurée pour évaluer le temps de calcul (CT) nécessaire pour déterminer les paramètres de commande à appliquer au moteur (SM) pour que le moteur (SM) atteigne la position suivante dans ledit mode de pilotage courant, pour déterminer le temps de passage (ST) requis par le moteur 30 (SM) pour passer réellement à ladite position suivante en prenant en compte la vitesse courante du moteur (SM), et pour déterminer que ladite puissance de calcul restante (RCP) est suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche si ledit 3058595 26 temps de passage (ST) est supérieur ou égal audit temps de calcul (CT) plus une deuxième marge (TM2). 25. Dispositif (DEV) selon la revendication 24, dans lequel la deuxième marge temporelle (TM2) est supérieure à un deuxième 5 paramètre égal à la différence entre le temps de passage courant dans ledit mode de pilotage courant et le temps de passage suivant dans ledit mode de pilotage à pas plus fin le plus proche. 26. Dispositif (DEV) selon l'une quelconque des revendications 23 à 25, dans lequel, si ladite puissance de calcul restante (RCP) n'est 10 pas suffisante pour permettre le passage audit mode de pilotage courant plus fin le plus proche, si la différence entre la position finale et la position courante du moteur est inférieure à un pas entier et si ladite position finale n'est pas accessible avec le mode de pilotage courant, l'unité de traitement (PU) est configurée pour réduire la 15 vitesse du moteur pour obtenir une puissance de calcul restante (RCP) suffisante pour permettre le passage audit mode de pilotage à pas plus fin le plus proche. 27. Dispositif (DEV) selon l'une quelconque des revendications 23 à 26, dans lequel ledit moteur (SM) comprend des phases de moteur 20 (PHA, PHB), et ladite deuxième condition de changement comprend en outre un écart de courant minimum sur les phases de moteur (PHA, PHB). 28. Dispositif (DEV) selon l'une quelconque des revendications 22 à 27, dans lequel, si ladite deuxième condition de changement n'est 25 pas remplie, l'unité de traitement (PU) est configurée pour commander le moteur (SM) pour qu'il réalise un nouveau pas dans ledit mode de pilotage courant. 29. Dispositif (DEV) selon l'une quelconque des revendications 16 à 28, dans lequel, quand le moteur (SM) marche à vitesse constante, 30 l'unité de traitement (PU) est configurée pour modifier progressivement le mode de pilotage courant jusqu'à atteindre le mode de pilotage par pas entiers, quelle que soit la puissance de calcul restante (RCP). 3058595 27 30. Dispositif (DEV) selon l'une quelconque des revendications 16 à 28, dans lequel, quand le moteur (SM) marche à vitesse constante, l'unité de traitement (PU) est configurée pour modifier progressivement le mode de pilotage courant jusqu'à atteindre le mode 5 de pilotage le plus fin possible. 31. Système (SYS), comme un autofocus pour lentille optique ou une imprimante 3D, comprenant au moins un moteur pas-à-pas (SM1, SM2, SM3) et au moins un dispositif (DEV) selon l'une quelconque des revendications 16 à 30.