Sie sind auf Seite 1von 48

PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Edition 3 - 22/02/2018

PROJET ATS :
RESOLUTION DE
LABYRINTHE

CHAÎNE D’INFORMATION

ACQUERIR TRAITER COMMUNIQUER


ACTION

ALIMENTER DISTRIBUER CONVERTIR TRANSMETTRE

CHAÎNE D’ENERGIE

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 1/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Problématique Edition 3 - 22/02/2018


Problématique
L’ambition de ce projet est de concevoir 2 robots, qui auront pour finalité
de résoudre un labyrinthe.

Le premier robot doit être entièrement autonome. Placé dans le labyrinthe,


un algorithme programmé doit lui permettre de sortir seul du labyrinthe

Le second robot est quant à lui piloté à distance, et hors de portée


visuelle de l’opérateur. Une caméra Wifi permettra de retransmettre ses
déplacements.
Doté d’une caméra, cette dernière doit suivre les mouvements de la tête de
l’opérateur. L’image est restituée dans des lunettes de réalité virtuelle, et le
mouvement du robot sera piloté par la rotation du poignet du pilote.

Les points devant donner lieu à compte-rendu sont identifiés en encadré


rouge dans le document

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 2/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Sommaire Edition 3 - 22/02/2018


Sommaire
A.Analyse fonctionnelle et structurelle! __________________________________________5
A.1.Diagramme des exigences 5
A.2.Diagramme de définition de blocs du robot autonome 6
A.3.Diagramme de définition de blocs du robot piloté 7
A.4.Diagramme de bloc interne du robot piloté 8

B.Problématiques à résoudre!__________________________________________________9
B.1.Liste des problématiques 9
B.2.Ressources 10

C.Détail des problématiques!__________________________________________________11


C.1.Problématique 1 : Etude des codeurs incrémentaux à quadrature 11
C.1.1. Protocole
C.2.Problématique 2 : identification des caractéristiques d’un MCC 14
C.2.1. Tracé des courbes du moteur
C.2.2. Tracé de la réponse en boucle ouverte
C.3.Problématique 3 : Asservissement en vitesse des moteurs (roues) 19
C.3.1. Schéma bloc de l’asservissement en vitesse du motoréducteur seul
C.3.2. Dimensionnement du correcteur
C.3.3. Validation expérimentale de l’asservissement
C.4.Problématique 4 : Conception du châssis 23
C.5.Problématique 5 : Comportement dynamique 24
C.5.1. Données
C.5.2. Vitesse limite de basculement
C.5.3. Vitesse limite de dérapage
C.5.4. Performances d’accélération
C.6.Problématique 6 : Lois de pilotage des moteurs 27
C.7.Problématique 7 : Mesure de distance 29
C.7.1. Principe du capteur Sonar
C.7.2. Expérimentation du capteur
C.7.3. Vérification des performances du capteur
C.7.4. Visualisation des signaux sur l’oscilloscope
C.8.Problématique 8 : Développement de l’algorithme de résolution 31
C.8.1. Recherche documentaire
C.8.2. Elaboration de l’algorithme
C.8.3. Essai sur Robot Lego
C.9.Problématique 9 : Conception du support de caméra 33
C.10.Problématique 10 : Motorisation en élévation 34

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 3/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Sommaire Edition 3 - 22/02/2018



C.10.1.Principe du servomoteur
C.10.2.Câblage et programmation du contrôleur ECIO40P
C.10.3.Test de fonctionnement sur contrôleur Arduino (en secours du test précédent)
C.10.4.Tests du servomoteur
C.11.Problématique 11 : Mesure des mouvements de la tête 38
C.11.1.Recherche documentaire
C.11.2.Montage expérimental
C.11.3.Mesure de l’angle et validation avec la réalité
C.12.Problématique 12 : Liaison radio 40
C.12.1.Montage expérimental
C.12.2.Vérification de la réception des trames radio
C.12.3.Vérification des performances (portée du signal)
C.13.Problématique 13 : Asservissement en azimut de la caméra 42
C.13.1.Motorisation par servomoteur
C.13.2.Motorisation par motoréducteur DAGU FIT048
C.14.Problématique 14 : Mesure des angles de tangage et roulis de la main 45
C.15.Problématique 15 : Déplacement du robot en fonction des consignes opérateur 46
C.16.Problématique 16 : Asservissement en élévation de la caméra 47
C.17.Problématique 17 : Pilotage du mouvement de la caméra 48

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 4/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Analyse fonctionnelle et structurelle Edition 3 - 22/02/2018


A. Analyse fonctionnelle et structurelle


A.1. Diagramme des exigences

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 5/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Analyse fonctionnelle et structurelle Edition 3 - 22/02/2018



A.2. Diagramme de définition de blocs du robot autonome

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 6/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Analyse fonctionnelle et structurelle Edition 3 - 22/02/2018



A.3. Diagramme de définition de blocs du robot piloté

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 7/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Analyse fonctionnelle et structurelle Edition 3 - 22/02/2018



A.4. Diagramme de bloc interne du robot piloté

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 8/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Problématiques Edition 3 - 22/02/2018


B. Problématiques à résoudre
B.1. Liste des problématiques

N° Intitulé Détail Ressources et matériel

Etudier le principe des codeurs Ressource documentaire

Acquisition NI-USB 6008 +


Étude des codeurs Labview
1 Visualiser les signaux des 2 canaux
incrémentaux à quadrature
Oscilloscope

Déterminer un algorithme de mesure de l'angle et du


sens de rotation
Tracé des courbes caractéristiques à partir des données
Application Matlab
constructeur
Identification des Identifier expérimentalement la fonction de transfert en Montage Arduino + Application
2
caractéristiques d'un MCC Boucle ouverte du moteur Matlab
Identifier expérimentalement les caractéristiques du
moteur (résistance, inductance, frottements, ...)
Déterminer le schéma bloc des asservissements
En déduire l'expression des FTBF en fonction de la
Mise en place de FTBO du MCC
3 l'asservissement en vitesse et Définir les paramètres du correcteur PI ou PID en vue
en position de respecter les exigences du cahier des charges
Montage Arduino + Application
Valider les résultats par expérimentations
Matlab
Imaginer et dessiner le châssis du mobile, avec les
Logiciel Solidworks
4 Conception du mobile contrôleur, driver et capteurs.
Détermination des éléments de masse et d'inertie
Déterminer le schéma bloc de l'ensemble du système
Définir son comportement dynamique (accélération,
5 Comportement du mobile couple nécessaire, ...)
Déterminer la vitesse maximale en virage pour éviter le
basculement
Déterminer les lois de vitesse de rotation des moteurs
en fonction de la vitesse et du rayon de virage
6 Lois de pilotage des moteurs demandés
Vérifier expérimentalement ces lois Robot EV3

Identifier le principe de fonctionnement des capteurs


sonar
Calculer la distance en fonction du temps de retour de
l'onde sonore
7 Mesure de distance
Montage Arduino -
Vérifier expérimentalement la loi précédente
Oscilloscope
Quantifier expérimentalement la précision et la
répétabilité
Développer l'algorithme basé sur l'algorithme de Pledge
Simuler puis tester l'algorithme sur robot Lego EV3
Développement de Matlab - Robot Lego EV3
8 Mindstorm
l'algorithme de résolution
Implanter l'algorithme sur controleur Arduino

Imaginer et dessiner le mécanisme d'orientation de la


Conception du support de Logiciel Solidworks
9 caméra
caméra
Détermination des éléments de masse et d'inertie

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 9/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Problématiques Edition 3 - 22/02/2018



N° Intitulé Détail Ressources et matériel
Identifier le principe de fonctionnement d'un
servomoteur
10 Motorisation en élévation
Ecrire et tester le programme de mise en position Arduino
Valider les performances annoncées par le constructeur
Identifier le principe de fonctionnement d'un
accéléromètre - magnétomètre
Exprimer la valeur de l'inclinaison de la tête en fonction
Détection du mouvement de
11 des valeurs fournies par l'accéléromètre
la tête
Ecrire l'algorithme permettant de mesurer l'orientation de
la tête en fonction du magnétomètre, après initialisation Arduino - Boussole
Valider les résultats par mesures expérimentales
Comprendre le principe du kit émetteur-récepteur 433

Tester l'émission/réception de messages Arduino

Vérifier les performances de transmission en fonction de


12 Liaison radio l'environnement et de la distance
Ecrire le programme permettant d'envoyer les consignes
au robot : orientation tête, déplacement main ou joystick

Tester et valider ce programme

Ecrire le schéma bloc de l'asservissement en position du


mécanisme
Asservissement en azimut de Définir les paramètres du correcteur PI ou PID en vue
13
la caméra de respecter les exigences du cahier des charges
Montage Arduino + Application
Valider les résultats par expérimentation
Matlab
Comprendre le principe de mesure d'une distance à
partir des données d'un accéléromètre
Mesure du déplacement de la
Elaborer un algorithme de mesure des angles de la main
14 main (pilotage du
à partir des valeurs d'accélération
déplacement du robot)
Implanter l'algorithme dans le contrôleur et valider la
Montage Arduino
précision
Déplacement du mobile en Programmer les lois de vitesse des moteurs des roues
15 fonction des consignes de en fonction des consignes de l'opérateur (Nécessite la Robot assemblé
l'opérateur résolution de la problématique 6)
Asservissement en élévation Vérifier que les performances dynamiques du
16
de la caméra servomoteur sont compatibles avec le mécanisme conçu
Programmer les consignes servo (élévation) et
Programmation du pilotage du
17 motoréducteur (azimlut) en fonction des informations de Robot assemblé
mouvement de la caméra
position de la tête

B.2. Ressources

L’ensemble des ressources utiles (documentations, protocoles expérimentaux, notices,


programmes, ...) est disponible sur le site de la prépa, à l’adresse du projet :
http://tsi.ljf.free.fr/ATS/S2I_Projet2018.html#ressources

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 10/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018


C. Détail des problématiques


C.1. Problématique 1 : Etude des codeurs incrémentaux à quadrature

Objectif : comprendre de quelle façon un tel codeur peut être exploité pour
extraire les informations de position et de vitesse d’un moteur

Ressource : «Lecture de 2 signaux analogiques» (Labview)

C.1.1. Protocole

L’objectif est d’utiliser les signaux d’un tel codeur pour mesurer la vitesse angulaire et la rotation d’un
arbre moteur
C.1.1.1. Recherche documentaire
Consulter les 2 pages suivantes sur Internet :
Principe du codeur
Exploitation d’un codeur à quadrature

C.1.1.2. Préparation de l’expérimentation


Réaliser le câblage page suivante sur Arduino avec un moteur équipé d’un codeur incrémental à quadrature.
Relier les signaux des codeurs sur les voies A et B de l’oscilloscope
Télécharger et décompresser le programme suivant : Commande_PWM_MCC.ino.zip
Implanter ce programme dans le contrôleur Arduino :
➢ Ouvrir le logiciel Arduino et ouvrir le programme téléchargé
➢ Outils > Port : vérifier le numéro de port auquel Arduino est connecté
➢ Outils > Type de carte : vérifier que le type de carte correspond à l’Arduino utilisé
➢ Implanter le programme dans le contrôleur :

➢ Ouvrir la console : .

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 11/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018


C.1.1.3. Mise en oeuvre de l’expérimentation


Faire vérifier le câblage par le professeur avant d’alimenter le hacheur.
La console affiche le sens du moteur et la valeur du rapport cyclique, en
fonction de la position du potentiomètre (potentiomètre au centre : moteur
à l’arrêt)


Le moteur tourne alors en fonction de la consigne.
Visualiser les signaux issus des 2 codeurs sur l'oscilloscope.
C.1.1.4. Exploitation et conclusions

Quelle est la forme des signaux fournis par un codeur incrémental ?


De quelle manière les signaux peuvent-ils renseigner sur le sens de rotation du moteur ?
Comment utiliser ces signaux pour calculer la vitesse de rotation du moteur ?
Comment utiliser ces signaux pour calculer l’angle de rotation du moteur ?

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 12/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.1.1.5. Ecriture du programme permettant de calculer vitesse et angle
Le programme suivant permet de mesurer la vitesse du moteur et l’angle de rotation à partir du comptage et
décomptage des impulsions codeur : Mesure_vitesse_MCC.ino
Il faut câbler les codeurs comme suit :

Implanter le programme dans le contrôleur Arduino, et ouvrir la console :

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 13/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.2. Problématique 2 : identification des caractéristiques d’un MCC

Objectifs : 1. tracer les courbes caractéristiques à partir des données


constructeur parcellaires
2. identifier expérimentalement la fonction de transfert en
boucle ouverte de ce MCC
3 . i d e n t i fi e r e x p é r i m e n t a l e m e n t l e s p a r a m è t r e s
caractéristiques d’un moteur à courant continu

Ressources : «Tracé des courbes caractéristiques d’un MCC» (Matlab)


« Relevé de la réponse indicielle en BO» (Arduino+Matlab)
« Détermination expérimentale des caractéristiques d’un MCC» (Arduino+Scilab)

NB : la méthode décrite ci-dessous s’applique à tous les moteurs du projet. Il faudra mener cette
expérimentation pour chaque motoréducteur, afin d’en extraire un modèle de comportement.

C.2.1. Tracé des courbes du moteur

L’objectif est de définir les courbes caractéristiques des points de fonctionnement du moteur
C.2.1.1. Recherche documentaire
Le moteur étudier est le «34:1 Metal Gearmotor 25Dx52L mm HP 6V with 48 CPR Encoder». Le site Internet du
fabricant du moteur fournit quelques caractéristiques du moteur.
Consulter la page https://www.pololu.com/product/2273 et en extraire les données suivantes :
• Rapport de réduction
• Couple et courant de décrochage
• Vitesse et courant consommé à vide
• Tension d’alimentation nominale

Les valeurs de couple fournies sont exprimées en oz.in. Chercher sur Internet l’équivalence en Nm
C.2.1.2. Tracé des courbes caractéristiques
A partir des données constructeurs, un programme Matlab permet de construire les courbes caractéristiques
de ce moteur
Télécharger le programme Matlab, ainsi que le protocole expérimental
Ouvrir Matlab et lancer l'application téléchargée
Après avoir renseigné les données constructeur, le programme affiche les courbes caractéristiques qu’il faut
sauvegarder afin de pouvoir les exploiter ultérieurement, ainsi que la résistance d’induit et la constante de couple du
moteur.
Identifier la valeur de la résistance d’induit et la constante de couple

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 14/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.2.2. Tracé de la réponse en boucle ouverte

L’objectif est de déterminer un modèle de comportement sous forme de fonction de transfert du moteur
C.2.2.1. Réalisation du câblage expérimental (moteur équipé d’un codeur à quadrature)
Réaliser le câblage ci-dessous
Appeler le professeur pour la validation du câblage

Afin d’avoir la tension réelle en sortie du hacheur, connecter un multimètre aux bornes du moteur

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 15/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.2.2.2. Réalisation du câblage expérimental (moteur équipé d’un codeur à effet hall)
Réaliser le câblage ci-dessous

Appeler le professeur pour la validation du câblage

Afin d’avoir la tension réelle en sortie du hacheur, connecter un multimètre aux bornes du moteur
C.2.2.3. Préparation logicielle
Les programmes exploités pour le tracé sont au nombre de 2 :
• Arduino pour programmer l’échelon en tension
• Matlab pour afficher le résultat

Télécharger les programmes Arduino et Matlab. (les programmes avec l’indice 2 affichent en supplément
l’allure de la réponse du courant moteur)
1. Lancer le logiciel Arduino et ouvrir le programme téléchargé précédemment. Aux lignes 52 à 54 de ce
programme, sélectionner le type d’échelon à appliquer :


Les // signalent un commentaire, donc une ligne non prise en compte. Dans l’exemple ci-dessus, la vitesse du
moteur est réglée à un rapport cyclique du hacheur égal à 70%. Pour une valeur réglable, activer la ligne 53 et pour
une entrée sinusoïdale, activer la ligne 54.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 16/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



2. Renseigner les lignes 15 et 16 du programme Arduino avec les valeurs correctes relatives au motoréducteur
(rapport de réduction et résolution du codeur) :


3. Lancer le logiciel Matlab et ouvrir le fichier téléchargé. A la ligne 21 de ce programme, renseigner le
nom du port sur lequel est connecté l’Arduino :


Pour connaître le numéro de port, vous pouvez cliquer, dans le logiciel Arduino, sur «Outils > Port» : le numéro
de port y est indiqué
Lancer l’application en cliquant sur «Run» :

Pendant l’expérimentation, penser à relever la tension aux bornes du moteur.


A l’issue de l’expérimentation, Matlab affiche la réponse à l’échelon de tension :


C.2.2.4. Exploitation des résultats et conclusion

Relever la courbe de réponse indicielle.


A partir de cette réponse en boucle ouverte, déduire le modèle de comportement du
moteur, en définissant :
Ω( p)
* l’ordre probable de la fonction de transfert du moteur H moteur ( p) =
U( p)

* les caractéristiques de cette fonction de transfert (gain, constante de temps ou


pulsation propre et amortissement)

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 17/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.2.2.5. Comparaison entre le modèle et le réel
A l’issue de la modélisation, l’application Matlab propose de comparer le résultat expérimental avec le modèle
de comportement :

Validez le modèle, et éventuellement affinez-le

Pensez à écrire sur votre compte-rendu la fonction de transfert ainsi identifiée, qui sera utile pour les
asservissements du moteur.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 18/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.3. Problématique 3 : Asservissement en vitesse des moteurs (roues)

Objectifs : 1. Définir le schéma bloc de l’asservissement, et donner


l’expression de la FTBF de l’asservissement à partir de la FTBO du moteur
2. Déterminer les paramètres du correcteur PI ou PID
3. Tester et valider les résultats

Ressources : «Asservissement numérique sur contrôleur» (Documentaire)


« Relevé de la réponse en BF de l’asservissement en vitesse» (Arduino+Matlab)

C.3.1. Schéma bloc de l’asservissement en vitesse du motoréducteur seul

L’objectif est de tracer le schéma de l’asservissement afin d’évaluer ses performances


La problématique 2 précédente a permis d’extraire la fonction de transfert en boucle ouverte du motoréducteur
seul. Il s’agit à présent de concevoir l’asservissement en vitesse de ce motoréducteur, destiné à propulser le robot.
Construire le schéma de l’asservissement en vitesse, la mesure de cette dernière étant obtenue à partir de
l’exploitation d’un codeur incrémental dont les caractéristiques sont fournies sur la documentation du moteur
A partir de la FTBO déterminée à la problématique 2, donner l’expression de la FTBF initialement non corrigée.
Construire le modèle de cet asservissement sous Xcos (Scilab) ou Simulink (Matlab), et évaluer ses
performances (rapidité, précision, stabilité)

Nota : Si les expérimentations de la problématique 2 ne sont pas encore achevées, on pourra mener l’analyse
avec cette fonction de transfert proposée :
4,82
H moteur ( p) =
1+ 0,2 p + 8.10 −3 p 2

Tracer le schéma de l’asservissement de vitesse


Relever les performances de l’asservissement non corrigé : temps de réponse, précision,
stabilité

C.3.2. Dimensionnement du correcteur

L’objectif est de définir les paramètres optimum de l’asservissement, de façon à respecter le cahier des
charges
On cherche à avoir un erreur statique nulle, une marge de phase de 45°, et un temps de réponse de 100ms.
Par ailleurs, on tolère un dépassement maximum égal à 10%.
KI KD p
Le correcteur envisagé est de type PID, d’expression C( p) = K P + + (N désigne la constante de
p 1+ Np
temps du filtre de l’action dérivée. On prendra N=10-4)

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 19/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



Insérer ce correcteur dans le schéma bloc de l’asservissement continu :

A partir du diagramme de Bode du système non corrigé, déterminer graphiquement les


gains Kp, Ki et Kd de la correction proportionnelle tels que :
• la pulsation de cassure du correcteur PI soit située une demi-décade avant la
pulsation de coupure de la FTBO non corrigée (avec Kp=1)
• la pulsation de cassure du correcteur PD soit située à la pulsation de coupure de la
FTBO non corrigée
• enfin, le dépassement ou le temps de réponse seront réglés avec la valeur de Kp

C.3.3. Validation expérimentale de l’asservissement

L’objectif est d’implanter le correcteur continu précédent sous la forme d’un correcteur numérique
échantillonné, et de valider le comportement réel du moteur
Réaliser le câblage page suivante, qui permet d’afficher la réponse du moteur asservi en vitesse à un
échelon de tension. Dans ce montage, les valeurs des coefficients Kp, Ki et Kd, ainsi que la consigne, sont réglables
à l’aide de potentiomètres.

Télécharger le programme Arduino correspondant à cette expérimentation. Ouvrir ce programme dans le


logiciel Arduino.
En fonction du hacheur utilisé (Arduino ou DFRobot), mettre à jour les lignes 40 à 42.


De même, si le hacheur retenu est le DFRobot, mettre en commentaire la ligne 138 (la faire précéder de //)


Télécharger ensuite le programme Matlab qui servira à afficher la réponse indicielle. Décompresser l’archive
et ouvrir le programme Lecture_serial_Asservissement_vitesse.m, ainsi que le modèle Comparaison_expe_modele.slx

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 20/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018


C.3.3.1. Essai du système asservi sans correction


1. Saisir dans Arduino en lignes 26 à 28 les valeurs Kp=1, Ki=0 et Kd=0
2. Implanter le programme dans le contrôleur Arduino
3. Lancer le programme Matlab : Lecture_serial_Asservissement_vitesse.m. La réponse du système s’affiche
4. Mettre à jour les éléments du modèle Simulink (fonction de transfert, correcteur, saturation, Cr=0) et lancer
la simulation afin de comparer le modèle à la réalité

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 21/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



Observe-t-on des écarts ? Si oui, la présence d’un couple résistant Cr peut-elle justifier cet écart ?
Justifier

C.3.3.2. Essai du système asservi avec correction


Estimer les valeurs des coefficients sachant que la fréquence d’échantillonnage de l’asservissement est
égale à 40 Hz
Expérimenter l’asservissement en vitesse du moteur, et déterminer expérimentalement les coefficients du
correcteur qui permettent de satisfaire le cahier des charges.
On commencera par régler le gain proportionnel à la limite de l’instabilité. Puis viendra le réglage de l’action
intégrale de façon à assurer la précision souhaitée, en respectant le critère de dépassement relatif.
Si nécessaire, régler enfin le gain de l’action dérivée.
Conclure sur les valeurs du correcteur PID
Calculer les pulsations de cassure du correcteur, et conclure par rapport à l’étude analytique du correcteur.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 22/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.4. Problématique 4 : Conception du châssis

Objectifs : 1. Concevoir la structure qui supportera l’ensemble de la chaîne


d’énergie
2. Imprimer ces châssis à l’imprimante 3D

Ressources : documentation constructeur dimensionnelle des composants

Les châssis des deux robots doivent permettre le montage des motoréducteurs des roues et de la roue libre,
des micro contrôleurs (Arduino et ECIO40 pour le robot piloté), des capteurs, des driver moteur, de la caméra et de
l’alimentation.
La structure sera la plus simple possible
Certains éléments modulaires sont disponibles en téléchargement :
• Contrôleurs : Arduino Mega2560 - Arduino Nano - Arduino Uno
• Drivers moteur : Arduino Motor Shield - Driver DFR-19
• Moteurs : Pas à pas RS-191-8299 - Pas à pas T2129 - Servomoteur - Motoréducteur RB-Dfr-667
• Interface communication : Module 433 MHz - Caméra JF01
• Capteurs : Accéléromètre LSM6DS3 - Magnétomètre LSM303D - Sonar HC-SRO4
• Divers : Ball Caster - Kit Moteur-Roues - Tourelle servomoteurs - Support capteur Sonar

Présenter la conception retenue pour les 2 robots

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 23/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.5. Problématique 5 : Comportement dynamique

Objectifs : 1. Déterminer les performances d’accélération du robot


2. Estimer les risques de basculement en virage

Le paramétrage du robot est proposé ci-dessous :

λ + CG

+ + + + +
D l A G A D

e e

Le robot (1) est constitué de deux roues arrières


de diamètre d, dont les points de contact avec le
+ sol (0) sont notés G et D.
A Il repose sur une roulette avant, dont le point de
+ contact est noté A.
G Son centre de gravité est noté CG
+
D On note M sa masse

C.5.1. Données

Données sur les actions mécaniques


A l’aide de la figure page suivante, recenser l’ensemble des
actions mécaniques extérieures agissant sur le robot, supposé en
virage de rayon ρ à vitesse V constante.
!!!!!!"
Les
! roues arrière (Rd) et (Rg) sont! soumises à l’effort
VCG∈1/0
normal N , ainsi qu’à un effort tangentiel T lié à l’adhérence
des roues, qui empêche le dérapage en virage. +
!!" CG
L’effort de transmission FT sur ces roues arrières
sont liées au couple moteur qui s’applique.
La roulette avant (Ra) n’est pas motrice et roule sans glisser sur
le sol
Données sur la cinématique +
I1/0
L’étude du basculement se fait en virage, défini par un rayon ρ . La vitesse,
!!!!!!"
notée VCG∈1/0 sera supposée constante : ω! 1/0 = 0
!!!!!!"
On notera V = VCG∈1/0 et ω = ω1/0

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 24/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.5.2. Vitesse limite de basculement

!!!" !!!!!!" !!!"


NG VCG∈1/0 NA
+
CG !!!"
ND ρ
!!!" +
FTG A

!!!" !
+
G
!!" u
TG FTD !
+
!!" v
D
!" TD !
P z
L’objectif est de définir une vitesse limite en virage au-delà de laquelle le robot risque de basculer.

C.5.2.1. Bilan des actions mécaniques


Isoler le robot (1) et faire le bilan des actions mécaniques extérieures agissant sur celui-ci.
Ecrire les relations issues des lois de Coulomb (on se placera en limite d’adhérence des roues arrière).
On se place à la limite du basculement : quelle est la conséquence sur certaines des actions mécaniques ?

C.5.2.2. Dynamique du système


!!!!!!"
Déterminer l’expression du vecteur accélération Γ CG∈1/0

En notant I CG,1 la matrice d’inertie en CG du robot (1), écrire l’expression du torseur dynamique { D1/0 }

C.5.2.3. Vitesse limite de basculement


Par application du Principe Fondamental de la Dynamique au centre de gravité, extraire les équations liant les
actions mécaniques et la dynamique du robot.
Simplifier ces équations dans le cas limite du basculement, et en déduire la vitesse limite correspondant à la
limite du basculement, ainsi que le rayon de virage minimum pour un déplacement à la vitesse maximale, à calculer
d’après les caractéristiques de la motorisation retenue (vitesse de rotation du motoréducteur)
Pour les applications numériques, on retiendra d=42 mm ; h=40 mm ; l=140 mm ; λ = 50 mm ; e=60 mm ;
M=0,5 kg

Présenter la démarche de résolution et les résultats obtenus


Conclure sur le risque de basculement du robot

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 25/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.5.3. Vitesse limite de dérapage

L’objectif est de définir une vitesse limite en virage au-delà de laquelle le robot risque de déraper.
On note f le coefficient d’adhérence du contact roue/sol.
Chercher la valeur du coefficient d’adhérence dans le cas d’un contact caoutchouc/béton
Ecrire la condition de non glissement des roues arrières.
A partir des équations issues du Principe Fondamental de la dynamique, écrire la condition sur la vitesse en
fonction du rayon de virage pour assurer le non glissement des roues arrière.
A la vitesse maximale possible, calculer le rayon minimal de virage pour éviter le dérapage.

Présenter la démarche de résolution et les résultats obtenus


Conclure sur le risque de dérapage du robot

C.5.4. Performances d’accélération

L’objectif est de simuler le comportement du robot soumis à un échelon de tension


C.5.4.1. Inertie équivalente ramenée aux arbres moteur
Les masses mobiles sont les 2 arbres moteur, les 2 roues (rotation) et le robot (translation)
Déterminer l’inertie équivalente J eq ramenée aux arbres moteur de l’ensemble du robot

C.5.4.2. Résistance au roulement


Mettre au point un protocole expérimental permettant d’évaluer le coefficient de résistance au roulement
δ . On pourra à cette fin s’aider du châssis de voiture radio-commandée présente dans le laboratoire.
La mesure de δ se fera soit par mesure de l’effort nécessaire au déplacement, soit par mesure de la
déformation de la roue.
C.5.4.3. Schéma bloc du robot
Les deux moteurs, identiques, peuvent être modélisés par un seul moteur caractérisé par la même constante
électrique K E et une constante de couple égale à 2K C

Construire le schéma bloc de la motorisation en :


• modélisant le moteur électrique
• remplaçant la valeur de l’inertie par la valeur de l’inertie équivalente que vous avez déterminée
• insérant un couple résistant qui traduit la résistance au roulement.

Evaluer les performances du robot en réponse à une consigne de tension de 6V sur les
moteurs.
En déduire la valeur moyenne de l’accélération γ1/0

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 26/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.6. Problématique 6 : Lois de pilotage des moteurs

Objectifs : Définir les vitesses de rotation des moteurs en fonction de la vitesse


souhaitée et du rayon de virage

Paramétrage
!!!!!"
On note G le centre de la roue arrière + !
gauche du robot (1), D celui de la roue arrière I1/0 VG∈1/0 v
droite et M l’entraxe des roues.
!!!!!"
Les données du déplacement sont la
!!!!!"
+
VM ∈1/0
vitesse souhaitée V = VM ∈1/0 et le rayon de r G !!!!!"
virage ρ = I1/0 M ! + VD∈1/0
y M
Le torseur cinématique du mouvement du +
robot (1) par rapport au sol (0) est noté : D
! !
⎧⎪ !!!" " ⎫⎪ x u
Ω =ω z
{C1/0 } = ⎨ 1/0 " 1/0 ⎬ !!!!!" "
⎪⎩ Vu ⎪⎭ M I1/0 M = ρ v
!!!!" "
ω1/0 > 0 dans le cas d’un virage gauche MG = ev
!!!" "
ω1/0 < 0 dans le cas d’un virage droite MD = −ev avec e = 60 mm
!!!!!" !!!!!"
C.6.1.Expression des vitesses VD∈1/0 et VG∈1/0
!!!!!!" "
I1/0 est le centre de rotation. Par conséquent, VI1/0 ∈1/0 = 0 . En déduire l’expression de ω1/0 en fonction de V et
r.
On pose désormais r>0 en cas de virage gauche, et r<0 en cas de virage droite. Ecrire l’expression des
!!!!!" !!!!!"
vecteurs vitesse VD∈1/0 et VG∈1/0 en fonction de V, r et e.

C.6.2.Expression des vitesses moteur ω D et ωG


On note ID le point de contact entre la roue droite (Rd) et le sol (0), et
ω Rd/1 la vitesse de rotation de cette roue par rapport au châssis du robot.
La roue de diamètre d est supposée rouler sans glisser sur le sol.
Exprimer la condition de roulement sans glissement de la roue droite + !!!!!"
avec le sol D VD∈1/0
!!!!!!!"
En déduire l’expression de VI D ∈Rd/1 , puis ω Rd/1 en fonction de V, r, e et +
ID
d
Procéder de même avec la roue gauche.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 27/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018


C.6.3.Cas particuliers
Que se passe-t-’il si le rayon de virage est égal à r=2e (centre de rotation au point de contact IG) ?
Que se passe-t-il si le rayon de virage est inférieur à 2e (centre de rotation entre les 2 roues ?
Que se passe-t-il si r=0 (rotation du robot sur lui-même) ?

Présenter la démarche de résolution.


Donner l’expression des lois de pilotage en fonction des consignes de vitesse et de rayon

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 28/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.7. Problématique 7 : Mesure de distance

Objectifs : Définir le principe de mesure de distance. Quantifier les


performances des capteurs

Ressources : Recherche documentaire


Documentation constructeur

C.7.1. Principe du capteur Sonar

Le capteur retenu pour la mesure de distance est le capteur sonar HC-SR04


Chercher sur Internet le principe de ce capteur sonar. La documentation technique est
disponible sur ce site ou celui-ci (en français).

Quelles sont les performances annoncées par le fournisseur ? (résolution, amplitude de


mesure, ...)

C.7.2. Expérimentation du capteur

ATTENTION : il est impératif pour ce capteur de


réaliser le câblage hors tension. Le contrôleur
ne doit pas être alimenté
Réaliser le câblage ci-contre.
Télécharger le programme Arduino de test.
Implanter ce programme dans le contrôleur
Arduino :
➢ Ouvrir le logiciel Arduino et ouvrir le
programme téléchargé
➢ Outils > Port : vérifier le numéro de port
auquel Arduino est connecté
➢ Outils > Type de carte : vérifier que le type
de carte correspond à l’Arduino utilisé
➢ Implanter le programme dans le
contrôleur :

Ouvrir la console Arduino : .

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 29/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.7.3. Vérification des performances du capteur

Modifier le programme Arduino de façon à afficher la distance en mm (il suffit de changer le type de la variable
duration)

1. Vérifier l’étendue de mesure annoncée par le fournisseur


2. Calculer l’erreur de mesure en fonction de la distance
3. Déterminer l’angle maximal entre le faisceau ultrason et la normale de l’objet à
détecter au-delà duquel la mesure n’est plus fiable

C.7.4. Visualisation des signaux sur l’oscilloscope

Déconnecter l’Arduino de façon à couper son alimentation


Relier le signal «Trigger» sur la voie A de l’oscilloscope, et le signal «Echo» sur la voie B.
Régler les voies de l’oscilloscope, sachant que :
• l’amplitude des signaux est égale à 5V
• la largeur des signaux est fournie grâce à l’extrait de la documentation ci-dessous


Connecter l’Arduino, et visualiser les signaux en procédant à plusieurs mesures de distance.

Etablir un graphe traçant la largeur de l’écho en fonction de la distance réelle

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 30/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.8. Problématique 8 : Développement de l’algorithme de résolution

Objectifs : Ecrire l’algorithme, puis le programme, permettant au robot de


sortir du labyrinthe

Ressources : Recherche documentaire

C.8.1. Recherche documentaire

L’algorithme de Pledge, du nom de son inventeur (Jon Pledge d’Exeter, un garçon de 12 ans), permet de sortir
de tout labyrinthe quelle que soit sa configuration.
Le principe de cet algorithme est décrit sur ce site.
Prendre connaissance de ce principe

C.8.2. Elaboration de l’algorithme

Le robot est muni de 3 capteurs, détectant la présence de parois :


• un capteur g, détectant la présence de parois à gauche du robot (dans le
sens de marche)
• un capteur d, pour les parois à droite du robot

a • un capteur a, pour les parois en avant du robot

g d Outre les variables g, d et a des capteurs, on utilisera les variables suivantes


pour décrire les mouvements du robot :
• AV : marche avant du robot
• RD : rotation d’un 1/4 de tour vers la droite
• RG : rotation d’un 1/4 de tour vers la droite

Créer un algorithme basé sur l’algorithme de Pledge qui permet au robot de sortir d’un
labyrinthe
Traduire ensuite cet algorithme sous forme de graphe d’état

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 31/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.8.3. Essai sur Robot Lego

L’objectif est de tester le graphe d’état précédent dans un robot Lego EV3
Le graphe d’état précédent doit maintenant être implanté dans un robot EV3 à
des fins de test.
Avant tout, il faut calculer l’angle de rotation des roues correspondant à un
pivotement d’1/4 de tour du robot sur lui-même. Pour cela :
1.Mesurer la distance entre les deux roues arrières, et en déduire la longueur
+ que doivent parcourir chacune des roues lors d’une rotation de 90°
2. Après avoir mesuré le diamètre des roues, en déduire enfin l’angle ce
rotation correspondant à cette longueur à parcourir

Le fichier Simulink à implanter dans la brique EV3 est ébauché. Télécharger ce


modèle.

En double-cliquant dans le graphe d’état «Algorithme de Pledge», on fait


apparaître 2 états composites parallèle :
* Pledge, dans lequel doit être implanté le graphe précédemment élaboré
* Rotation_Moteurs, qui gère la rotation des moteurs en fonction des
consignes de marche avant, rotation droite, rotation gauche.

Saisir le graphe d’état dans l’état Pledge, et transférer le programme


dans la brique EV3

Tester le comportement du robot, et valider l’algorithme.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 32/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.9. Problématique 9 : Conception du support de caméra

Objectifs : Concevoir la liaison entre la caméra et le châssis, en intégrant le


servomoteur et le motoréducteur

Ressources : Documentation constructeur

Cette partie doit se faire en concertation avec le groupe responsable de la problématique 4 (conception du
châssis).
A partir des données du module 2 axes prévu pour le support de caméra, il faut prévoir son installation sur le
châssis, en tenant compte des dimensions du servo moteur retenu.
La rotation en azimut de la caméra se faisant par motoréducteur, il faudra également concevoir la liaison entre
l’arbre moteur de ce motoréducteur et le support de caméra.
L’assemblage Solidworks de la tourelle équipée du servomoteur d’élévation est disponible au téléchargement,
ainsi qu’un modèle de la caméra utilisée.

Emplacement de la
caméra

Plateau à entraîner
par le moteur

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 33/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.10. Problématique 10 : Motorisation en élévation

Objectifs : Piloter le servomoteur de la mise en élévation de la caméra

Ressources : Recherche documentaire


Données constructeur

Un servomoteur est un actionneur électrique constitué d’un moteur à courant continu, capable de maintenir
une consigne angulaire. Il s’agit d’un actionneur asservir en position.

C.10.1.Principe du servomoteur

Ce site permet de prendre connaissance de la composition d’un servomoteur, et de son mode de pilotage.
A la suite de sa lecture :

Quelle est la composition d’un servomoteur ?


Comment s’effectue le pilotage d’un servomoteur ?

Les servomoteurs retenus sont les Hitec HS-422, dont les données constructeurs sont disponibles sur cette
page.
Déduire de la lecture de ces données :
• Le couple maximum
• La vitesse de rotation à vide
• Les largeurs d’impulsion de pilotage (position neutre et pleins débattements)

C.10.2.Câblage et programmation du contrôleur ECIO40P

Réaliser le câblage ci-dessous, qui permettra de tester le positionnement du servomoteur en fonction de la


largeur d’impulsion.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 34/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



Appeler le professeur pour la validation du câblage, et pour le lancement du tracé de l’algorithme sous
FlowCode
Ouvrir le logiciel FlowCode, et tracer l’algorithme page suivante, qui permet d’envoyer au servomoteur une
impulsion de largeur variable entre 700 et 2300 ms en fonction de la position du potentiomètre.
Cet algorithme :
• initialise le contrôleur de servomoteur
• dans une structure «While 1» (donc une boucle permanente) lit la valeur du potentiomètre sous forme
d’octet, et injecte cette valeur dans le contrôleur de servomoteur.

B a n d e a u h o r i z o n t a l p e r m e t t a n t d ’ i n s é re r u n
potentiomètre (Input), un controleur de servo et un
servo (Mechatronics) :

Bandeau vertical permettant d’insérer les


éléments de l’algorithme :

Tableau de bord du montage :

C.10.3. Test de fonctionnement sur contrôleur Arduino (en secours du test précédent)

Réaliser le câblage ci-dessous, qui permettra de tester le positionnement du servomoteur en fonction de la


largeur d’impulsion.
Appeler le professeur pour la validation du câblage

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 35/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



Télécharger le programme Arduino, qui permet
d’envoyer au servomoteur une impulsion de largeur
variable entre 0 et 3000 ms en fonction de la
position du potentiomètre.
Implanter ce programme dans le contrôleur
Arduino :
➢ Ouvrir le logiciel Arduino et ouvrir le
programme téléchargé
➢ Outils > Port : vérifier le numéro de port
auquel Arduino est connecté
➢ Outils > Type de carte : vérifier que le type
de carte correspond à l’Arduino utilisé
➢ Implanter le programme dans le
contrôleur :

C.10.4.Tests du servomoteur

1. Observer le comportement du servomoteur en fonction de la largeur d’impulsion théorique.


2. Mesurer l’angle du servomoteur en fonction de cette largeur d’impulsion
3. Mesurer la vitesse angulaire : utiliser pour cela le logiciel «Tracker Video» :
(I) Prendre une vidéo du servo moteur vu de dessus avec le téléphone portable. Afin de
faciliter l’analyse à suivre, on aura intérêt à identifier clairement un point mobile, par exemple
avec une vis ou une LED
(II) Récupérer la vidéo sur l’ordinateur
(III) Lancer le logiciel «Tracker» et ouvrir cette vidéo
(IV) Définir les limites utiles de la vidéo :


(V) Calibrer la vidéo (afin de renseigner l’échelle pour les mesures de distance) en sélectionnant 2 points
dont on connaît la distance


(VI) Un axe se positionne automatiquement. Déplacer l’origine de cet axe sur le
centre du servomoteur

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 36/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



(VII) Demander le repérage automatique du point identifiable, et
sélectionner ce point. Cliquer sur «Chercher» et vérifier que la trajectoire
proposée est correcte. Si la proposition est incorrecte, il faudra saisir
manuellement les points par «Créer une masse ponctuelle».


(VIII) Afficher alors le graphique ω = f (t)

4. Observer à l’oscilloscope la largeur réelle d’impulsion


5. Mesurer le couple de maintien maximum

Présenter les résultats de ces 5 tests

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 37/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.11. Problématique 11 : Mesure des mouvements de la tête

Objectifs : Définir les vitesses de rotation des moteurs en fonction de la


vitesse souhaitée et du rayon de virage

Ressources : Recherche documentaire


Données constructeur

Les angles de la tête sont mesurés à partir d’un magnétomètre pour l’azimut, et à partir d’un accéléromètre
pour l’élévation.
Ce capteur détecte les flux magnétiques,et, en l'absence de champs magnétique perturbateur, détermine la
position du Nord magnétique. Il fournit une indication de cap par rapport à ce Nord magnétique.
Il dispose également de 3 accéléromètres dans les 3 directions x, y et z.

C.11.1.Recherche documentaire

Chercher sur Internet comment, à partir de la connaissance des valeurs des accélérations en x, y et z
mesurées par un accéléromètre, il est possible d’en déduire l’angle de ce capteur autour des axes x et y.
En particulier, le document à cette adresse dresse une étude de l'exploitation des accéléromètres.

Donner l’expression des angles autour de x et y de l’accéléromètre en fonction des


accélérations mesurées Ax, Ay et Az

C.11.2.Montage expérimental

Le capteur LSM303D doit être relié aux broches suivantes d’un contrôleur Arduino :
• Broche «Vin» du capteur sur broche «3.3V» de l’Arduino (pas 5V)
• Broche «GND» du capteur sur broche «GND» de l’Arduino
• Broche «SDA» du capteur sur broche «A4» de l’Arduino Uno, ou «20» de l’Arduino Mega
• Broche «SCL» du capteur sur broche «A5» de l’Arduino Uno, ou «21» de l’Arduino Mega

Faire vérifier le câblage par le professeur avant de connecter l’Arduino au port USB.
Télécharger et décompresser le programme suivant : Test_LSM303D.ino.zip
Implanter ce programme dans le contrôleur Arduino :
➢ Ouvrir le logiciel Arduino et ouvrir le programme téléchargé
➢ Outils > Port : vérifier le numéro de port auquel Arduino est connecté
➢ Outils > Type de carte : vérifier que le type de carte correspond à l’Arduino utilisé
➢ Implanter le programme dans le contrôleur :

➢ Ouvrir la console : .

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 38/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



En manipulant le capteur, observer les indications de cap et d’accélération mesurées.
Quelles sont les amplitudes de mesure dans les 3 directions ? Que peut-on en conclure sur le nombre de bits
de codage des informations d’accélération ?

C.11.3.Mesure de l’angle et validation avec la réalité

⎛ A⎞
On précise que la fonction angleX = atan ⎜ ⎟ s’écrit en langage Arduino sous la forme :
⎝ B⎠

float angleX=atan2(A,B);
Implanter un programme d’essai permettant de mesurer la position de la tête dans les 3 directions. En s’aidant
des résultats de la partie C.11.1, i faudra pour cela modifier le programme Arduino, en demandant le calcul de angleX
et angleY
Afficher ces valeurs dans la console en modifiant les instructions Serial.print
Valider ce programme par comparaison entre les angles réels et les angles mesurés par le programme

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 39/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.12. Problématique 12 : Liaison radio

Objectifs : Ecrire le protocole de communication entre la base et le robot par


liaison radio 433 MHz

Ressources : Tutoriel d’explication


Notice bibliothèque VirtialWire

C.12.1.Montage expérimental

Il s’agit de tester l’émission et la réception d’informations par voie hertzienne, sur la fréquence 433 MHz.
il faudra 2 contrôleurs Arduino, un pour l’émission des messages, et le second pour la réception.
Télécharger et décompresser les programmes compressés dans le fichier suivant : Test_radio.zip
Implanter le programme emission_date.ino dans le contrôleur Arduino de l’émetteur:
➢ Ouvrir le logiciel Arduino et ouvrir le programme téléchargé
➢ Outils > Port : vérifier le numéro de port auquel Arduino est connecté
➢ Outils > Type de carte : vérifier que le type de carte correspond à l’Arduino utilisé
➢ Implanter le programme dans le contrôleur :

➢ Ouvrir la console : .
Vérifier que la manipulation des potentiomètres modifie la valeur affichée sur la console
Sur un autre ordinateur distant, implanter ensuite le programme reception_date.ino dans le contrôleur Arduino
du récepteur.
Câblage du récepteur:
Broche «DATA» sur broche 7 de l’Arduino
Broche «Vcc» sur «5V»
Broche «GND» sur «GND»

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 40/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018


Câblage de l’émetteur :
Broche «DATA» sur broche 12 de
l’Arduino
Broche «Vcc» sur «5V»
Broche «GND» sur «GND»

C.12.2.Vérification de la réception des trames radio

Afficher la console de l’Arduino du récepteur, et vérifier que la manipulation des potentiomètres de l’émetteur
sont effectivement répercutés sur la console du récepteur.
La diode sur le montage du récepteur clignote en fonction des consignes émises par radio.

C.12.3.Vérification des performances (portée du signal)

Appeler le professeur pour rendre le récepteur autonome.


Se déplacer avec le récepteur, et tester les conditions de bonne réception du signal en fonction de
l’environnement (présence de murs, de structures métalliques, etc...) et de la distance.

Présenter les performances de la liaison en fonction :


* de la distance entre émetteur et récepteur
* de l’environnement (présence de murs, de structure métallique)
* du débit de la transmission

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 41/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.2. Problématique 13 : Asservissement en azimut de la caméra

Objectifs : Concevoir et régler l’asservissement en position (azimut) de la caméra

Ressources : Principe de l’asservissement numérique

La caméra est asservie en fonction de la position angulaire transmise par liaison radio à l’Arduino. Ce
contrôleur transmet cette position angulaire au contrôleur ECIO40P ou Arduino Mini dans lequel il va falloir implanter
l’asservissement
3 motorisations sont envisagées : Servomoteur - MCC+codeur - Moteur pas à pas

C.2.1. Motorisation par servomoteur

Ce principe est relativement simple à mettre en oeuvre, car les servomoteurs sont des
actionneurs asservis en position. Il suffit donc de piloter ces servomoteurs en fonction de
la consigne en azimut souhaitée.
En revanche, l’amplitude angulaire est limitée à 120° pour la majorité des servomoteurs.
C.2.1.1.Schéma de câblage
Réaliser le schéma de câblage suivant :

La résistance doit avoir une valeur de 10


kohm.
Il s’agit d’une résistance «Pull-Down» qui
a pour but de forcer l’état 0V en l’absence
de signal : elle draine les bruits présents
dans le signal.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 42/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.2.1.2. Programme de test
Télécharger le programme de test. Ouvrir ce programme dans Arduino, et l’implanter dans le
contrôleur.
Le programme est écrit pour un capteur dont la face supérieure est orientée composants
électroniques vers le haut :

Quelques lignes dans ce programme sont à compléter. Il s’agit de la mise en


position initiale des 2 servomoteurs :

Dans ce programme, la commande des servomoteurs se fait en donnant une


consigne de position angulaire comprise entre 0 et 180° (90° étant donc la position
centrale du servomoteur).
Par essais successifs, déterminer les valeurs des positions initiales des
servomoteurs, de façon à ce que le cycle débute avec les servomoteurs dans la
position ci-contre.

Le mécanisme se comporte-t-il comme attendu ?


Le système est-il exploitable dans l’état ?

Il se trouve que les variations rapides des valeurs fournies par le capteur rendent le mécanisme trop réactif, et
donc inexploitable.
Il va donc falloir filtrer les données du capteur de façon à éliminer le bruit : il s’agit d’un filtre passe-bas du 1er
ordre, dont la fonction de transfert est la suivante :
S filtre ( p) 1
H PB ( p) = =
Sbrut ( p) 1+ τ p
Traité de façon numérique, cette fonction de transfert permet d’écrire (voir cours d’informatique sur le
traitement du signal) :
Te
s filtre (ti+1 ) = s(ti )+
τ
( sbrut (ti ) − s filtre (ti )) où Te désigne la période d’échantillonnage
C.2.1.3. Amélioration du programme
Il va falloir implanter ce filtrage dans le programme. Pour cela, il faut insérer :
• un timer dont la fonction sera d’appeler à une fréquence donnée une routine de calcul des signaux filtrés
• une routine qui va calculer la valeur filtrée à partir des valeurs brutes (voir lignes 72 à 75)

Le programme suivant à télécharger intègre le filtrage des entrées, dans lequel il va falloir déterminer la
fréquence d’échantillonnage et la constante de temps.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 43/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



La routine qui calcule les valeurs filtrées est reproduite ci-dessous :

La période d’échantillonnage et la constante de temps sont réglées lignes 22 et 23 :

Tester plusieurs valeurs de fréquence d’échantillonnage et de constante de temps.


Quelle est l’influence de ces deux paramètres sur le comportement du système ?
Quelles sont les valeurs optimales ? Justifier les critères.

C.2.2. Motorisation par motoréducteur DAGU FIT048

Réaliser le câblage suivant :

Télécharger les programmes Arduino et Matlab

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 44/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.3. Problématique 14 : Mesure des angles de tangage et roulis de la main

Objectifs : Mesurer les angles de la main de l'opérateur, qui serviront à piloter


le robot

Ressources : Recherche documentaire


Données constructeur

Se référer à la problématique 11 qui reprend les points à développer dans cette problématique

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 45/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.4. Problématique 15 : Déplacement du robot en fonction des consignes opérateur

Objectifs : Déterminer les consignes de vitesse et de rayon de virage en fonction


de la position de la main

Ressources : Données constructeur

Cette problématique nécessite le résultat des problématiques 6 et 14.


Les angles de tangage et de roulis mesurés au niveau de la main de l’opérateur doivent piloter le robot :
• L’angle de tangage, compris entre -90° et 90°, renseigne sur la vitesse souhaitée. On limitera la consigne
à ±45° .
• L’angle de roulis, compris entre -90° et 90°, renseigne sur le rayon de virage souhaitée.

A partir de ces informations d’angles, il s’agit maintenant d’élaborer les consignes de vitesse des roues du
chariot, de façon à déplacer le robot à la vitesse souhaitée, et sur le rayon de virage souhaité.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 46/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.5. Problématique 16 : Asservissement en élévation de la caméra

Objectifs : Vérifier que les performances du servomoteur sont compatibles


avec le cahier des charges

A partir des caractéristiques du moteur, mesurées expérimentalement, dessiner le schéma bloc de la mise en
position angulaire (élévation) de la caméra.
Vérifier que les performances du cahier des charges, en réponse à une consigne en échelon et en rampe, sont
respectées.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 47/48


PROJET ATS 2018

RESOLUTION DE LABYRINTHE PROJET ATS

Détail des problématiques Edition 3 - 22/02/2018



C.6. Problématique 17 : Pilotage du mouvement de la caméra

Objectifs : Implanter le programme de pilotage de la caméra dans le


contrôleur

A l’issue des problématiques 10 et 13, écrire le programme complet des asservissements en position de la
caméra dans le micro contrôleur ECIO40P
Ce programme doit, à partir des 2 consignes émises par le contrôleur Arduino (azimut et élévation de la
position de la tête), envoyer la consigne de tension au moteur assurant l’asservissement en azimut, et la consigne de
position pour le servomoteur assurant l’asservissement en élévation.

Lycée Jules Ferry - 06400 Cannes ats.julesferry.cannes@gmail.com 48/48

Das könnte Ihnen auch gefallen