Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
fr:examples:motor:servo [2010/03/03 09:33] – créée sdeniaudfr:examples:motor:servo [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Servomoteur ====== ====== Servomoteur ======
  
-//Connaissances nécessaires: [HW] [[en:hardware:homelab:motor]], [HW] [[en:hardware:homelab:sensor]], [AVR] [[en:avr:io]], [LIB] [[en:software:homelab:library:module:motor]], [LIB] [[en:software:homelab:library:adc]]//+//Necessary knowledge: [HW] [[en:hardware:homelab:motor]], [HW] [[en:hardware:homelab:sensor]], [AVR] [[en:avr:io]], [LIB] [[en:software:homelab:library:module:motor]], [LIB] [[en:software:homelab:library:adc]]// 
 + 
 +//Connaissances nécessaires: [HW] [[fr:hardware:homelab:motor]], [HW] [[fr:hardware:homelab:sensor]], [AVR] [[fr:avr:io]], [LIB] [[fr:software:homelab:library:module:motor]], [LIB] [[fr:software:homelab:library:adc]]//
  
 ===== Théorie ===== ===== Théorie =====
Line 9: Line 11:
 [{{  :examples:motor:servo:motor_servo_signal_position.png?220|La relation entre la largeur du signal et la position du servomoteur PWM.}}] [{{  :examples:motor:servo:motor_servo_signal_position.png?220|La relation entre la largeur du signal et la position du servomoteur PWM.}}]
  
-Les Servomoteurs sont souvent utilisés dans les modèles radio-contrôlé (RC), et sont très utiles dans beaucoup de cas d’application de petite robotique parce qu’ils sont très compacts et très peu chers. Un servomoteur RC est composé d’un moteur DC, d’une boite de vitesse, d’un capteur de retour de position (habituellement un potentiomètre) ainsi que des électroniques de commande. Le servomoteur RC peut être contrôlé par un signal externe à large impulsion de modulation (PWM). Si un signal rencontre le servomoteur //timingrequirements// RC, cela “décrit” habituellement une position (cible) en entrée pour l’électronique de commande du servomoteur. Les électroniques du servomoteur comparent la position de l’arbre avec la position en entrée, en essayant de trouver la position de l’arbre qui correspond. Le signal de contrôle de la position est un signal sinusoïdal (d’onde) au carré continu, tel que dans la figure.+Les Servomoteurs sont souvent utilisés dans les modèles radio-contrôlés (RC), et sont très utiles dans beaucoup de cas d’application de petite robotique parce qu’ils sont très compacts et très peu chers. Un servomoteur RC est composé d’un moteur DC, d’une boite de vitesse, d’un capteur de retour de position (habituellement un potentiomètre) ainsi que des électroniques de commande. Le servomoteur RC peut être contrôlé par un signal externe à large impulsion de modulation (PWM). Si un signal rencontre le servomoteur //timingrequirements// RC, cela défini habituellement une position cible d'entrée pour l’électronique de commande du servomoteur. Les électroniques du servomoteur comparent la position de l’arbre avec la position en entrée, en essayant de trouver la position de l’arbre qui correspond. Le signal de contrôle de la position est un signal sinusoïdal //(d’onde)// au carré continu, tel que dans la figure.
 Les servomoteurs RC (//radio-contrôlés//) sont des actionneurs très courants en robotique et en construction de modèles. Les servomoteurs RC sont composés d’un petit moteur DC, d’un engrenage de réduction et d’un matériel de contrôle logique. Habituellement le rotor du servomoteur bouge jusqu’à une certaine position en essayant de conserver cette position. La position du rotor dépend du signal de contrôle reçu par le servomoteur. En fonction du type de servomoteur, l’angle de rotation maximum du moteur peut changer. Les Servomoteurs qui tournent de manière constante sont rares. Dans ce cas le signal de contrôle ne détermine pas l’angle de révolution mais la vitesse de rotation. Les Servomoteurs “hack” sont bien plus courants. Cela rend la position qui détermine le servomoteur vers une rotation constante. //This makes the position determining servo motor to constantly revolving servo// Dans ce cas le potentiomètre de retour de position est remplacé par deux résistances fixes et le résistor mécanique qui empêche toutes les rotations est retiré de la boite de vitesse. Une caractéristique très importante du servomoteur est son ratio poids-puissance. Les servomoteurs RC (//radio-contrôlés//) sont des actionneurs très courants en robotique et en construction de modèles. Les servomoteurs RC sont composés d’un petit moteur DC, d’un engrenage de réduction et d’un matériel de contrôle logique. Habituellement le rotor du servomoteur bouge jusqu’à une certaine position en essayant de conserver cette position. La position du rotor dépend du signal de contrôle reçu par le servomoteur. En fonction du type de servomoteur, l’angle de rotation maximum du moteur peut changer. Les Servomoteurs qui tournent de manière constante sont rares. Dans ce cas le signal de contrôle ne détermine pas l’angle de révolution mais la vitesse de rotation. Les Servomoteurs “hack” sont bien plus courants. Cela rend la position qui détermine le servomoteur vers une rotation constante. //This makes the position determining servo motor to constantly revolving servo// Dans ce cas le potentiomètre de retour de position est remplacé par deux résistances fixes et le résistor mécanique qui empêche toutes les rotations est retiré de la boite de vitesse. Une caractéristique très importante du servomoteur est son ratio poids-puissance.
  
-Le signal de contrôle du servomoteur est une impulsion spécifique avec un signal modulé (PWM), qui avec l’impulsion détermine la position du rotor. La période du signal es de 20 ms (50 Hz) et la largeur du pic est de 1 ms – 2 ms. 1 ms marque l’une des positions extrêmes et 2 ms marque la seconde. 1,5 ms marque la position centrale du rotor du servomoteur.+Le signal de contrôle du servomoteur est une impulsion spécifique avec un signal modulé (PWM), qui avec l’impulsion détermine la position du rotor. La période du signal est de 20 ms (50 Hz) et la largeur du pic est de 1 ms – 2 ms. 1 ms marque l’une des positions extrêmes et 2 ms marque la seconde. 1,5 ms marque la position centrale du rotor du servomoteur.
  
-Le servomoteur RC traditionnel est aussi connu sous le nom de servomoteur analogique. Parce que dans les dix dernières années beaucoup de servomoteurs numériques sont devenus courants. La différence entre les deux est que dans les servomoteurs analogiques, le moteur est contrôlé par le même signal PWM d’entrée de 50 Hz. Alors que dans les servomoteurs numériques, le moteur est contrôlé par un microcontrôleur avec une fréquence plus grande. Le signal d’entrée est le même pour les servomoteurs digitaux mais une fréquence de modulation du moteur plus grande permet de déterminer la position plus rapidement et avec plus de précision.+Le servomoteur RC traditionnel est aussi connu sous le nom de servomoteur analogique. Parce que dans les dix dernières années beaucoup de servomoteurs numériques sont devenus courants. La différence entre les deux est que dans les servomoteurs analogiques, le moteur est contrôlé par le même signal PWM d’entrée de 50 Hz. Alors que dans les servomoteurs numériques, le moteur est contrôlé par un micro-contrôleur avec une fréquence plus grande. Le signal d’entrée est le même pour les servomoteurs digitaux mais une fréquence de modulation du moteur plus grande permet de déterminer la position plus rapidement et avec plus de précision.
  
 ~~CL~~ ~~CL~~
  
-===== Entrainement =====+===== Pratique =====
  
-Sur la carte des modules des moteurs du //Home Lab// il y a deux plugs pour connecter le servomoteur RC. L’extrémité PWM du plugs est connectée aux barrettes PB5 et PB6 du microcontrôleur, avec les différentes fonctions en tant que sortie pour comparer les unités A et B du timer 1. Le timer 1 est capable de produire le signal PWM et permet donc de contrôler très simplement dans le programme. La seule difficulté est d’initialiser le timer.+Sur la carte des modules des moteurs du //Home Lab// il y a deux plugs pour connecter le servomoteur RC. L’extrémité PWM du plugs est connectée aux broches PB5 et PB6 du micro-contrôleur, avec les différentes fonctions en tant que sortie pour comparer les unités A et B du timer 1. Le timer 1 est capable de produire le signal PWM et permet donc de contrôler très simplement dans le programme. La seule difficulté est d’initialiser le timer.
  
-Le timer 1 peut être initialisé en mode de production du PWM, où la valeur maximum du timer est déterminée avec le registre ICR. //With the maximum value changed in the program and in the pace divider (taktijagur?) of the timer, the precise PWM frequency for controlling the servo motor con be determined// En comparant les registre du timer, on peut définir les longueurs des deux demi périodes les plus hautes du signal PWM. Le timer a une unité spéciale de comparaison qui surveille la valeur du compteur et s’il reste égal à la valeur du registre de comparaison alors il change la valeur de sortie des unités de sortie. Le code suivant est le programme de la librairie du //Home Lab// qui permet le contrôle du servomoteur. L’objectif est d’utiliser les paramètres déterminés par des fonctions macro pour le timer. Par exemple la période utilise la constante //F_CPU//, qui marque le rythme de l’horloge du microcontrôleur. En utilisant ces macros, il n’est pas nécessaire de calculer les paramètres du timer pour différents rythmes d’horloge et le compilateur convertit de toute façon les opérations en constantes, donc la mémoire du programme n’augmente pas et ne demande pas plus de temps.+Le timer 1 peut être initialisé en mode de production du PWM, où la valeur maximum du timer est déterminée avec le registre ICR. //With the maximum value changed in the program and in the pace divider (taktijagur?) of the timer, the precise PWM frequency for controlling the servo motor con be determined// En comparant les registre du timer, on peut définir les longueurs des deux demi périodes les plus hautes du signal PWM. Le timer a une unité spéciale de comparaison qui surveille la valeur du compteur et s’il reste égal à la valeur du registre de comparaison alors il change la valeur de sortie des unités de sortie. Le code suivant est le programme de la librairie du //Home Lab// qui permet le contrôle du servomoteur. L’objectif est d’utiliser les paramètres déterminés par des fonctions macro pour le timer. Par exemple la période utilise la constante ''F_CPU'', qui marque le rythme de l’horloge du micro-contrôleur. En utilisant ces macros, il n’est pas nécessaire de calculer les paramètres du timer pour différents rythmes d’horloge et le compilateur convertit de toute façon les opérations en constantes, donc la mémoire du programme n’augmente pas et ne demande pas plus de temps.
  
  
Line 97: Line 99:
 </code> </code>
  
-Le programme en exemple utilise des fonctions décrites dans la librairie du //Home Lab//. Au début du programme le premier signal PWM du servomoteur est initialisé avec la fonction //servomotor_init//. La valeur de la position du servomoteur est récupérée par la voie numéro 3 du convertisseur analogique-numérique, à laquelle est connectée un potentiomètre de la carte des capteurs. Pour récupérer la plage nécessaire de -100 % - +100 % pour contrôler le servomoteur, la moitié de la valeur maximum (512) est soustraite à valeur de l’ADC et le résultat est divisé par 5. Le résultat est de +/- 102, mais certaines petites inexactitudes ne comptent pas parce que le servomoteur peut avoir une relation différente entre le signal PWM et l’angle de rotation. Dans les applications, nous devons finalement déterminer la largeur de la demi-période du signal PWM en utilisant la méthode du //test-and-error//. Aussi le contrôle à distance du modèle RC a des occasions correspondantes à la configuration précise. //Also the remote controls of RC models have corresponding opportunities for precise setup// Lorsque le programme démarre la position du rotor du servomoteur se cale sur la position du potentiomètre.+Le programme en exemple utilise des fonctions décrites dans la librairie du //Home Lab//. Au début du programme le premier signal PWM du servomoteur est initialisé avec la fonction ''servomotor_init''. La valeur de la position du servomoteur est récupérée par la voie numéro 3 du convertisseur analogique-numérique, à laquelle est connectée un potentiomètre de la carte des capteurs. Pour récupérer la plage nécessaire de -100 % - +100 % pour contrôler le servomoteur, la moitié de la valeur maximum (512) est soustraite à la valeur de l’ADC et le résultat est divisé par 5. Le résultat est de +/- 102, mais certaines petites inexactitudes ne comptent pas parce que le servomoteur peut avoir une relation différente entre le signal PWM et l’angle de rotation. Dans les applications, nous devons finalement déterminer la largeur de la demi-période du signal PWM en utilisant la méthode du //test-and-error//. Aussi le contrôle à distance du modèle RC a des occasions correspondantes à la configuration précise. //Also the remote controls of RC models have corresponding opportunities for precise setup// Lorsque le programme démarre la position du rotor du servomoteur se cale sur la position du potentiomètre.
  
 <code c> <code c>
fr/examples/motor/servo.1267608806.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0