Étape 9: Motion Control : contrôleur de moteur 100 watt DC servo pour 120 $ ou $ 30 + quelques codage.
J’ai choisi de contrôler l’iris de bulle CNC avec un moteur d’asservissement DC. Les servomoteurs DC sont des performances largement supérieures à celles des moteurs pas à pas de consommation d’énergie équivalente : plus vite, plus fort, plus précis et surtout, capable de préserver l’exactitude en dépit de tout obstacle. Un moteur d’asservissement DC est un moteur à courant continu qui a des moyens de détection de sa position, en particulier un encodeur optique en quadrature, attaché à l’arbre. Un compare contrôleur où il doit où elle devrait être et ajuste le couple du moteur si nécessaire pour l’amener vers la position souhaitée, en utilisant un algorithme appelé contrôle « Proportionnel, intégral, dérivé », ou « NRP control ». Ils sont plus complexes à mettre en place et contrôler tous les deux parce qu’il y a plusieurs connecteurs fil à faire - en général quatre fils supplémentaires (power, au sol, canal A, canal B, se connecter à l’encodeur) et parce qu’un microprocesseur dédié doit constamment surveiller et ajuster le couple du moteur, a positionner selon elle. J’ai fait cela auparavant et publiera sous pli séparé une procédure détaillée pour construire votre propre pour environ 30 $. ($20 pour un arduino ou teensy microcontrôleur 3.1, exécutez un script arduinoet 10 $ pour un module d’amplification de pont en H LMD18200 et utilisant la bibliothèque de codeurs d’open-source et bibliothèque PID.) Il y a aussi un très bon produit commercial qui simplifie à l’aide de servomoteurs DC énormément, ce qui vous permet de parler au lecteur comme vous le feriez pour un conducteur de moteur pas à pas : avec des impulsions de l’étape et la direction. J’ai choisi d’utiliser ce contrôleur, le lecteur GeckoDrive G320X. Après une installation initiale unique, le lecteur est aussi facile à utiliser que n’importe quel conducteur de moteur pas à pas.
Voici une vidéo de lui ouvrir le diaphragme de bulle à vitesse ridicule .
Accélération et étape-vitesse maximale avec la bibliothèque AccelStepper
La bibliothèque AccelStepper est une bibliothèque libre et open source pour les microcontrôleurs compatible arduino rapide calcul et calendrier des séquences de pas pour réaliser des profils d’accélération en douceur et vitesse trapézoïdale. Il est utile pour les moteurs pas à pas et servo-moteurs qui sont commandées par étapes discrètes, comme avec la Geckodrive utilisés ici. J’ai trouvé que sur un Arduino Uno cadencé à 16MHz, la cadence maximale était environ 1,2 Khz. Il s’agit d’une vitesse insuffisante pour un servomoteur qui, effectivement, comme 2048 pas par tour (cela est déterminé par la résolution du codeur optique attaché au moteur servo). Ainsi, avec l’Arduino uno, la vitesse maximale dans ce cas serait environ 30 tours/minute. Pour augmenter la vitesse des étapes délivré avec le code accelstepper, j’ai amélioré au microcontrôleur Teensy 3.1, qui se déroule à 72MHz et peut être overclocké à 96MHz. J’ai pointé la bibliothèque de AccelStepper produisant des séquences de pas chronométré en douceur jusqu'à plus de 10 Khz ou une vitesse d’environ 300 tr/min qui est plus que suffisant pour cette application (voir vidéos).