Académique Documents
Professionnel Documents
Culture Documents
et Numériques
Savoirs Associés :
2.2.2 Adressage physique et logique d’un composant sur un réseau
2.3.3 Utilisation de librairies et paramétrage de caractéristiques
3.1.2 Interfaçage de composants.
3.1.3 Interconnexion des fonctions distribuées.
2.1.7 Multiplexage d’une information et codage d’une transmission
SEQUENCE 5
CI3 – Comment circule l’information au sein d’un système (SEQ5) ?
TP Découverte SIN
- Etude de la liaison série UART -
NetAtmo : La Station Météo Connectée ETAPE 1 P. 1/17
PRÉSENTATION DU PROJET :
On vous demande d'étudier le concept de gestion distante du module NetAtmo. Celui-ci doit
pouvoir communiquer directement avec une application mobile.
Il nous faut donc dans un premier temps comprendre ce qu'est une communication en série, et ce
par une série d'expériences et de simulations pour ensuite mettre en œuvre le module.
Se pose alors plusieurs problématiques auxquelles nous allons répondre à travers différents TP
mettant en œuvre le principe de la communication interne des modules puis entre systèmes
externes :
Comment transmettre des informations sur une liaison en série entre les modules d’un
même système ?
Comment interpréter et mettre en œuvre un protocole de communication entre deux
systèmes distants ?
UNO
AREF
13
PB5/SCK A
12
PB4/MISO
RESET 11
~ PB3/MOSI/OC2A B
10
~ PB2/SS/OC1B
9
~ PB1/OC1A C
8
PB0/ICP1/CLKO
D
7
PD7/AIN1
6
A0 ~
PD6/AIN0/OC0A
PC0/ADC0 5
A1 ~
PD5/T1/OC0B
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~
PD3/INT1/OC2B
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1 TXD
A5 TX PD1/TXD RXD
PC5/ADC5/SCL 0
RX PD0/RXD
TXD
ARDUINO UNO R3
RTS
CTS
communication.DSN
Broche TXD: signal de communication Série (en sortie) pour la transmission des informations
communication.ino
Réalisez le schéma sous PROTEUS ISIS et écrire le programme sur ARDUINO. Enregistrez le
schéma et le programme dans le dossier M:\Travail\...\CI3-Comment circule …\TP\ETAPE1-
Apprentissage\Simulation\
QUESTION 1 : Compilez puis chargez le programme .hex dans le module Arduino UNO sous ISIS.
Lancez ensuite la simulation et réglez l'oscilloscope afin d'obtenir la visualisation suivante du signal TxD:
Complétez les valeurs BINAIRES lues dans la Trame de DONNÉE et recherchez à partir de
la table ASCII (cf document ressource) le caractère correspondant :
.......
Que constatez-vous ? Analysez dans quel ordre est envoyée un octet (octets D7 à D0) sur
une liaison Série UART.
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
Complétez les informations transmises lors de l'envoie d'un caractère codé sur un octet :
QUESTION 3 : Modifier votre programme Arduino pour envoyer cette fois-ci non plus un
Caractère mais une chaine de caractère : "UN" Serial.print("UN");
TRIGGER sur 25
tracez le chronogramme de TxD en identifiant les bits à 1 (5V) et les bits à 0 (0V) :
Quel est le premier caractère transmis ? Combien de bits START et STOP seront utilisés
si l'on envoie le message "STI2D-SIN" en série UART ?
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
CONCLUSION : Quelle est la condition indispensable dans une liaison ASYNCHRONE entre
un émetteur et un récepteur pour que les messages soient lisibles ? ("Baud
Rate" correspond au paramètre vitesse de transmission, exprimé en bit/sec)
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
Modifiez le programme afin d'envoyer le caractère 'U' à 9600 bauds. Vérifiez que le
caractère s'affiche bien dans le terminal de débogage.
Ajouter l'envoie du caractère '\r' après l'envoi du caractère 'U'. Le caractère '\' (slache) est
obtenu est appuyant simultanément sur la touche Alt Gr et 8 :
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
QUESTION 7 : Retrouvez sur la trame de votre oscilloscope le code ASCII du caractère '\r'.
A partir de la table ASCII en annexe, donnez le nom, la valeur Hexadécimale et le rôle de ce
caractère de contrôle :
Hexa : $ .............
Supprimer l'envoie du caractère '\r'. Modifiez ensuite le schéma Proteus ISIS en ajoutant
le module COMPIM. Relier la broche TXD sur le signal TxD de la broche 1 d'Arduino et
paramétrez le module ainsi (double-click ou click Droit + Editer propriétés) :
UNO
A
microcontrolandos.blogspot.com
C
AREF D
13
PB5/SCK
PB4/MISO
12 DEBOGAGE
RESET 11
~ PB3/MOSI/OC2A RXD
10
~ PB2/SS/OC1B
9
~ PB1/OC1A TXD
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
7 RTS
ANALOG IN
PD7/AIN1
DIGITAL (~PWM)
6
A0 ~
PD6/AIN0/OC0A CTS
PC0/ADC0 5
A1 PD5/T1/OC0B
~
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~
PD3/INT1/OC2B
PC3/ADC3 2
A4
PC4/ADC4/SDA
PD2/INT0
1 TXD P1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD 1
DCD
6
DSR
ARDUINO UNO R3 2
RXD
7
RTS
3
TXD
8
CTS
4
DTR
9
RI
ERROR
COMPIM
COM4, 9600 bauds, 8 bits de données, 1 bit de STOP, pas de parité, pas de controle
Connectez le logiciel TERMINAL au port COM4 et vérifiez que le caractère 'U' s'affiche bien
dans le terminal de réception :
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
QUESTION 9 : Retrouvez sur la trame de votre oscilloscope le code ASCII du caractère '\t'.
A partir de la table ASCII en annexe, donnez le nom, la valeur Hexadécimale et le rôle de ce
caractère de contrôle :
Hexa : $ .............
Connectez le logiciel TERMINAL au port COM4 et vérifiez que le caractère 'U' s'affiche bien
dans le terminal de réception.
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
CONCLUSION :
Il est donc possible d'envoyer des caractères de contrôle, non visibles, en série avec Arduino.
Soit nous envoyons directement la valeur DECimale, HEXAdécimale ou BINaire, soit nous
passons par la commande \<x> en remplaçant <x> par un caractère bien spécifique
À l'origine utilisé pour permettre de laisser une absence (un gap) sur les bandes de
papier pour modification ultérieure. Plus tard utilisé pour combler la suite d'un
code nécessitant au terminal un temps de traitement (par exemple le temps d'un
^@ 00 0x00 NUL ␀ Null \0 retour chariot
ou d'un retour à la ligne sur un terminal imprimant). Il est maintenant souvent
utilisé comme terminateur de chaîne de caractères, spécialement dans le langage de
programmation C.
À l'origine utilisé pour faire tinter la cloche du terminal. Ensuite utilisé pour
produire un court signal sonore (beep) sur des systèmes n'étant pas dotés d'un
^G 07 0x07 BEL ␇ Bell \a timbre physique. Par la suite, en mode silencieux, l'avertisseur peut attirer
l'attention sous forme de flash en activant et désactivant l'inverse video (visual bell
/ cloche visuelle), le temps d'un éclair.
Déplacement du curseur d'une position vers la gauche. En entrée, cela peut détruire
le caractère précédent (à gauche, le sens d'écriture étant de gauche à droite). En
sortie, alors qu'avec les premières technologies, une caractère imprimé ne pouvait
plus être effacé, le retour arrière (backspace) était parfois utilisé pour générer des
caractères accentués en ASCII. Par exemple, à pouvait être imprimé en utilisant la
^H 08 0x08 BS ␈ Backspace \b
séquence des trois multiplets ASCII a BS ` (0x61 0x08 0x60). Cet usage est
maintenant désuet et généralement n'est plus pris en charge. Pour permettre une
levée d'ambiguïté entre les deux usages potentiels du backspace', le code de
contrôle caractère d'annulation (cancel character) a été intégré dans le jeu de
contrôle C1.
Tabulation \t
^I 09 0x09 HT Positionne le caractère suivant dans une colonne de type tab stop (tabulation).
LECTURE DE CARACTERES
B
microcontrolandos.blogspot.com
AREF D
13
PB5/SCK
PB4/MISO
12 DEBOGAGE
RESET 11
~ PB3/MOSI/OC2A RXD
10
~ PB2/SS/OC1B
9
~ PB1/OC1A TXD
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
7 RTS
ANALOG IN
PD7/AIN1
DIGITAL (~PWM)
6
A0 ~
PD6/AIN0/OC0A CTS
PC0/ADC0 5
A1 ~
PD5/T1/OC0B
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~
PD3/INT1/OC2B
PC3/ADC3 2
A4
PC4/ADC4/SDA
PD2/INT0
1 TXD P1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD 1
DCD
6
RXD DSR
ARDUINO UNO R3 2
RXD
7
RTS
3
TXD
8
CTS
4
DTR
9
RI
ERROR
COMPIM
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
Modifiez le schéma de simulation sous PROTEUS ISIS en connectant une LED jaune sur
la broche 7 de l'Arduino UNO :
QUESTION 16 : Cliquez sur le bouton M1. Quel changement s'est opéré sur le simulateur
ISIS ?
………………....………………………………………………..………………....………………
QUESTION 17 : Cliquez sur le bouton M2. Quel changement s'est opéré sur le simulateur
ISIS ?
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
QUESTION 20 : Pourquoi doit-on passer par une variable de type String (chaine de
caractères) pour interpréter les commandes envoyées par le logiciel
TERMINAL ?
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
PROTOTYPAGE
Moniteur série
Cliquez sur M1 et vérifiez que la LED s’allume sur votre schéma de simulation :
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
Corrigez la commande M2 en remettant « OFF », puis cliquez ensuite sur M2. Que
constatez-vous ?
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
………………....………………………………………………..………………....………………
STI2D SIN © JB VUILLAUME