Serial (Moniteur de Série) – L’Essentiel

Arduino, Domotique, RobotiquePas de commentaire

Vous êtes ici :, Domotique, RobotiqueSerial (Moniteur de Série) – L’Essentiel

Le Serial (série en français), est la méthode de communication par défaut de l’Arduino. C’est-à-dire que c’est par ce biais que les données circulent.

Exemple : lorsque vous téléversez votre programme dans l’Arduino, c’est du Serial (avec l’aide du câble USB).

Vous pouvez voir en temps réel les transmissions de données grâces aux leds TX et RX de votre Arduino :

  • Quand TX clignote => L’Arduino transmet (envoie) des données.
  • Quand RX clignote => L’Arduino reçoit des données.

Essayez de téléverser un programme dans votre Arduino et observez RX clignoter.

Dans ce guide vous allez apprendre à vous servir du moniteur de série qui va vous permettre de communiquer à tout moment avec l’Arduino.

Qu’est ce qu’un moniteur de série ?

Ouvrez l’IDE Arduino et cliquez sur la loupe en haut à droite (un Arduino doit être branché).

Une fenêtre apparait :

 

En rouge il s’agit d’une entrée, c’est à dire que vous pouvez écrire ce que vous voulez et l’envoyer à l’Arduino. Cependant, si vous ne paramétrez pas votre Arduino pour réagir en fonction, il ne se passera pas grand chose.

En bleu il s’agit de la sortie, vous pouvez indiquer à votre Arduino d’afficher des données en sortie, très utile pour le debugging.

En jaune il s’agit d’un menu déroulant vous permettant de gérer la vitesse de transmission de données. C’est en bits par secondes, en général on laisse 9600 qui est une vitesse raisonnable.

 

Coté programmation

C’est très simple, tout ce que vous avez à faire c’est rajouter une ligne de code dans le void setup() afin d’indiquer que vous souhaitez utiliser le serial en précisant la vitesse de données.

Comme ceci :

void setup() {
Serial.begin(9600);
}

void loop() {

}

Serial.begin(9600) indique que nous initions la communication serial.

 

Le Serial en mode « sortie »

Juste en dessous de cette ligne écrivez Serial.println("Hello World!");

Téléversez vers l’Arduino et ouvrez le Moniteur de série, vous devriez avoir ceci :

L’Arduino écrit dans le serial ce que vous lui avez demandé d’écrire.

Comme dit plus haut vous pouvez utiliser ceci pour faire du debugging, par exemple :

Vous souhaitez relever la température d’une pièce toutes les 5 secs et l’écrire dans un fichier Excel. Avant de commencer à l’écrire sur Excel, il convient de s’assurer que l’Arduino arrive bien à récupérer la température. Pour ce faire il suffit de mettre un Serial.println(votreValeur); quand vous avez vos données.

NB : J’utilise Serial.println(); mais j’aurai très bien pu utiliser Serial.print(); la différence réside dans le fait que Serial.println(); saute une ligne.

 

Le Serial en mode « entrée »

On peut donner des instructions à l’Arduino en temps réel grâce au serial. Voici comment procéder :

Reprenez le code de tout à l’heure et ajoutez y ceci :

void setup() {
  Serial.begin(9600);

}

void loop() {

  while (Serial.available() > 0) {
    
    if (Serial.read()-'0' == 1) {
      Serial.print("Vous avez appuyé sur 1 !");
      
    }
    
  }

}

 

Téléversez et ouvrez le moniteur de série. Entrez 1 dans le moniteur et envoyez. Vous devriez recevoir le message « Vous avez appuyé sur 1 ! ».

Comment ça marche ?

Le while (Serial.available() > 0) est une boucle dans laquelle on rentre si l’Arduino reçoit des données dans le Serial (0 = rien, donc à partir du moment où c’est > 0 on a des données).

Le if (Serial.read()-'0' == 1) est une condition qui n’est validée que si la donnée reçue est 1. (On soustrait le caractère ‘0’ au Serial.read() pour avoir des données lisibles par l’être humain).

Le résultat ici, n’est pas exceptionnel, mais maintenant que vous savez comment interagir avec votre Arduino, un nombre infini de possibilités vous est offert !

Nous utilisons ici le moniteur de série pour envoyer des données à l’Arduino mais comme dit plus haut, l’Arduino peut communiquer avec d’autres périphériques et donc être contrôlé ou controller ces mêmes périphériques. Par exemple un Raspberry Pi, les relations Raspberry/Arduino sont communes et très efficaces dans la domotique, robotique…. Ou bien encore, l’image de l’article est un écran LCD, on y affiche des informations par le biais du Serial !

À propos de l'auteur

Laisser un commentaire

Haut