Partie 6 Modulation de Largeur d'impulsion et Machine à Etat PWM & State machine

Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java


Systèmes de conférence. Sennheiser vous propose des solutions globales performantes

Introduction au langage C

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

KN 800. N Azur SYSTEME D ALARME ANTI-INTRUSION RADIO TRANSMETTEUR TELEPHONIQUE KN 800 CET. Notice d'installation et de programmation

ScoopFone. Prise en main rapide

Initiation. àl algorithmique et à la programmation. en C

CENTRALE DE SURVEILLANCE EMBARQUEE MULTIMEDIA

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

1. PRESENTATION DU PROJET

NAGRA VI Enregistreur numérique six pistes

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Guide de programmation FLEXIVOZ PABX OD308

Plan du cours. Historique du langage Nouveautés de Java 7

Equipement. électronique

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Les structures. Chapitre 3

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

DI-1. Mode d'emploi. Direct Box

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Systèmes de conférence

Projet audio. Analyse des Signaux ELE2700

Prototypage électronique

Chap17 - CORRECTİON DES EXERCİCES

Programmation C++ (débutant)/instructions for, while et do...while

Projet Robot Centaure

Mentions légales (non traduites) Introduction Légendes Schémas de raccordement Configuration de la S16...

MACHINE A SOUDER MANUEL D UTILISATION

JUPITER /20/27/61m. Contact NF, 50mA à 24v max. avec R50 Ohms en série

PRF 60 MK2. Pupitre. Manuel Utilisateur

Tuto pour connecter une source RVB RGB à un moniteur Commodore / Amiga

Téléphone de Secours Memcom

Conférence sur les microcontroleurs.

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Sous réserve de modifications techniques et des disponibilités, fabrication française.

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Extrait des Exploitations Pédagogiques

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Mode d emploi ALTO MONITOR PROCESSEUR D ÉCOUTE. Version 1.0 Juillet 2003 Français

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

MANUEL D UTILISATION (simplifié) DE LA CENTRALE LS-30

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

2. Pour accéder au Prêt numérique, écrivez dans la barre d adresse de votre navigateur Web.

AMC 120 Amplificateur casque

Utiliser sa boîte mail pour trouver un emploi

COMMUTEL PRO VM3 INTERFACE GSM VOIX POUR EMULATION DE LIGNE RTC ET TRANSMETTEUR DE SMS D ALERTES ET TECHNIQUES.

SUJET ZÉRO Epreuve d'informatique et modélisation de systèmes physiques

Carte ARDUINO UNO Microcontrôleur ATMega328

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Les diagrammes de modélisation

MODE D EMPLOI Boitier de programmation SKY

Version beta. Station Météo 12/11/2012. Réalisation d un Station Météo avec Webserver composée de capteurs Grove et d un module Wifi Flyport.

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

Carte Relais GSM (Manuel Utilisateur)

2. Pour accéder au Prêt numérique, écrivez dans la barre d adresse de votre navigateur Web.

La programmation des PIC en C. Les fonctions, les interruptions.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

IRL : Simulation distribuée pour les systèmes embarqués

12 applications pour maîtriser le PICBASIC PB-3B - Gérard GUIHÉNEUF. Elektor-Publitronic ISBN :

Numérisation du signal

DAC. avec interface USB audio et préampli stéréo Casque CONVERTISSEUR DIGITAL VERS ANALOGIQUE. Guide d utilisation V1.1 Jan 2011

Notice d'utilisation Afficheur multifonctions et système d'évaluation FX 360. Mode/Enter

Document rédigé par Alexis Michaud (en janvier 2005), réactualisé par Angélique Amelot (septembre 2009)

DETECTOR BICANAL FG2 1. DIMENSIONS ET CONNEXIONS ELECTRIQUES 2. GENERALITES. 24 VDC Alimentat. 24 Vcc. Contact Boucle Contact Boucle 1 6 7

UE C avancé cours 1: introduction et révisions

Le langage C. Séance n 4

V- Manipulations de nombres en binaire

KX GPRS SERIAL ETHERNET MODEM Le modem GPRS/EDGE «Machine to Machine»

ACTIVITÉ DE PROGRAMMATION

Chap III : Les tableaux

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

TP1 : Initiation à Java et Eclipse

Solution parfaite pour une expérience bureautique transparente. Récapitulatif. Processeur Teradici avancé, haute performance

SEO 200. Banc d étude du positionnement angulaire d une éolienne face au vent DESCRIPTIF APPLICATIONS PEDAGOGIQUES

Rappels Entrées -Sorties

Fiche produit Fujitsu STYLISTIC M532 Tablet PC

Notions fondamentales du langage C# Version 1.0

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Centrale d alarme DA996

Manuel d aide à la pose

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Bureau d étude Electronique Automobile

crm+ capteurs à ultrasons Extrait de notre catalogue en ligne : Mise à jour :

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

PILOT-FI NOUVEAU. Interface de terrain Pilot-FI Manuel de l utilisateur

Prise en main. Prise en main - 0

Conventions d écriture et outils de mise au point


Cours Informatique Master STEP

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Module Relais de temporisation DC V, programmable

Transcription:

Cours/TD d informatique embarquée Utilisation d un microcontrôleur MBED Partie 6 Modulation de Largeur d'impulsion et Machine à Etat PWM & State machine Plan du cours 6.1. Modulation de Largeur d'impulsion (PWM) 6.2. Application utilisant des PWM 6.3. PWM sur mbed 6.4. Contrôle d'un servo moteur 6.5. Machine à état 6.6. Codage des machines à état en langage C CV C/TD INFO2 - Partie 6 page 1

6.1. Modulation de Largeur d'impulsion (PWM) Une modulation de largeur d impulsion (P W M = PWM) est une méthode simple qui permet de La commande par PWM est utilisée dans de nombreuses applications (communications, robotique, moteurs ) En général la période est constante et c est la largeur de l impulsion, c est-à-dire la durée, qui est variable. Le rapport cyclique est. Rapport cyclique (duty cycle) = 100% * ( )/(période) A chaque instant le signal PWM a une valeur moyenne (average en anglais) matérialisée ici par un ligne en pointillés Si le temps haut est petit la valeur moyenne sera Si le temps haut est grand la valeur moyenne sera En contrôlant le rapport cyclique on contrôle donc la valeur moyenne. La valeur moyenne du signal PWM peut être obtenue avec un Si la fréquence de coupure est très à la fréquence du signal Vout sera une grandeur analogique Condition : En pratique, il n est pas toujours nécessaire de réaliser ce filtrage, la plupart des systèmes physiques ont des caractéristiques physiques qui agissent comme. 6.2 Applications utilisant des PWM Composants utilisant la PWM en robotique Contrôle des moteurs à courant continu (commande du hacheur) Commande des servo-moteurs Capteur à sortie PWM (ex : télémètre SFR05) CV C/TD INFO2 - Partie 6 page 2

Communication (modulation d impulsion codée) utilisée en audio Avantages : Contrôle par microcontrôleur possible Bon rendement énergétique Meilleure tolérance au bruit Pas d effet de dérive en température 6.3 PWM sur mbed 6 sorties PWM sont disponibles sur les broches La classe permet de contrôler la et le des sorties PWM Les méthodes associées au type PwmOut sont dans le tableau ci-dessous : PwmOut Utilisation/méthode PwmOut Crée une variable de type PWM associée à une broche write Fixe le rapport cyclique, float compris entre 0.0 et 1.0 read Renvoie la valeur du rapport cyclique, float compris entre 0.0 et 1.0 period Fixe la valeur de la période, en secondes (float), millisecondes (int), et microsecondes period_ms (int), en gardant le rapport cyclique constant period_us pulsewidth pulsewidth_ms pulsewidth_us Fixe la valeur de la largeur de l impuslion, en secondes (float), millisecondes (int), et microsecondes (int), en gardant la période constante Exemple : Génération d un signal PWM de fréquence 100Hz et de rapport cyclique 35% #include "mbed.h" PwmOut PWM1(p21); int main() { PWM1.period(0.010); // fixe la période à 10ms PWM1.write(0.35); // fixe le rapport cyclique à 35% while(1){ CV C/TD INFO2 - Partie 6 page 3

Exemple : Contrôle de l intensité lumineuse d une LED #include "mbed.h" Serial pc(usbtx, USBRX); PwmOut Led(LED1); float intensite=0.0; int main() { pc.printf( Contrôle de l intensité de la Led\n\r"); pc.printf("pressez + ou - \n\r"); while(1) { char c = pc.getc(); wait(0.001); if((c == +') && (intensite < 0.1)) { intensite += 0.001; Led.write(intensite); if((c == -') && (intensite > 0.0)) { intensite -= 0.001; Led.write(intensite); pc.printf("%c %1.3f \n \r",c, intensite); 6.4 Contrôle d'un servo moteur Le chronogramme ci-dessous nous explique comment contrôler la position d un servo-moteur avec une PWM Le servo moteur que peut en fournir un USB standard. Il faudra l alimenter avec De plus il faut un et une pour augmenter le niveau de commande à 3,3V. CV C/TD INFO2 - Partie 6 page 4

Exercice 1 : Réaliser et tester un programme permettant de régler la position du servo moteur avec deux touches du clavier. Exercice 2 : Modifier le programme précédent en ajoutant le positionnement à 0 ou 180 avec deux touches supplémentaires. Vous devez créer des fonctions et créer une bibliothèque de fonctions (.h et.cpp). CV C/TD INFO2 - Partie 6 page 5

Exercice 3 : Réaliser et tester un programme permettant de régler la position du servo moteur avec un potentiomètre. Faites une mise à l'échelle pour qu'un tour de potentiomètre réalise la variation de 0 à 180 sur le servo. CV C/TD INFO2 - Partie 6 page 6

6.5 Machine à état Une machine à état permet de Exemple de système séquentiel simple : 1. Le robot doit démarrer lorsqu'on enlève le jack. 2. Le robot doit s'arrêter lorsqu'on actionne le contact de fin de course. 3. Le robot doit rester arrêté lorsqu'on replace le jack. On peut alors reprendre le fonctionnement à la première étape. Initialisation - Arrêt Jack-retiré - Déplacement Obstacle percité - Arrêt Le nombre d'états dans lesquels le robot peut se trouver est fini (ici 3 états) : Attente de départ : le robot est à l'arrêt, la fiche jack est en place En marche : le robot avance Arrêt sur obstacle : le robot a heurté un obstacle et s'est arrêté On parle de machine ou d. Les sorties du système ne dépendent que de. Si on connaît l'état du robot, on sait comment agir sur les sorties : les moteurs peuvent fonctionner ou non. Pour passer d'un état à l'autre, c'est-à-dire les, on observe les entrées du système. Remarque : Cette machine à états finis particulière est une machine de Moore très utilisée en informatique industrielle. CV C/TD INFO2 - Partie 6 page 7

ETATS : TRANSITIONS : Un rond représente. Chaque état est numéroté de manière unique. A un instant donné, le système se trouve dans un et un seul état. Une flèche représente. A chaque flèche est associée une condition. Si on se trouve dans un état et qu'une transition est vraie, alors Remarques : Les transitions qui partent d'un même état doivent être exclusives. Si aucune transition ne peut être réalisée, Exercice 4 : Dessiner une machine à état modélisant une machine à café à capsule (touche café court et touche café long, montée en température, arrêt automatique...) 6.6 Codage des machines à état en langage C On définit une variable etat pour coder l'état du système On initialise etat à la valeur de l'état initial du système (ici etat=0;) A l'intérieur de la boucle infinie du programme : 1. On effectue 2. On exécute une instruction switch pour 3. On exécute une instruction switch pour #include "mbed.h" DigitalIn broche5(p5),broche6(p6); //Jack et Fin de Course DigitalOut moteur(led1); //commande du moteur broche5.mode(pullup); broche6.mode(pullup); int main(){ CV C/TD INFO2 - Partie 6 page 8

int etat = 0; while(1){ //1. LECTURE DES ENTREES jack = broche5.read(); fin_de_course = broche6.read(); //2. GESTION DE L ETAT switch(etat){ case 0 : if(jack==0) etat=1; break; case 1 : if(fin_de_course==0) etat=2; break; case 2 : if(jack==1) etat=0; break; //3. GESTION DES SORTIES EN FONCTION DE L ETAT switch(etat){ case 0 : moteur.write(0); break; case 1 : moteur.write(1); break; case 2 : moteur.write(0); break; Exercice 5 : Réaliser un passage à niveau avec des feux (LEDs) et une barrière automatique (servo moteur), un bouton et deux capteurs de présence (photorésistances) en utilisant une machine à état. CV C/TD INFO2 - Partie 6 page 9

Questions de cours : Q1) Que signifie PWM? Q2) Expliquer ce qu'est le rapport cyclique Q3) Quel est la formule donnant la valeur moyenne d'une PWM en fonction du rapport cyclique? Q4) Que faut-il faire pour obtenir une tension analogique proportionnelle au rapport cyclique d'une PWM? Q5) Ecrire les lignes de code permettant de fixer la période d'une sortie PWM dont la fréquence est de 100kHz et la durée du temps haut à 3µs. Q6) Donner les lignes de code permettant positionner le servo moteur à 135. Q7) Dans "automate fini", que signifie le mot "fini"? Q8) Que signifie " Les transitions qui partent d'un même état doivent être exclusives"? Q9) Quelles sont les 3 parties du codage en C d'une machine à état? CV C/TD INFO2 - Partie 6 page 10