Déplacer le robot en pilotant la commande moteurs

Transcription

Déplacer le robot en pilotant la commande moteurs
Projet Baccalauréat 2006
Robot de transport optoguidé
Etape FP1b : TRAITEMENT MICROPROGRAMME
Durée : 2H00
EVALUATION 2 CORRIGE
"Déplacer le robot en pilotant la commande moteurs »
Objectif spécifique : l'élève devra être capable de . . .
Faire correspondre les signaux de commande des moteurs aux variables C.
Modifier le programme C fourni.
Valider expérimentalement le fonctionnement demandé.
Compétences évaluées :
F : Rechercher pour ce qui concerne les fonctions connues de manière mixte (matérielle et
logicielle), l'adéquation entre les solutions technologiques structurelles et les segments de
programme associés afin :
d identifier les variables se rapportant à cette fonction ;
de distinguer, en relation avec les variables, la (ou les) parties se rapportant à la
fonction mixte étudiée ;
d'établir les liens de cause & effet entre un segment de la partie concernée du
logiciel et les relations entre les grandeurs d'entrée et de sortie de la structure
matérielle qui caractérise cette fonction mixte.
G :.De proposer la réorganisation structurelle (et ou logicielle) partielle ou totale d'une
fonction.
Pré-requis :
Dossier :
Présentation et analyse fonctionnelle du système.
électronique :
Activité FP1a.
Modulation en Largeur d impulsion (PWM).
Condition de réalisation :
Travail réalisé en solo, conditions d évaluation.
Robot sur cale et/ou sur piste, distance d arrêt collision à 20 cm.
Atelier logiciel avec ses documents ressources, doc microchip DS30487C page1 (pin diagram).
Propositions d'activités :
Activité A : Identifier les liaisons logiciel/matériel se rapportant à la commande des
moteurs.
Durée de cette activité : ½ heure.
Identifier dans le dossier (fonctionnel et structurel) les signaux
pilotant les moteurs et expliciter leur rôle.
Charger à partir du répertoire FP1bavar, le projet spaguetti.mcp.
Dans le fichier gen.h, identifier les #define nommant en C les signaux
de commande des moteurs.
Lister les noms C ainsi définis.
Seuls les signaux moteurs sens et pwm nous intéressent :
FP4 : Propulsion
Dossier Professeur
FP1b déplacement robot avant/arrière
page 1/6
Projet Baccalauréat 2006
Robot de transport optoguidé
Entrées
SensG, SensD : Ordre de sens de rotation des moteurs gauche et droite. Un niveau haut
implique un déplacement du robot vers l arrière.
PwmG, PwmD : Signaux à modulation de largeur d impulsion pour la commande des
moteurs gauche et droite.
Charge : Masse transportée inférieure à 5Kg.
Sortie
VitesseG, VitesseD : Vitesses de rotation de l arbre moteur gauche, droit.
Déplacement de la charge.
PORTS du 16F88 :
NOMS C :
//MOTEURS
#define MOTGauche RA3
#define MOTDroit RA1
#define sensMOTGauche
#define sensMOTDroit
// pwms moteurs
RA2
RA0
// sens moteurs
// T du PWM moteur en TRANCHE_MOT tranches d'un tour de
TMR0 ...
#define TRANCHE_MOT
// toujours 2^x pour increment en modulo TRANCHE_MOT ...
// d'un compteur identifiant la tranche active telque:
// compteur = (compteur + 1) MODULO TRANCHE_MOT
0x20
Grâce à la lecture des commentaires relatifs à la définition du #define
TRANCHE_MOT et à sa valeur : quelle est la durée de la période T de
la commande PWM si un tour de TMR0 dure 128µs ?
T=0x20 x 128µs = 32 x 128µ = 4,096ms.
Activité B: Identifier les variables de travail logicielles se rapportant à la commande des
moteurs et leur rôle. (sauf indications contraires les valeurs sont celles des fichiers sources)
Durée de cette activité : ¼ heure
Dans le fichier R2006.h, identifier la structure struct moteur mot{}
portant les variables travail de la commande, lire les commentaires
afférents.
La simple recopie de la structure montre son identification et sa lecture :
// pour les moteurs
struct moteur
Dossier Professeur
FP1b déplacement robot avant/arrière
page 2/6
Projet Baccalauréat 2006
Robot de transport optoguidé
{
unsigned char cpt;
// compteur pour tranche active du PWM
unsigned char gauche;
// Ton mot gauche demandé en nb de
tranches
unsigned char droit;
// Ton mot droit demandé en nb de tranches
unsigned char sensgauche;
// sens mot gauche
unsigned char sensdroit;
// sens mot droit
union flag_moteurs motf;// voir union
} mot;
Si la variable mot.gauche = PWM50P100 et un tour de TMR0 dure
128µs , tracer le signal PwmG.
Signal carré, attention l abscisse
pour l ordonnée en logique ou 0/5V.
Dans ce cas si mot.cpt = 0x0a, quel sera l état (0/1) de PwmG ?
1 car mot.cpt< mot.gauche donc moteur ON.
Activité C: Lien C et ordinogramme.
Durée de cette activité : ½ heure
Le compteur interne 8 bits TMR0 du PIC16F88 s incrémente en permanence toutes les
500ns.
Le passage de 0xff à 0x00 de TMR0 provoque le traitement de la fonction static void
interrupt isr(void) du fichier R2006.c.
Dans celle-ci, le code suivant positionne les ports du PIC affectés à la commande des
moteurs :
// gestion moteurs pwms et sens
mot.cpt= (++mot.cpt & MASK_MOT); // inc tranche de T en cours
mot.cpt >= mot.droit? MOTDroit=OFF: MOTDroit=ON; // test pour Ton ou Toff
mot.cpt >= mot.gauche? MOTGauche=OFF: MOTGauche=ON;
sensMOTDroit = mot.sensdroit;
// set sens de rotation
sensMOTGauche = mot.sensgauche;
Ce code est exécuté combien de fois par seconde ?
Nb.fois= 1sec/128µs = 7812
Transposer ce code en ordinogramme.
Dossier Professeur
FP1b déplacement robot avant/arrière
page 3/6
Projet Baccalauréat 2006
Robot de transport optoguidé
Activité D: Modifier le logiciel, programmer le processeur cible et expérimenter le logiciel.
Dossier Professeur
FP1b déplacement robot avant/arrière
page 4/6
Projet Baccalauréat 2006
Robot de transport optoguidé
Durée de cette activité : ¾ heure
Les déplacements du robot par ce programme sont uniquement asservis au traitement
de la fonction « ma_commande_moteurs() » du fichier « vitesse.c ».
Ni la lecture de ligne, ni la vitesse n entrent en jeu : leur action est shuntée.
Par sécurité, la détection d obstacle reste valide et est fixée à 20 cm.
Régler les variables moteurs dans ma_commande_moteurs() pour une
avance en ligne droite avec Ton = 70%.
Note :erreur classique mettre 70 pour 70%...avec T=32 le robot est toujours à fond !
Avance :
void ma_commande_moteurs(void) // fonction à modifier...
{
mot.gauche = PWM70P100;
// Ton du PWM
mot.droit = PWM70P100;
mot.sensgauche = AVANT; // AVANT(0) ou ARRIERE(1)
mot.sensdroit = AVANT;
}
Programmer le robot et valider votre travail par essai réel.
Faire valider par le professeur.
Régler les variables moteurs dans ma_commande_moteurs() pour un
recul en ligne droite avec Ton = 50%.
Recul :
void ma_commande_moteurs(void) // fonction à modifier...
{
mot.gauche = PWM50P100;
// Ton du PWM
mot.droit = PWM50P100;
mot.sensgauche = ARRIERE;
// AVANT(0) ou ARRIERE(1)
mot.sensdroit = ARRIERE;
}
Programmer le robot et valider votre travail par essai réel.
Faire valider par le professeur.
Régler les variables moteurs dans ma_commande_moteurs() pour
PwmG = 50%, PwmD=50%, moteur droit en avance et moteur
gauche en recul.
Toupie sens anti-horaire :
void ma_commande_moteurs(void) // fonction à modifier...
{
mot.gauche = PWM50P100;
// Ton du PWM
mot.droit = PWM50P100;
mot.sensgauche = ARRIERE;
// AVANT(0) ou ARRIERE(1)
mot.sensdroit = AVANT;
}
Programmer le robot et valider votre travail par essai réel.
Faire valider par le professeur.
Dossier Professeur
FP1b déplacement robot avant/arrière
page 5/6
Projet Baccalauréat 2006
Robot de transport optoguidé
Eléments attendus dans le dossier.
Activité A :
Tableau de correspondance nom_signal/port_pic/#define/rôle.
(barème : 4*4*0,5 = 8 points)
Durée T des PWMs.
(barème : 2 points)
Activité B :
Tableau de correspondance nom_variable/rôle.
(barème : 2*5*0,5 = 10 points)
Tracé de PwmG.
(barème : 2 points)
Etat PwmG.
(barème : 1 point)
Activité C :
Fréquence traitement affectation des commandes moteurs.
(barème : 2 points)
Ordinogramme.
(barème : par ligne 4+3+3+0,5+0,5 = 11 points)
Activité D :
Listings des fonctions ma_commande_moteurs().
(barème : 2+2+2 = 6 points
Tableau validations professeur.
(barème : 2+2+2 = 6 points)
TOTAL : 48 points
Dossier Professeur
FP1b déplacement robot avant/arrière
page 6/6
This document was created with Win2PDF available at http://www.daneprairie.com.
The unregistered version of Win2PDF is for evaluation or non-commercial use only.