Sommaire. Performances Bouton simple Liaison série STI2D SIN. Sommaire µc ATMEL AVR / ARDUINO 1/37



Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Bien commencer avec un LaunchPad MSP430G et un Breadboard

Transmissions série et parallèle

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Master d'informatique 1ère année Réseaux et protocoles. Couche physique

1. PRESENTATION DU PROJET

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

COMMANDER la puissance par MODULATION COMMUNIQUER

ANALYSE TRAMEs LIAISON SERIE

PRODUIRE DES SIGNAUX 1 : LES ONDES ELECTROMAGNETIQUES, SUPPORT DE CHOIX POUR TRANSMETTRE DES INFORMATIONS

Université de La Rochelle. Réseaux TD n 6

AUTOPORTE III Notice de pose

Instruments de mesure

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

Présentation et installation PCE-LOG V4 1-5

OBJECTIFS. I. A quoi sert un oscilloscope?

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

fullprotect inside EOLE SPEie RS E-SPEie V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française

Manipulations du laboratoire

CARACTERISTIQUE D UNE DIODE ET POINT DE FONCTIONNEMENT

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

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

TP Vidéo surveillance Bac pro SEN CCTV. Lycée de L Aa 1

Systèmes de transmission

ScoopFone. Prise en main rapide

MT-703. Surveillance de niveau par sonde résistive TELEMETRIE PAR MODULE GSM CONFIGURATION ET UTILISATION

PIC EVAL Dev Board PIC18F97J60

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

INSTALLATION CARACTERISTIQUES TECHNIQUES LOGICIEL DE CONFIGURATION

CONFIGURATION ET UTILISATION

Modules d automatismes simples

Description d'une liaison

PocketNet SNMP/Modbus

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE.

ProCod. Manuel d utilisation. Software de programmation pour codeurs absolus TWK modèles CRF et DAF CRF DF 08 / 10

2 Raccordement d une imprimante, d un terminal ou d un ordinateur au DULCOMARIN

Contrôleur de communications réseau. Guide de configuration rapide DN

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur.

Table des matières. 1. Description du matériel : Données techniques : Présentation de la serrure :... 4

Utilisation du visualiseur Avermedia

Animation pédagogique sur l oscilloscope à mémoire Hameg HM 507

FRANCAIS DGM1. Centrale Vigik 1 porte. N d homologation : - PS MS Gamme: Vigik MANUEL D INSTALLATION.

SCL LOGICIEL DE CONTROL

Fiche technique CPU 314SC/DPM (314-6CG13)

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

INSTALLATION MODULE WEB

LYCEE TECHNIQUE PIERRE EMILE MARTIN BOURGES ETUDE D UN TRAITEMENT DE SURFACE

UGVL : HOMOLOGATION PS ZAC du bois Chaland 6 rue des Pyrénées LISES EVRY Cedex FRANCE Tel Fax

ROTOLINE NOTICE DE POSE

Donner les limites de validité de la relation obtenue.

Enregistreur de Température pour PC DALLAS 1820

Notice d installation de la Centrale VIGIK DGM1

Fiche technique variateur

Ecran programmable. Testez la différence grâce. à sa puissance, sa rapidité. et ses possibilités réseaux

TO-PASS -FAQ- Télésurveillance et contrôle à distance

UP 588/13 5WG AB13

Oscilloscope actif de précision CONCEPT 4000M

Transmission d informations sur le réseau électrique

Notice d installation des cartes 3360 et 3365

IUT GEII MARSEILLE Patrick GUMUCHIAN. Lycée Alphonse Benoit L'Isle sur la Sorgue Marc SILANUS

Centrale de surveillance ALS 04

ELEC2753 Electrotechnique examen du 11/06/2012

GUIDE D UTILISATION ADSL ASSISTANCE

Manuel de configuration du Wi-Fi

Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)

Sélection du contrôleur

NUGELEC. NOTICE D'UTILISATION DU B.A.A.S. du type Ma - STI / MaME - STI. pages. 1 introduction 2. 2 encombrement 3 fixation

GAZLOG. Logiciel de téléchargement et d'exploitation de données. Notice d utilisation. Tél. : Fax :

Système M-Bus NIEVEAU TERRAIN NIVEAU AUTOMATION NIVEAU GESTION. Domaines d'application

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Tableaux d alarme incendie de type 4-230V~ - 1 boucle / 2 boucles /62

Technique de sécurité

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

Micro-ordinateurs, informations, idées, trucs et astuces. Utiliser une caméra IP Trendnet IP-TV110. Auteur : François CHAUSSON

Manuel d utilisateur Traceur GPS/GSM/GPRS TK-102

Tableaux d alarme sonores

Ressource Site EURIDIS

SOMe2100 MANUEL D UTILISATION. TRANSMETTEUR GSM/GPRS - M-Bus Master D INSTALLATION. Montage sur rail DIN. Notice simplifiée du module SOMe2100

Projet Robot Centaure

Aquastyle accueil. Affichage vidéo. Manuel d installation et d utilisation. BP TRÉMENTINES FRANCE Tél Fax

Module de télémétrie MT-021- Guide de démarrage rapide

CH IV) Courant alternatif Oscilloscope.

GUIDE D UTILISATION. Gestion de compte. à destination des entreprises (Employeurs et Organismes de Formation)

Elle supporte entièrement la gestion de réseau sans fil sous Windows 98SE/ME/2000/XP.

module Introduction aux réseaux DHCP et codage Polytech / 5

SUR MODULE CAMÉRA C38A (OV7620)

Multichronomètre SA10 Présentation générale

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

NovoSIP manuel de mise en service

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide

Ordinateurs, Structure et Applications

Trois types de connexions possibles :

Conception et réalisation d'une pédale MIDI

Enregistreur de données d humidité et de température

ipra*cool v 1.08 guide de l utilisateur ipra*cool v.1-08 Guide de l'utilisateur ipra*cool v

Transcription:

Sommaire Performances Bouton simple Liaison série Sommaire µc ATMEL AVR / ARDUINO 1/37

Analyse des performances ATTENTION la LED embarquée sur la carte est différente suivant les versions Uno et Due pin 13 Ethernet pin 9 Pour analyser les performances de la carte Arduino Uno / Ethernet nous allons : Créer le programme le plus simple possible qui, alternativement, allume et éteint la LED embarquée Brancher successivement sur la pin adéquat Un oscilloscope l analyseur logique ZeroPlus Faire varier les paramètres d analyse pour mettre en évidence des résultats valides Faire varier la technique de programmation pour analyser son influence sur la fréquence de traitement. On reportera les résultats dans le tableau suivant Sommaire µc ATMEL AVR / ARDUINO 2/37

Tableau de résultats Nom du programme État haut µs État bas µs Fréquence oscilloscope Fréquence analyseur V haut V bas Version 1 Version 2 Version 3 Version 4 Version 5 Test horloge 1 Test horloge 2 Sommaire µc ATMEL AVR / ARDUINO 3/37

Programme minimal version 1 void setup() { pinmode(13,output); // Initialisation de la pin 13 void loop() { digitalwrite(13, HIGH); // Allumage de la pin 13 digitalwrite(13, LOW); // Extinction de la pin 13 Le programme doit faire 874 octets (à vérifier lors de l envoi à la carte) On va avoir une alternance de 1 / 0 sur la pin 13. Le clignotement de la LED associée sera imperceptible à l œil car la vitesse de clignotement est très supérieure au temps de persistance rétinienne. Sommaire µc ATMEL AVR / ARDUINO 4/37

Analyseur logique Écran de l analyseur "Logic Cube" Lancement acquisition Zoom +/- Taille buffer Zone du zoom Fréquence Règle Nombre de mesures Signal complet Sommaire µc ATMEL AVR / ARDUINO 5/37

Analyseur logique Connexion Connecter la pince A2 à la pin 13 Connecter une des deux pinces noires sur une pin GND Lancer le programme d analyse Régler la taille du buffer sur 2 K Régler la fréquence d échantillonnage sur 1 MHz Lancer l analyse Agir sur le zoom pour voir en détail le signal A l aide du menu Tools>Customize>Onglet «Common Setup»>Cadre «Waveform Display Mode» cocher «Sampling Site Display» Combien ya t-il de mesures par état haut / bas? Quelle est la durée d une mesure? Quelle est la durée d un état haut / bas? Quelle est la période et quelle est la fréquence? Sommaire µc ATMEL AVR / ARDUINO 6/37

Analyseur logique A l aide du menu Tools>Customize> afficher la durée sur le signal et le nombre d échantillons sur la règle Passer la fréquence d échantillonnage successivement à 10 MHz puis 200 MHz. Ajuster le buffer pour avoir au moins deux périodes. Observations? À 200 MHz reporter les mesures dans le tableau de résultats En déduire le temps nécessaire pour revenir en début de boucle loop Sommaire µc ATMEL AVR / ARDUINO 7/37

Oscilloscope Connexion sur la voie 1 Connecter le + à la pin 13 Connecter le à une pin GND Lancer l acquisition Faire varier la fréquence horizontale afin de stabiliser l image et d avoir au moins 2 périodes à l écran Faire varier l échelle verticale afin d avoir une différence entre l état haut et l état bas sur 5 divisions Quelle est l allure du signal? Quelles sont les tensions maxi / mini? Quelle est la fréquence? Quelle est la période? Quel sont les durées des états haut / bas? Comparer avec les résultats obtenus avec l'analyseur logique Sommaire µc ATMEL AVR / ARDUINO 8/37

Oscilloscope Sommaire µc ATMEL AVR / ARDUINO 9/37

Programme version 2 #define ledpin 13 // Remarque : il n y a pas de «;» en fin de ligne void setup() { pinmode(ledpin, OUTPUT); // Initialisation de la pin ledpin (13) en sortie void loop() { digitalwrite(ledpin, HIGH); // Allumage de la pin ledpin (13) digitalwrite(ledpin, LOW); // Extinction de la pin ledpin (13) Lorsque le programme va être transféré au µc le mot ledpin sera remplacé par 13. Ce n est pas une affectation mémoire Reporter les mesures dans le tableau de résultats Est-ce que les performances sont modifiées? Sommaire µc ATMEL AVR / ARDUINO 10/37

Programme version 3 const byte ledpin=13; // Initialisation en mémoire de la variable ledpin à 13 void setup() { pinmode(ledpin, OUTPUT); // Initialisation de la pin ledpin (13) en sortie void loop() { digitalwrite(ledpin, HIGH); // Allumage de la pin ledpin (13) digitalwrite(ledpin, LOW); // Extinction de la pin ledpin (13) Cette fois le programme va lire le n de la pin dans la variable ledpin Reporter les mesures dans le tableau de résultats Est-ce que les performances sont modifiées? Sommaire µc ATMEL AVR / ARDUINO 11/37

Séquence d'initialisation identique Programme version 4 void loop() { digitalwrite(ledpin, HIGH); // Allumage de la pin ledpin (13) digitalwrite(ledpin, LOW); // Extinction de la pin ledpin (13) digitalwrite(ledpin, HIGH); digitalwrite(ledpin, LOW); digitalwrite(ledpin, HIGH); digitalwrite(ledpin, LOW); Cette fois le programme va exécuter trois cycles d'allumage / extinction Reporter les mesures dans le tableau de résultats Est-ce que les performances sont modifiées? Sommaire µc ATMEL AVR / ARDUINO 12/37

Programme version 5 Séquence d'initialisation identique void loop() { for ( int i; i<6; i++ ) { if ( i % 2 ) { digitalwrite(ledpin, HIGH); else { digitalwrite(ledpin, LOW); Cette fois le programme va exécuter trois cycles d'allumage / extinction par calcul Reporter les mesures dans le tableau de résultats Est-ce que les performances sont modifiées? Sommaire µc ATMEL AVR / ARDUINO 13/37

Test de l horloge 1 const byte ledpin=13; // Initialisation de la variable ledpin void setup() { pinmode(ledpin, OUTPUT); // Initialisation de la pin ledpin (13) en sortie void loop() { digitalwrite(ledpin, HIGH); // Allumage de la pin ledpin (13) delaymicroseconds(10); // Attendre 10µs digitalwrite(ledpin, LOW); // Extinction de la pin ledpin (13) delaymicroseconds(5); // Attendre 5µs Reporter les mesures dans le tableau précédent Les durées attendues sont-elles correctes? Sommaire µc ATMEL AVR / ARDUINO 14/37

Test de l horloge 2 const byte ledpin = 13; // Initialisation de la variable ledpin int delai = 10; // Initialisation de la variable delai void setup() { pinmode(ledpin, OUTPUT); // Initialisation de la pin ledpin (13) en sortie void loop() { digitalwrite(ledpin, HIGH); // Allumage de la pin ledpin (13) delaymicroseconds(delai); // Attendre delai (10µs) digitalwrite(ledpin, LOW); // Extinction de la pin ledpin (13) delaymicroseconds(delai/2); // Attendre delai / 2 (5µs) Cette fois le délai d attente est stockée en mémoire. Le second est calculé. Reporter les mesures dans le tableau précédent Les durées attendues sont-elles correctes? Sommaire µc ATMEL AVR / ARDUINO 15/37

Bouton poussoir simple Le bouton poussoir est un des éléments de base de l interface homme machine (IHM) permettant d introduire une donnée à deux états Poussé - relâché Sommaire µc ATMEL AVR / ARDUINO 16/37

Sur une carte Arduino on souhaite allumer une LED lors de l appui sur un bouton poussoir. Il y a plusieurs contraintes : Bouton poussoir simple Le bouton est normalement ouvert (NO) À l état haut la consommation est nulle, à l'état bas elle doit être inférieure à 1 ma Au repos le bouton n est pas sous tension Le bouton poussoir agit sur l entrée digitale D2 La LED est connectée à la sortie digitale 13 (LED embarquée) En faisant l hypothèse réaliste que l impédance de la carte est infinie, à partir du schéma suivant et en vous aidant des question ci après, montrer que toutes les conditions précédentes sont remplies. Quand le switch SW1 est ouvert Quelle est la DDP entre GND et D2 Quelle est la DDP entre 5V et D2 Quelle est l intensité dans R1 Même question quand SW1 est fermé Sommaire µc ATMEL AVR / ARDUINO 17/37

Schéma Sommaire µc ATMEL AVR / ARDUINO 18/37

Bread Board Réalisation Sommaire µc ATMEL AVR / ARDUINO 19/37

Programme const byte ledpin = 13; // Initialisation en mémoire de la variable ledpin à 13 const byte sw1pin = 2; // Initialisation en mémoire de la variable sw1pin à 2 void setup() { pinmode(ledpin, OUTPUT); // Initialisation de la pin ledpin (13) en sortie pinmode(sw1pin, INPUT); // Initialisation de la pin sw1pin (2) en entrée void loop() { if ( digitalread(sw1pin) == HIGH ) { else { digitalwrite(ledpin, LOW); // Allumage de la pin ledpin (13) digitalwrite(ledpin, HIGH); // Extinction de la pin ledpin (13) Sommaire µc ATMEL AVR / ARDUINO 20/37

Mesures Une fois que votre montage fonctionne mesurer : La tension entre D2 et GND lorsque le bouton est Au repos Appuyé Pour la LED, lorsque le bouton est appuyé mesurer : La tension à ses bornes Le courant qui la traverse Sommaire µc ATMEL AVR / ARDUINO 21/37

Rebond Lors de l'appui sur un bouton on constate un rebond dû à l'établissement mécanique du contact. Ci après des exemples de traces à l'oscilloscope : Quel est l'inconvénient de ces rebonds? Au bout de combien de temps le contact est-il définitivement établi? Sommaire µc ATMEL AVR / ARDUINO 22/37

TP bouton résistif À partir du montage de bouton résistif préalablement réalisé mettre en évidence le phénomène de rebond. On utilisera la fonction trigger de l'oscilloscope, le déclenchement de l'analyse se faisant sur un front descendant (passage de 5v à 0v) En moyenne combien avez-vous de rebonds à chaque appui Toujours en moyenne quelle est la durée pour obtenir un changement d'état franc Archiver vos copies d'écran sur une clé USB Sommaire µc ATMEL AVR / ARDUINO 23/37

Anti rebond Pour supprimer ce phénomène on place un condensateur aux bornes du switch. Sur les oscillogrammes suivants on a à gauche un bouton résistif déjà étudié et à droite un bouton RC. Comment expliquer ces différences de comportement? Sommaire µc ATMEL AVR / ARDUINO 24/37

Anti rebond En fonction des valeurs du condensateur on obtient des comportements +/- acceptables À gauche on utilise un condensateur de 1nF et à droite 150nF. Le comportement est correct Sommaire µc ATMEL AVR / ARDUINO 25/37

TP bouton anti rebond Une fois que vous avez visualisé le fonctionnement du bouton résistif placer un condensateur entre les bornes du switch et visualiser le comportement pour les valeurs de C suivantes : 1 nf 10 nf 150 nf 1.5 µf Pour les deux dernières valeurs de C, lorsque vous relâchez le bouton, au bout de combien de temps la tension atteint 80% de la tension nominale? Archiver vos copies d'écran sur une clé USB Sommaire µc ATMEL AVR / ARDUINO 26/37

Liaison série asynchrone Une liaison série consiste à envoyer à une vitesse et un format connus de l'émetteur et du récepteur des bits tels quels sur une paire (signal / GND) généralement cuivre. Le récepteur possède une horloge interne dont la fréquence est aussi proche que possible de celle de l'émetteur mais indépendante de celle-ci. La liaison est asynchrone. Au repos la ligne est à l'état 1 L'émetteur signale un début d'octet par un bit de start (passage à l'état 0) et une fin d'octet par un bit de stop (passage à l'état 1). S'il n'y a plus d'octet à transmettre la ligne reste au repos à l'état 1. S'il y a encore des octets à transmettre la ligne change d'état au moment de l'émission du bit de start. Les bits sont envoyés LSB first Il n'y a pas d'accusé de réception envoyé par le destinataire. L'émetteur ne peut pas savoir si ses données ont été correctement acheminées Sommaire µc ATMEL AVR / ARDUINO 27/37

Contrôle de parité Optionnellement l'émetteur peut ajouter un bit de parité. Le bit de parité paire est égal à 0 si la somme des bits de données est paire et à 1 dans le cas contraire. Exemple : 10100010 : 3 bits à 1 bit de parité = 1 11100010 : 4 bits à 1 bit de parité = 0 La donnée transmise sera : 110100010 et 011100010 donnant toujours un nombre de bits à 1 pair Le récepteur va vérifier que le nombre de bits à 1 transmis est bien pair. Si l'un des bits change d'état le récepteur va détecter une erreur de parité. La logique inverse existe, c'est la parité impaire. Sommaire µc ATMEL AVR / ARDUINO 28/37

Liaison série asynchrone Pour définir complètement une liaison série asynchrone il faut indiquer : Nombre de bits de données : généralement 8 Parité : aucune (none), paire (even) ou impaire (odd) Nombre de bits de stop : 1 ou 2 Vitesse en bits par seconde (bauds). Les vitesses courantes sont : 1200 2400 4800 9600 19200 38400 57600 115200 Une définition courante serait 8,n,1,9600 Sommaire µc ATMEL AVR / ARDUINO 29/37

Chronogramme Sommaire µc ATMEL AVR / ARDUINO 30/37

Liaison série asynchrone Sur le chronogramme précédent on voit : Le bit time environ 105 µs soit environ 9524 bits par seconde Le bit de start est bien 0 Il n'y a qu'un bit de stop qui est bien à 1 Il n'y a pas de bit de parité La donnée est 8 bits soit : 00110111 = 55 = 0x37 = le caractère ASCII "7" Les bits ont bien été transmis en partant de la gauche (les trois 1 en premier soit 315 µs) La liaison est du type 8,n,1,9600 Sommaire µc ATMEL AVR / ARDUINO 31/37

Liaison série entre Arduino Le but du montage est de transmettre des informations via une liaison série entre deux cartes Arduino. Une première carte émettrice enverra des données à une seconde carte réceptrice qui les enverra à son tour sur l'écran d'un PC pour visualisation (via câble USB). Pour chacune des cartes la réception se fera sur la pin 2 et l'émission sur la pin 3, il faudra donc faire un câblage croisé 2 3 et 3 2 sans oublier de relier les pins GND de chacune des cartes Le câblage passera par une bread board afin de pouvoir y connecter un analyseur La transmission sera au format 8,n,1,9600 On enverra la chaine de caractères "7 " "7"=55 10 =37 16 =00110111 " "=32 10 =20 16 =00100000 suivi d'un caractère ASCII imprimable (de 33 10 à 126 10 inclus) généré (pseudo) aléatoirement. 200 µs avant chaque envoi on passera la pin 9 à l'état haut, puis à l'état bas dés la fin de l'envoi. On se servira de cette pin comme trigger. Sommaire µc ATMEL AVR / ARDUINO 32/37

Séquence d'initialisation commune #include <SoftwareSerial.h> #define RxPin 2 #define TxPin 3 #define ledpin 9 SoftwareSerial maliaison = SoftwareSerial(RxPin,TxPin); Void setup() { pinmode(ledpin, OUTPUT); maliaison.begin(9600); Serial.begin(9600); delay(1000); Serial.println("Setup OK"); Le code parle de lui-même... Sommaire µc ATMEL AVR / ARDUINO 33/37

Émission void loop() { byte hazard = random(33, 127); digitalwrite(ledpin, HIGH); delaymicroseconds(200); // Attendre 200 µs avant d'envoyer maliaison.print("7 "); maliaison.write(hazard); maliaison.println(""); digitalwrite(ledpin, LOW); delay(200); // Attendre 200 ms avant un autre cycle Le code parle toujours de lui-même... Sommaire µc ATMEL AVR / ARDUINO 34/37

Réception void loop() { byte curoct = maliaison.read(); if ( curoct < 127 ) /* Si on filtre les caractères de code ASCII <33 on perd le CR/LF */ { Serial.write( curoct ); De plus en plus simple... Câbler Ouvrir le moniteur série du récepteur et constater Sommaire µc ATMEL AVR / ARDUINO 35/37

Analyse Reprendre la même expérience mais en n'envoyant cette fois que le caractère 9 "9" = 57 10 = 39 16 = 00111001 Analyser le signal à : L'oscilloscope L'analyseur logique Faire des copies d'écrans Justifier le paramétrage de la transmission Montrer le codage des données Sommaire µc ATMEL AVR / ARDUINO 36/37