Vous êtes sur la page 1sur 10

Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de

Rennes

SEQUENCE 4
La commande
de la tourelle
et les servos

DUREE : 8H

Pré requis Objectifs


Utilisations de base de Flowcode Comprendre la commande d’un
Notions classiques sur les signaux servomoteur
rectangulaires Analyser une macro dans un programme
complet, proposer des modifications.

Matériel Evaluation
Générateur de fonctions + monostable
ou Evaluation en TP ?
Carte commande de servos +
connecteur
Carte de développement à PIC
Programmateur
Disposer de servomoteurs à commande
classique analogique.
Disposer du labo d’électronique.
PC avec Flowcode 4
Shunt de mesure 0,1 Ohm ; au moins

1
Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de
Rennes

1 Le servomoteur

Un servo-moteur tel que celui que nous utilisons est un dispositif typiquement utilisé
en modélisme pour, par exemple, contrôler la direction d'une voiture télécommandée.
Il comprend :

• Un moteur électrique à courant continu, généralement assez petit.


• Un réducteur en sortie de ce moteur pour avoir moins de vitesse et plus de
couple.
• Un capteur : un potentiomètre fait évoluer une tension en fonction de l'angle
de l'axe de sortie.
• Un asservissement électronique pour contrôler la position de cet axe de
sortie.

L'utilisateur envoie périodiquement un signal modulé qui représente un angle.


Le servo tourne vers cet angle et s'y maintient.

On pourrait dire hâtivement qu'il faut fournir un PWM comme signal de commande,
mais ce n'est pas le cas :

• Le PWM ( Pulse-width modulation, Modulation en largeur d'impulsion) est


un signal dont le taux de modulation varie de 0 à 100% (TM=Ton/Tperiode).
• Pour un servo on parle de Signal-code modulated signal (Signal modulé en
code d'impulsion ) où seule l'impulsion compte, pas la fréquence (en théorie).

En clair, il faut fournir au servo une impulsion à 1 (suivie d'un retour à 0). Et le servo
va prendre en compte la largeur temporelle de cette impulsion, qu'il va convertir
proportionnellement (ou presque) en un angle.
Le retour à 0 de l'impulsion peut avoir n'importe quelle durée.
En pratique, il semblerait qu'il ne faille pas dépasser un temps de 20ms entre deux
fronts montants.
A noter aussi que une absence de signal (toujours à 1, ou toujours à 0) laisse le
servo en "roue libre" comme si il n'était pas alimenté.

2
Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de
Rennes

Comme vous le remarquez, c’est la largeur d’impulsion qui représente la valeur de


l’angle , et ce entre 1 et 2 ms pour une période de 20ms. L’amplitude du signal est au
standard TTL.
Ainsi, lorsque la largeur d’impulsion passe de 1 à 2 ms, donc évolue de 1000µs,
l’angle balayé est de 180°.
Remarquons que le temps à l’état bas est fixe, on prend généralement 18ms pour ne
jamais dépasser la période totale de 20ms.

Comment construire ces signaux avec un contrôleur ? vous pouvez consulter

fribotte.free.fr/bdtech/pic/pic_et_servo.html

http://www.bricotronique.com/montages/asmsources/servo.php

Nous utiliserons plus loin les macros disponibles sous Flowcode 4 pour générer les signaux
de commande des servos.
Une commande analogique est facile à mettre en œuvre :
Voici ci-dessous un petit circuit qui permet de générer les impulsions pour commander deux
servos :

Commande d'un servo Extension 2e servo


R6 D3
+6V
330
C13 C1 R1 D2 R5 C2 RV1 C3 RV2 MBRS340
100µ 100n C10 100n C11
100n 120k 3K3 100K
1N4148 100K 100µ 100µ

R7
8

560
U1 C12 U2 J1 U3 J2
100n
4 3 4 3 1 4 3 1
VCC

VCC

VCC

R Q R Q R Q
2 2
7 7 3 7 3
DC DC DC
5 R2 D1 5 R3 5 R4
CV 150k CV 100k CONN-SIL3 CV 100k CONN-SIL3

1N4148 C14
470µ 16V
GND

GND

GND

2 6 2 6 2 6
TR TH TR TH TR TH
A

555 555 555


D4
1

C7 C4 C8 C5 C9 C6
LED
K

220n 100n 220n 100n 220n 100n


GND

Astable : Monostable :

fournit un signal périodique de période environ 18ms reste à l'état haut 1 à 2 ms juste après chaque impulsion de déclenchement.

DATE:
TITLE: COMMANDE SERVOS ANALOGIQUE
27/05/11
PAGE:

BY: Olivier Bouthillon REV: 2.0 1/1

L’étude de ce circuit pourra être menée en complément.

Autre solution :
Pour simplifier, vous pouvez aussi câbler en provisoire un seul monostable ( non
redéclenchable), que vous déclencherez avec la sortie TTL d’un générateur de fonctions
réglé sur un peu moins de 20 ms.
Voyez avec la solution que vous indiquera votre professeur.

3
Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de
Rennes

1.1 Visualiser la commande


Une fois votre servo câblé sur le circuit de commande, observez le signal de commande à
l’oscilloscope. Faites varier la largeur de l’impulsion, et suivez comment évolue la position
angulaire.

1.2 Etudier le courant consommé en rotation à vide

Câbler le circuit en insérant le shunt de mesures sur la ligne 0V d’alimentation. Actionner la


commande pour provoquer un déplacement net : par exemple environ 30°. Observer et
mémoriser la courbe image du courant consommé. En mesurer la valeur crête.
POUR PREVOIR LA VALEUR DE LA RESISTANCE SHUNT : La consommation de votre
servo ne devrait pas excéder 2A.

1.3 Etudier le courant consommé en charge.


Placer l’axe aux environs de la position milieu. Tenez fermement le servo dans une main, et
cherchez à faire tourner l’axe avec l’autre. Observez que le courant augmente avec l’effort
appliqué.

Conclure qualitativement sur la relation entre le courant et le couple fourni.

Estimez l’effort maximal avant décrochage. Quel est le courant maximal consommé par le
servo ?

L’étude menée en EdC a montré que le couple maximal se situe aux alentours de 0,45 N.m.
Ecrire quantitativement la relation qui relie le courant et le couple. Le courant de repos ne
sera pas négligé à priori.

La puissance que dissipe l’appareil s’exprime génériquement par la relation P = U.I . Dans
notre cas, quel est le courant moyen qui vous semble raisonnable avant de risquer la
surchauffe ? Exposez vos arguments pour justifier la valeur que vous avez estimée.

4
Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de
Rennes

2 Les macros « servo » de Flowcode

Depuis la version 4, on trouve dans Flowcode tout ce qu’il faut pour piloter un servo.

The Servo motor component has the following macros:

EnableServo( channel )
Enables the motor's output pin, activating the motor and allowing it to move to the current
position.

DisableServo( channel )
Disables the motor's output pin, deactivating the motor.

SetPosition( channel, position )


Sets the position of one of the servo motors.

SetTrim( channel, trim )


Sets the trim of one of the servo motors.

Remarque1 : Le “trim”est l’angle au repos, la valeur initiale.

Remarque2 : Les macros utilisent au moins le timer1 et les fonctions PWM du processeur.
Ce sont donc des ressources mobilisées dès que l’on a initialisé l’utilisation par la macro
« EnableServo ». Si vous avez besoin de ces ressources pour autre chose, il faudra penser
à libérer le contrôleur par « DisableServo »

Chaque déplacement angulaire d’un servo sera commandé par la macro : Set Position.

5
Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de
Rennes

3 Piloter un servo
3.1 Premier programme d’essai

Il s’agit dans ce paragraphe de créer un premier petit programme qui :

Au départ positionne l’axe à peu près au milieu.

A chaque appui sur un bouton poussoir appelé BP1, l’axe tourne de 20° dans le sens inverse
des aiguilles d’une montre

A chaque appui sur un second poussoir appelé BP2, l’axe tourne de 20° dans le sens des
aiguilles.

3.1.1 Créez le programme.


La sortie servo sera choisie sur la ligne RC0, les poussoirs BP1 en A0 et BP2 en A1.
Remarquez qu’il suffit d’abord d’écrire le programme pour un poussoir, puis de copier coller
en faisant quelques petites modifications…
Simulez le programme. Quand le fonctionnement est correct, faites en la démonstration à
votre professeur.

3.1.2 Implantez le programme dans un PIC


Par exemple un 16F876A, en utilisant votre carte de développement et votre programmateur
favoris.

3.1.3 Sortez Les fils nécessaires


pour la commande du servo, c'est-à-dire la masse et la ligne RC0.
Vous pouvez câbler un petit connecteur SIL 3 broches comme ci-dessous :

Les trois couleurs correspondent à :


Noir = masse, commune à l’alimentation et à la commande
Rouge = + alimentation 5V. Ne dépassez pas 6V, c’est le maximum que supporte le servo en
usage normal.
Blanc = Signal de commande impulsionnel 0 / 5V.

6
Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de
Rennes

Sur notre carte d’essais, la paire torsadée noir/blanc aboutit à la douille RC0 ( et le 0V), la
paire Rouge/noir va à l’alimentation. Prévoir un courant maximum allant jusqu’à 2A. Sur la
photo, il reste à câbler les poussoirs BP1 et BP2 en AN0 et AN1.

3.2 Amélioration N°1 : Gérer les dépassements, les « bu tées ».


Pour cette partie, vous pourrez repartir du corrigé, à demander à votre professeur. C’est le
fichier Seq4 prem BP1 et BP2.fcf
L’idée est d’empêcher la variable n de sortir de la fourchette 0 à 255. Pour cela, proposez
une stratégie, soumettez la au professeur avant de « bricoler » le programme. Puis, simulez,
et essayez .

3.3 Amélioration N°2 : Ralentir les mouvements pour les rendre


moins brusques.
Pour cette partie, vous pourrez repartir du corrigé, à demander à votre professeur, (
programme Seq4 prem BP1 et BP2 et butees.fcf ) ou de votre version où les butées
logicielles fonctionnent.

La méthode que nous vous proposons consiste à faire varier la variable n d’une unité à la
fois, et ce 30 fois de suite pour chaque déplacement. En ajoutant un délai, par exemple de
200 ms entre chaque déplacement d’une unité, on aura un mouvement globalement ralenti.

Faire constater le bon fonctionnement de votre montage par votre professeur.

7
Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de
Rennes

4 Approche du programme « KIER320TE-


V12 »
Le boitier de commande des servos contient ce programme
En faire l’analyse détaillée sort du cadre de ce projet. Néanmoins, nous nous intéresserons à
deux fonctions :

4.1 Retrouver les fonctions Butée et Ralenti ci dessus


Le logiciel constructeur de commande de la tourelle s’appelle KIER320TE-V12.fcf . Ouvrez
le. AIE !! c’est copieux !!
Le but est de retrouver les deux fonctions « butées logicielles » et « mouvements ralentis »
que vous avez étudiées au 3-2 et au 3-3.
Réfléchissez à la logique du processus, simulez pour voir dans quel ordre les macros sont
utilisées, laissez vous guider par les noms des macros, vous devriez retrouver les deux
fonctions.

Pour vous aider, voici la liste des macros et leur rôle dans le processus :
NOM DESCRIPTION
Principal Ce n’est pas vraiment une macro, C’est le programme.
Démarrage Ici s’effectuent toutes les initialisations
Lecture EEPROM Récupère les valeurs mises en mémoire non volatile pour
l’initialisation
PImax Valeurs limites que l’on choisit de ne pas dépasser, aussi bien
PImin pour la rotation de la base ( PB) que pour l’inclinaison du plateau
PBmax (PI)
PBmin
IdentificationActionClavier On identifie les touches pour savoir le nombre de pas à
effectuer, entre 1 et 9. Puis on choisit dans le programme
principal quel déplacement on demande par les flèches : haut,
bas, sens des aiguilles de la montre, l’inverse, ou le mode
multishoots.
ActuServoHaut Pour cela on appelle l’une de ces 5 macros pour gérer le
ActuServoBas déplacement proprement dit.
ActuServoCW
ActuServoCCW
XSHOOTS
Set PI Ici on calcule la valeur de la consigne que l’on va appliquer à
SetPB l’un des deux servomoteurs ( Celle que l’on a appelée n dans les
programmes que vous avez conçus)
AFFposition Regroupe les instructions pour afficher les valeurs de butée et la
valeur actuelle pour la base et pour l’inclinaison
BEEP Gère le signal envoyé au transducteur piezo pour un rappel
sonore .

8
Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de
Rennes

4.2 Différences dans le mode multishoots


Il s’agit ici d’étudier la macro « XSHOOTS » dans le but de la comparer avec les autres
macros , et d’en cerner les particularités par rapport aux déplacements normaux.

4.2.1 Qu’est – ce qui change pour l’utilisateur quand on utilise ce mode ?


voyez pour cela le déroulement du programme avec le boîtier de commande de la tourelle.

4.2.2 Dans le programme, quelle est la variable que l’on saisit pour le multishoot
proprement dit ?

4.2.3 Le pas est une option supplémentaire que doit choisir le photographe, que permet
cette option ?

4.2.4 A quoi sert le traitement du mouvement vers position initiale ? Pour répondre, lisez
les commentaires dans la macro.

4.2.5 Et pour terminer, on retrouve à peu de choses près le copier-collé d’une autre partie
du programme, laquelle ? justifiez votre réponse.

9
Studio Photo Numérique ESTI Séquence 4 Thème 2012 Baccalauréat STI Académie de
Rennes

Progression prévue en électronique


Séquence 1 : Introduction au thème
Découverte de la photographie numérique
Prise en main du studio de photo numérique
Création d’une photo d’art

Séquence 2 : Fabrication de la carte élève


Séquence 2A : Etude fonctionnelle
Séquence 2B : Réalisation du typon
Séquence 2C : Test et mise au point

Séquence 3 : Analyse, Mise au point des Structures de la


carte élève
Séquence 3A : liaison DMX
Séquence 3B : Amplificateur RVB
Séquence 3C : Lecture des switchs
Séquence 3D : Protection contre les surintensités

Séquence 4 : Analyse, mise au point de la commande


Tourelle
Réalisation du Kit possible en 1ère ou Terminale
Gestion du clavier
Commande des servo moteurs

Séquence 5 : Mise en œuvre du système avec la carte élève

10

Vous aimerez peut-être aussi