Conception de simulation Protues du moteur pas à pas contrôlé par 51 micro-ordinateurs à puce unique

I. Aperçu

1.1 Introduction au moteur pas à pas

Le moteur pas à pas (moteur pas à pas) est un moteur qui convertit les signaux électriques en mouvement mécanique et est un moteur dédié au contrôle de précision. En règle générale, les moteurs pas à pas fonctionnent de manière stable et ont une grande précision. Ils sont donc souvent utilisés dans des instruments de précision, des équipements d'automatisation, des robots et d'autres équipements nécessitant une grande précision.

Le moteur pas à pas est principalement entraîné par un aimant, et sa rotation est contrôlée par un angle, et il tourne de manière pas à pas. L'intérieur du moteur comprend un aimant en tant que partie rotative, et la partie fixe comprend une bobine et un capteur de réinitialisation. La commande de courant amène l'aimant à attirer lentement la bobine. Lorsque le champ magnétique atteint une certaine intensité, l'aimant se déplace vers la position correspondante de la bobine électromagnétique. Lorsque le courant de la bobine disparaît, l'aimant s'arrête à la position déterminée à l'étape précédente. Par conséquent, l'angle et la direction de rotation du moteur peuvent être contrôlés en contrôlant le changement rapide du courant de bobine lorsque le courant est ajouté.

Les avantages des moteurs pas à pas se reflètent principalement dans leur précision, leur stabilité, leur fiabilité et leur coût. Les moteurs pas à pas sont généralement divisés en 1,8 degrés, 0,9 degrés, 0,72 degrés, 0,36 degrés, etc. selon la distance de pas. En conséquence, les pas de rotation du moteur pas à pas peuvent être précis jusqu'à une sous-résolution, ce qui le rend utile dans les domaines nécessitant un contrôle précis, tels que la fabrication électronique, l'automatisation et l'aérospatiale.

Les moteurs pas à pas sont utilisés dans une large gamme d'applications. Il est largement utilisé dans les équipements tels que les machines d'impression, les machines-outils pour le travail du bois, les robots et les périphériques informatiques. Largement utilisé dans les équipements de bureautique, les copieurs numériques, les appareils photo numériques, les imprimantes laser, les équipements médicaux, les distributeurs automatiques, etc. Il est utilisé comme support pour les appareils numériques tels que les disques durs externes, les lecteurs de CD-ROM, de DVD-ROM et les scanners.

En général, le contrôle de fonctionnement des moteurs pas à pas est pratique et précis, et en même temps, le silence, les faibles vibrations, la faible chaleur et la faible consommation d'énergie sont tous des avantages des moteurs pas à pas. Avec le développement ultérieur des moteurs pas à pas, l'amélioration continue de la technologie des capteurs et les améliorations de conception, le niveau technique des moteurs pas à pas augmentera également en conséquence. Dans le même temps, avec la tendance au développement de l'automatisation industrielle, les moteurs pas à pas seront de plus en plus utilisés dans la vie quotidienne.

1.2 Exigences de conception

Comme le montre la figure ci-dessous, le dispositif électromécanique de manutention, position 1 --- position 8, l'intervalle entre chaque position est de 5 mm, l'équivalent d'impulsion du moteur pas à pas combiné au mécanisme de transmission mécanique est de 2,5 microns/impulsion, et le l'épaisseur du matériau lui-même est de 2 mm. La hauteur initiale entre la position initiale et le premier matériau est de 150 mm, la distance dans la direction de l'axe x est de 100 mm et la distance dans la direction de l'axe y est de 80 mm.

L'appareil est entraîné par un pilote pas à pas + un moteur pas à pas, et les matériaux en position 1-position 4 sont transportés en position 8 (empilés). Les exigences de précision de contrôle sont moyennes et il n'y a pas d'exigences particulières.

2. Conception matérielle

Cette conception utilise un micro-ordinateur à puce unique STC89C52 comme unité de contrôleur de système, utilise des voyants LED pour indiquer l'état de la manipulation d'objets et entraîne le moteur pas à pas pour effectuer les actions correspondantes via le pilote ULN2003 . L'ensemble de la partie matérielle est principalement composé du système minimum de micro-ordinateur à puce unique, de pilote de moteur pas à pas , de moteur pas à pas, de module de clavier et de module d'indicateur LED . Le schéma fonctionnel du matériel est illustré à la Figure 2-1 ci-dessous.

3. Conception de logiciels

3.1 Méthode de contrôle du moteur pas à pas

Le micro-ordinateur monopuce 51 contrôle le pilote ULN2003 via le port IO pour entraîner le moteur pas à pas afin de réaliser l'action correspondante. En modifiant la séquence de puissance du moteur pas à pas, son sens de déplacement peut être modifié. La séquence de mise sous tension lorsque le moteur pas à pas tourne vers l'avant est A-AB-B-BC-C-CD-D-DA, et la séquence de mise sous tension lorsqu'il est en rotation inverse est A-AB-B-BC- C-CD-D-DA. De plus, l'objectif de régulation de la vitesse peut être atteint en modifiant la fréquence de l'impulsion d'alimentation du moteur pas à pas.

3.2 Calcul des données nécessaires

L'équivalent d'impulsion du moteur pas à pas combiné au mécanisme de transmission mécanique est de 2,5 microns/impulsion, ce qui signifie qu'à chaque fois qu'une impulsion est reçue, le moteur pas à pas se déplace sur une distance de 2,5 microns. On sait que la distance entre chaque objet est de 5mm=5000μm, alors 5000/2.5=2000 impulsions sont nécessaires entre chaque objet. On sait que l'épaisseur du matériau lui-même est de 2 mm, la hauteur initiale de la position initiale au premier matériau est de 150 mm, la distance dans la direction de l'axe x est de 100 mm et la distance dans la direction de l'axe y est de 80 mm. Ensuite, de la position initiale à l'objet, un axe x a besoin de 100000/2,5=40000 impulsions, l'axe y a besoin de 80000/2,5=32000 impulsions, l'axe z a besoin de (150000-2000)/2,5*5=57200 impulsions. Un objet d'une hauteur de 2 mm nécessite 2000/2,5=800 impulsions.

3.3 Idées de programmation

Appuyez sur le bouton de démarrage et le bras robotisé transportera les objets aux positions 1, 2, 3 et 4 dans l'ordre vers le n° 8. Par exemple, lors du transport du n° 1, le bras robotisé se déplacera vers le haut du n° 8. 1, descendez après avoir atteint la position et allumez l'électroaimant après avoir atteint la position pour absorber les objets, montez, puis passez à la position ci-dessus n ° 8, déconnectez l'électroaimant, relâchez les objets et revenez à l'état initial, et transporter les objets suivants de la même manière.

Le signal d'impulsion du pilote pas à pas est réalisé via le cycle for. Si le bras du robot est en place est jugé par la valeur actuelle de la boucle for. Si la valeur de la boucle est ajoutée à la valeur prédéfinie ou diminuée à 0, cela signifie que le bras du robot est en place, et l'étape actuelle se termine et le l'étape suivante est effectuée.

3.3 Organigramme du logiciel système

Cette conception utilise principalement le logiciel Keil pour écrire et déboguer des programmes, et le langage du programme est écrit en langage C avec une lisibilité et une portabilité supérieures. L'organigramme du fonctionnement du système est illustré dans la figure ci-dessous.

Pour répondre aux exigences fonctionnelles ci-dessus, le schéma fonctionnel du programme logiciel du système est illustré à la Figure 4-1 ci-dessous. Tout d'abord, l'initialisation du système est effectuée, ce qui inclut la configuration de l'initialisation de l'interruption externe et l'initialisation de l'état de l'indicateur LED. Ensuite, jugez si le bouton de démarrage est enfoncé, s'il est enfoncé, entrez dans la boucle principale du programme, sinon attendez que le bouton de démarrage soit enfoncé. Dans le système de cycle de programme principal, les moteurs pas à pas à trois axes X, Y et Z effectuent les actions correspondantes afin de transporter chaque matériau. Utilisez la boucle for pour réaliser la rotation d'impulsion donnée du moteur pas à pas et modifiez sa direction de mouvement en modifiant la séquence de mise sous tension du moteur pas à pas. La séquence de mise sous tension lorsque le moteur pas à pas tourne vers l'avant est A-AB-B-BC-C-CD-D-DA, et la séquence de mise sous tension lorsqu'il est en rotation inverse est A-AB-B-BC- C-CD-D-DA. De plus, l'objectif de régulation de la vitesse peut être atteint en modifiant la fréquence de l'impulsion d'alimentation du moteur pas à pas. Chaque fois que le matériau est déplacé vers la position 8, il est nécessaire d'effectuer une action de réinitialisation, de revenir à la position initiale, puis d'effectuer la prochaine manipulation de matériau. Une fois les quatre matériaux transportés, l'exécution du programme est terminée une fois ici. L'organigramme de la conception globale du logiciel est répertorié ci-dessous, comme indiqué dans la figure ci-dessous :

4. Résultats des simulations

Appuyez sur le bouton de démarrage pour commencer à transporter le matériau n° 1, à ce moment la lumière blanche est allumée, comme indiqué dans la figure ci-dessous    

Une fois le matériau n° 1 transporté, commencez à transporter le matériau n° 2. À ce moment, le voyant vert est allumé, comme indiqué dans la figure ci-dessous.

Une fois le matériau n° 2 transporté, commencez à transporter le matériau n° 3. À ce moment, le voyant bleu est allumé, comme indiqué sur la figure ci-dessous.

Une fois le matériau n° 3 transporté, commencez à transporter le matériau n° 4. À ce moment, le voyant jaune est allumé, comme illustré à la Figure 5-5 ci-dessous.

 5. Quelques descriptions de programme

void axis_for(long axis_f)  //沿X轴正方向前进给定脉冲
{
	unsigned char i=0;
	for(i=0;i<axis_f;i++)
	{
		P0=stepper[i%8];
		delay_var(var);
	}
}
void axis_neg(long axis_n)  //沿x轴负方向前进给定脉冲
{
	 unsigned char i=0;
	 for(i=axis_n;i>0;i--)
	 {
		 P0=stepper[i%8];
		 delay_var(var);
	 }
}

Les deux sous-fonctions ci-dessus sont les programmes en cours d'exécution du moteur pas à pas de l'axe X. Le nombre d'impulsions d'entrée est un entier long, qui correspond aux impulsions requises par le pilote pas à pas de l'axe X. La boucle for correspond à la génération de une impulsion donnée. Par exemple, l'axe des x correspond à la sortie d'impulsion et doit être modifié Valeur d'index du tableau à la mise sous tension, chaque fois qu'une impulsion est générée, la valeur de l'index du tableau doit être augmentée de 1. Après l'index du tableau la valeur est ajoutée à 8, cela signifie que le moteur pas à pas complète un cercle de rotation, et la valeur d'index continue à partir de zéro, et il va et vient à tour de rôle, et l'étape des axes Y et Z La procédure de fonctionnement du moteur est similaire à celle de l'axe X.

void HandMaterials(void)
{
	//搬运第一个物料 
	led_w = 1;led_b = 0;led_g = 0;led_y = 0; //白灯亮
	MotorAccOrDec(40000,32000,57200); //从初始位置前往第一个物料位置取物料
	MotorAccOrDec(2000,6000,0); //从第一个物料位置前往第八个物料位置卸物料
	MotorAccOrDec(-42000,-38000,-57200); //从第八个物料位置回到初始位置
	
	//搬运第二个物料
	led_w = 0;led_b = 0;led_g = 1;led_y = 0;//蓝灯亮
	MotorAccOrDec(42000,32000,57200); //从初始位置前往第二个物料位置取物料
	MotorAccOrDec(0,6000,-800); //从第二个物料位置前往第八个物料位置卸物料
	MotorAccOrDec(-42000,-38000,-56400); //从第八个物料位置回到初始位置
	
	//搬运第三个物料
	led_w = 0;led_b = 1;led_g = 0;led_y = 0;//绿灯亮
	MotorAccOrDec(40000,34000,57200); //从初始位置前往第三个物料位置
	MotorAccOrDec(2000,4000,-1600); //从第二个物料位置前往第八个物料位置卸物料
	MotorAccOrDec(-42000,-38000,-55600); //从第八个物料位置回到初始位置
	
	//搬运第四个物料
	led_w = 0;led_b = 0;led_g = 0;led_y = 1;//黄灯亮
	MotorAccOrDec(42000,34000,57200); //从初始位置前往第四个物料位置
	MotorAccOrDec(0,4000,-2400); //从第四个物料位置前往第八个物料位置卸物料
	MotorAccOrDec(-42000,-38000,-54800); //从第八个物料位置回到初始位置
}

La sous-fonction ci-dessus est la procédure de déplacement des matériaux 1 à 4, et il faut 3 étapes pour déplacer un matériau vers la position 8. Prenons l'exemple de la manutention n° 1. Dans la première étape, en contrôlant les moteurs pas à pas des axes X, Y et Z, le bras mécanique est contrôlé de la position initiale à la position de matériau n° 1 pour ramasser le matériau; la deuxième étape est à la position de matériau n ° 1, continuez à contrôler les moteurs pas à pas des axes X, Y et Z de la position de matériau n ° 1 à la position de matériau n ° 8 pour décharger les matériaux; la troisième étape est pour contrôler les moteurs pas à pas des axes X, Y et Z à partir de la position du matériau n ° 8 pour revenir à la position initiale, de sorte que Continuer à déplacer le matériau suivant.

Il est à noter que, de la position initiale à la position matière pour prélever la matière, de la position matière au N°. Le nombre est différent, toujours en prenant comme exemple la première matière, MotorAccOrDec(40000,32000,57200) indique que le moteur pas à pas de l'axe X tourne de 40 000 impulsions, que le moteur pas à pas de l'axe Y tourne de 32 000 impulsions et que le moteur pas à pas de l'axe X tourne de 572 000 impulsions pour atteindre la position du matériau n° 1 et de la position d'origine au n° 1. 2, le moteur pas à pas de l'axe X tourne à 42 000 impulsions, le moteur pas à pas à axe Y tourne à 32 000 impulsions et le moteur pas à pas à axe X tourne à 572 000 impulsions.D'autres situations sont similaires.

post-scriptum

Cette conception est une simulation Protues basée sur l'objet réel. Les données d'impulsion de manipulation de matériaux sont importantes et la simulation prend beaucoup de temps. Si vous souhaitez obtenir les résultats de la simulation complètement, veuillez modifier vous-même le nombre d'impulsions correspondant. Pour les rapports de simulation, de programme et de conception, veuillez consulter le lien de disque réseau Baidu suivant : https://pan.baidu.com/s/10PVMmP65qBv9TScfgYPc1A 
Code d'extraction : 26s5 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_53402301/article/details/130737030
conseillé
Classement