Guide officiel · EB-01

Construisez. Câblez. Programmez.

Le guide complet du robot pédagogique EDU BOT 1.0 : assemblage mécanique, branchements électroniques, calibration et deux programmes Arduino prêts à téléverser.

Robot EDU BOT 1.0 EDU BOT
Arduino UNO · L298N · HC-SR04 · TCRT5000Made in Morocco
45 étapesMontage mécanique structuré
2 modesSuiveur de ligne et éviteur
Arduino UNOProgrammation débutant–intermédiaire
12 ans et +Formation et initiation
01 · Présentation

Un robot pédagogique complet

EDU BOT 1.0 est conçu pour apprendre la mécanique, l’électronique et la programmation à travers un projet concret et évolutif.

Ce que le robot sait faire

  • Suivre une ligne noire sur un sol clair.
  • Détecter un obstacle et choisir une direction libre.
  • Contrôler deux moteurs DC avec le driver L298N.
  • Orienter le capteur ultrason avec un servomoteur.
  • Afficher son état sur un écran LCD 16×2 I2C.

Informations produit

ProduitEDU BOT 1.0 — EB-01
ConceptionESS Technologies
UsagePédagogique, formation, initiation à la robotique
NiveauDébutant à intermédiaire
Âge recommandé12 ans et plus
⚠️
Avant de commencer : travaillez sur une surface propre, ne forcez jamais les pièces et ne serrez définitivement les vis qu’après avoir vérifié l’alignement de l’ensemble.
02 · Inventaire

Composants du kit EDU BOT

Vérifiez le contenu du kit avant de commencer. Les couleurs ou la forme de certaines petites pièces peuvent varier selon la série.

DésignationQuantité
Carte Arduino UNO R3 + câble1
LED 5 mm rouge10
LED 5 mm verte10
LED 5 mm jaune10
Résistance 220 Ω10
Résistance 1 kΩ5
Résistance 10 kΩ5
Bouton poussoir 4 broches5
Potentiomètre B10K1
Photorésistance LDR1
Buzzer actif 5V1
Lot 10 fils Dupont M-M 20 cm1
Lot 10 fils Dupont M-F 20 cm1
Lot 10 fils Dupont F-F 20 cm1
Connecteur Jack DC mâle 5.5×2.11
Connecteur Jack DC femelle 5.5×2.11
Moteur DC TT2
Roue 65 mm2
Servomoteur SG90 (180°)1
Driver L298N1
Capteur ultrason HC-SR041
Capteur de ligne TCRT50002
Écran LCD 16×2 + I2C1
Châssis principal EB-11
Support ultrason mini1
Visserie / entretoises diverses1 lot
Porte-batteries 186501
Batterie Li-ion 186502
Breadboard 400 points1
03 · Assemblage

Montage mécanique en 45 étapes

Les étapes sont regroupées par phase. Ouvrez uniquement la phase sur laquelle vous travaillez pour garder la page claire.

Phase 1 Structure et supports moteurs 6 étapes
1

Insérez le premier support moteur dans les encoches prévues sur le côté droit du châssis. Vérifiez qu’il est bien perpendiculaire à la base.

2

Répétez l’opération avec le deuxième support moteur du côté gauche. Les deux supports doivent être parfaitement alignés face à face.

3

Prenez la platine de fixation rectangulaire et placez-la horizontalement entre les deux supports moteurs, à l’avant du robot.

4

Emboîtez la platine de fixation dans les fentes horizontales des supports moteurs afin de rigidifier l’ensemble.

5

Insérez les deux vis par le haut, à travers la platine de fixation et le châssis.

6

Retournez délicatement le robot, placez les écrous sous le châssis puis serrez fermement.

Phase 2 Moteurs et pont H 12 étapes
7

Approchez le premier moteur TT du support latéral déjà monté.

8

Alignez les deux trous de montage du moteur avec les perçages du support moteur vertical.

9

Vérifiez que le moteur est bien plaqué contre la paroi. Les têtes de vis doivent être du côté du corps jaune du moteur.

10

Placez les deux écrous sur les vis dépassant à l’intérieur de la structure.

11

Serrez les écrous afin de fixer solidement le moteur.

12

Installez le second moteur de la même manière puis vérifiez que les deux roues tournent librement.

13

Positionnez le support du pont H au-dessus des supports moteurs, à l’emplacement prévu.

14

Préparez le module de contrôle L298N pour sa fixation sur le support vertical.

15

Placez le module L298N contre son support puis insérez la première vis de fixation par l’avant.

16

Insérez les trois autres vis afin que le module soit parfaitement stable.

17

Retournez l’ensemble et fixez les petits écrous à l’arrière du support.

18

Emboîtez le support complet, avec le L298N fixé, dans les encoches prévues sur la structure du robot.

Phase 3 Roue folle et Arduino 8 étapes
19

Retournez le châssis pour accéder à sa face inférieure et placez la roue folle sur la partie avant.

20

Insérez une première vis à travers la platine métallique de la roue et le châssis en plexiglas.

21

Insérez la seconde vis pour stabiliser la roue folle.

22

Serrez les écrous par le dessus du châssis. Le robot possède maintenant ses trois points d’appui.

23

Posez le robot sur une surface plane et vérifiez qu’il repose correctement sur ses trois roues.

24

Placez la carte Arduino Uno sur le châssis, à l’arrière du pont H, avec les ports USB et d’alimentation orientés vers la gauche.

25

Insérez les vis de fixation dans les trous prévus sur la carte Arduino.

26

Retournez délicatement le châssis puis placez et serrez les écrous sur les vis de l’Arduino.

Phase 4 Servomoteur et capteur ultrason 7 étapes
27

Placez le servomoteur SG90 dans l’ouverture rectangulaire située à l’avant du châssis.

28

Insérez les vis de fixation dans les oreilles du servomoteur afin de le solidariser avec le châssis.

29

Fixez le servomoteur avec ses deux vis latérales sans bloquer son axe.

30

Insérez le capteur HC-SR04 dans son support en plexiglas en alignant les deux transducteurs avec les ouvertures.

31

Insérez les petites vis à travers le circuit du capteur et son support.

32

Placez puis serrez les petits écrous à l’arrière afin de maintenir le capteur.

33

Emboîtez le support du capteur ultrason sur le palonnier du servomoteur, à l’avant du robot.

Phase 5 Alimentation et écran LCD 7 étapes
34

Placez le porte-batteries sur le châssis et alignez ses trous avec les perçages prévus.

35

Insérez les vis de fixation depuis l’intérieur du porte-batteries.

36

Serrez les vis dans les écrous afin d’immobiliser correctement le porte-batteries.

37

Présentez l’écran LCD face à son support en plexiglas dédié.

38

Alignez les quatre trous de l’écran avec ceux du support puis insérez les vis par l’avant.

39

Placez les écrous à l’arrière du circuit de l’écran et serrez-les sans forcer.

40

Emboîtez le support LCD dans les encoches prévues en haut de la structure centrale, au-dessus du pont H.

Phase 6 Capteurs de ligne 2 étapes
41

Fixez les vis servant au réglage de hauteur des supports des capteurs infrarouges sous le châssis.

42

Utilisez les écrous pour maintenir chaque carte TCRT5000 entre ses deux points de fixation.

Phase 7 Supports de LED et vérification finale 3 étapes
43

Insérez les petites équerres en plexiglas en forme de T dans les fentes latérales arrière du châssis.

44

Insérez les supports de LED ou les LED dans les perçages arrière prévus à cet effet.

45

Insérez les LED destinées à l’avant dans les emplacements proches du servomoteur. Les couleurs peuvent varier selon la version du kit.

✓
Montage terminé : vérifiez que les roues tournent librement, que le servo n’est pas bloqué et qu’aucun bord métallique ne touche directement un circuit électronique.
04 · Électronique

Câblage commun aux deux programmes

Le même câblage est utilisé pour les deux modes. Seul le programme téléversé dans l’Arduino change.

⛔
Règle essentielle : ne branchez jamais les moteurs directement sur le 5V de l’Arduino. Tous les GND doivent être reliés ensemble.

Table d’affectation des broches

ÉlémentBroche ArduinoRemarque
L298N — ENAD5PWM, vitesse moteur gauche
L298N — IN1D7Sens moteur gauche
L298N — IN2D8Sens moteur gauche
L298N — ENBD6PWM, vitesse moteur droit
L298N — IN3D9Sens moteur droit
L298N — IN4D10Sens moteur droit
TCRT5000 gauche — DOA0Entrée numérique
TCRT5000 droit — DOA1Entrée numérique
SG90 — signalD3Commande du servomoteur
HC-SR04 — TRIGD12Impulsion ultrason
HC-SR04 — ECHOD11Lecture de l’écho
LCD I2C — SDAA4Bus I2C
LCD I2C — SCLA5Bus I2C

Driver L298N

ENAD5
IN1D7
IN2D8
ENBD6
IN3D9
IN4D10
OUT1 / OUT2Moteur gauche
OUT3 / OUT4Moteur droit

Capteurs TCRT5000

VCC gauche5V
GND gaucheGND
DO gaucheA0
VCC droit5V
GND droitGND
DO droitA1

HC-SR04 et SG90

HC-SR04 VCC5V
HC-SR04 GNDGND
TRIGD12
ECHOD11
SG90 rouge5V
SG90 marron/noirGND
SG90 orange/jauneD3

Écran LCD 16×2 I2C

VCC5V
GNDGND
SDAA4
SCLA5
ℹ️
Cavaliers ENA et ENB : retirez-les avant de relier ENA à D5 et ENB à D6. Le programme pourra alors régler la vitesse des moteurs avec le PWM.
05 · Énergie

Alimentation et mise sous tension

Commencez par une alimentation séparée pour simplifier les tests et éviter les redémarrages de l’Arduino.

Configuration recommandée pour les premiers essais

USB ordinateurAlimente l’Arduino
→
Arduino UNOCapteurs, LCD et logique
+
2× 18650 → L298NAlimente les moteurs
  • Reliez le GND de l’Arduino au GND du L298N.
  • Reliez le positif du porte-batteries à l’entrée VIN/12V du L298N.
  • Reliez le négatif du porte-batteries au GND du L298N.
  • Ne branchez jamais directement les batteries sur la broche 5V de l’Arduino.
  • Utilisez un chargeur adapté aux cellules Li-ion 18650.
⚠️
Le servomoteur peut provoquer des redémarrages si l’alimentation 5V est instable. Si cela arrive, utilisez une alimentation 5V régulée dédiée au servo et reliez son GND au GND commun.
06 · Arduino

Deux programmes prêts à utiliser

Installez la bibliothèque LiquidCrystal_I2C dans Arduino IDE. La bibliothèque Servo est incluse par défaut.

Mode suiveur de ligne

La ligne noire passe entre les deux capteurs lorsque le robot est centré.

  • Aucun capteur sur la ligne : avance.
  • Capteur gauche : corrige à gauche.
  • Capteur droit : corrige à droite.
  • Deux capteurs : arrêt.

Mode éviteur d’obstacles

Le HC-SR04 surveille la distance devant le robot.

  • Obstacle à moins de 25 cm : arrêt.
  • Le robot recule brièvement.
  • Le servo regarde à gauche puis à droite.
  • Le robot choisit le côté le plus dégagé.
EDU_BOT_01_Suiveur_Ligne.ino
/*
  EDU BOT 1.0 - ESS Technologies
  Mode : Suiveur de ligne

  Matériel : Arduino UNO, L298N, 2 moteurs TT,
  2 capteurs TCRT5000 et LCD 16x2 I2C.
*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

// L298N
const byte PIN_ENA = 5;
const byte PIN_IN1 = 7;
const byte PIN_IN2 = 8;
const byte PIN_ENB = 6;
const byte PIN_IN3 = 9;
const byte PIN_IN4 = 10;

// Capteurs de ligne
const byte PIN_CAPTEUR_GAUCHE = A0;
const byte PIN_CAPTEUR_DROIT  = A1;

// LOW sur la majorité des modules. Remplacer par HIGH si nécessaire.
const byte ETAT_LIGNE_DETECTEE = LOW;

// Réglages de vitesse : 0 à 255
const int VITESSE_AVANT  = 150;
const int VITESSE_RAPIDE = 180;
const int VITESSE_LENTE  = 65;

unsigned long dernierAffichage = 0;

void commanderMoteur(byte pinEnable, byte pin1, byte pin2, int vitesse) {
  vitesse = constrain(vitesse, -255, 255);

  if (vitesse > 0) {
    digitalWrite(pin1, HIGH);
    digitalWrite(pin2, LOW);
    analogWrite(pinEnable, vitesse);
  } else if (vitesse < 0) {
    digitalWrite(pin1, LOW);
    digitalWrite(pin2, HIGH);
    analogWrite(pinEnable, -vitesse);
  } else {
    digitalWrite(pin1, LOW);
    digitalWrite(pin2, LOW);
    analogWrite(pinEnable, 0);
  }
}

void commanderRobot(int vitesseGauche, int vitesseDroite) {
  commanderMoteur(PIN_ENA, PIN_IN1, PIN_IN2, vitesseGauche);
  commanderMoteur(PIN_ENB, PIN_IN3, PIN_IN4, vitesseDroite);
}

void avancer()          { commanderRobot(VITESSE_AVANT, VITESSE_AVANT); }
void corrigerAGauche()  { commanderRobot(VITESSE_LENTE, VITESSE_RAPIDE); }
void corrigerADroite()  { commanderRobot(VITESSE_RAPIDE, VITESSE_LENTE); }
void arreterRobot()     { commanderRobot(0, 0); }

void afficherEtat(const char* action, bool gauche, bool droite) {
  if (millis() - dernierAffichage < 120) return;
  dernierAffichage = millis();

  lcd.setCursor(0, 0);
  lcd.print("MODE: LIGNE     ");
  lcd.setCursor(0, 1);
  lcd.print("                ");
  lcd.setCursor(0, 1);
  lcd.print(action);
  lcd.print(" G");
  lcd.print(gauche ? 1 : 0);
  lcd.print(" D");
  lcd.print(droite ? 1 : 0);
}

void setup() {
  pinMode(PIN_ENA, OUTPUT);
  pinMode(PIN_IN1, OUTPUT);
  pinMode(PIN_IN2, OUTPUT);
  pinMode(PIN_ENB, OUTPUT);
  pinMode(PIN_IN3, OUTPUT);
  pinMode(PIN_IN4, OUTPUT);

  pinMode(PIN_CAPTEUR_GAUCHE, INPUT);
  pinMode(PIN_CAPTEUR_DROIT, INPUT);

  arreterRobot();
  Serial.begin(9600);

  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("EDU BOT 1.0");
  lcd.setCursor(0, 1);
  lcd.print("Suiveur ligne");
  delay(2000);
  lcd.clear();
}

void loop() {
  const bool ligneGauche =
    digitalRead(PIN_CAPTEUR_GAUCHE) == ETAT_LIGNE_DETECTEE;
  const bool ligneDroite =
    digitalRead(PIN_CAPTEUR_DROIT) == ETAT_LIGNE_DETECTEE;

  Serial.print("Gauche: ");
  Serial.print(ligneGauche);
  Serial.print(" | Droite: ");
  Serial.println(ligneDroite);

  /*
    Configuration : la ligne passe entre les deux capteurs
    lorsque le robot est correctement centré.
  */
  if (!ligneGauche && !ligneDroite) {
    avancer();
    afficherEtat("AVANCE", ligneGauche, ligneDroite);
  } else if (ligneGauche && !ligneDroite) {
    corrigerAGauche();
    afficherEtat("GAUCHE", ligneGauche, ligneDroite);
  } else if (!ligneGauche && ligneDroite) {
    corrigerADroite();
    afficherEtat("DROITE", ligneGauche, ligneDroite);
  } else {
    arreterRobot();
    afficherEtat("ARRET", ligneGauche, ligneDroite);
  }

  delay(10);
}
↻
Si la logique noir/blanc est inversée, remplacez LOW par HIGH dans ETAT_LIGNE_DETECTEE.
EDU_BOT_01_Eviteur_Obstacles.ino
/*
  EDU BOT 1.0 - ESS Technologies
  Mode : Éviteur d'obstacles

  Matériel : Arduino UNO, L298N, 2 moteurs TT,
  HC-SR04, SG90 et LCD 16x2 I2C.
*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo servoUltrason;

// L298N
const byte PIN_ENA = 5;
const byte PIN_IN1 = 7;
const byte PIN_IN2 = 8;
const byte PIN_ENB = 6;
const byte PIN_IN3 = 9;
const byte PIN_IN4 = 10;

// HC-SR04
const byte PIN_TRIG = 12;
const byte PIN_ECHO = 11;

// SG90
const byte PIN_SERVO = 3;
const int ANGLE_CENTRE = 90;
const int ANGLE_GAUCHE = 150;
const int ANGLE_DROITE = 30;

// Réglages
const int VITESSE_AVANT = 145;
const int VITESSE_RECUL = 130;
const int VITESSE_ROTATION = 150;
const int DISTANCE_OBSTACLE_CM = 25;
const unsigned long DUREE_RECUL_MS = 300;
const unsigned long DUREE_ROTATION_MS = 500;

unsigned long dernierAffichage = 0;

void commanderMoteur(byte pinEnable, byte pin1, byte pin2, int vitesse) {
  vitesse = constrain(vitesse, -255, 255);

  if (vitesse > 0) {
    digitalWrite(pin1, HIGH);
    digitalWrite(pin2, LOW);
    analogWrite(pinEnable, vitesse);
  } else if (vitesse < 0) {
    digitalWrite(pin1, LOW);
    digitalWrite(pin2, HIGH);
    analogWrite(pinEnable, -vitesse);
  } else {
    digitalWrite(pin1, LOW);
    digitalWrite(pin2, LOW);
    analogWrite(pinEnable, 0);
  }
}

void commanderRobot(int vitesseGauche, int vitesseDroite) {
  commanderMoteur(PIN_ENA, PIN_IN1, PIN_IN2, vitesseGauche);
  commanderMoteur(PIN_ENB, PIN_IN3, PIN_IN4, vitesseDroite);
}

void avancer()        { commanderRobot(VITESSE_AVANT, VITESSE_AVANT); }
void reculer()        { commanderRobot(-VITESSE_RECUL, -VITESSE_RECUL); }
void tournerAGauche() { commanderRobot(-VITESSE_ROTATION, VITESSE_ROTATION); }
void tournerADroite() { commanderRobot(VITESSE_ROTATION, -VITESSE_ROTATION); }
void arreterRobot()   { commanderRobot(0, 0); }

long mesurerDistanceCm() {
  digitalWrite(PIN_TRIG, LOW);
  delayMicroseconds(3);
  digitalWrite(PIN_TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(PIN_TRIG, LOW);

  const unsigned long duree = pulseIn(PIN_ECHO, HIGH, 30000UL);
  if (duree == 0) return 400;

  return (long)(duree * 0.0343 / 2.0);
}

long mesurerDistanceMoyenne() {
  long total = 0;
  byte mesuresValides = 0;

  for (byte i = 0; i < 3; i++) {
    const long distance = mesurerDistanceCm();
    if (distance > 1 && distance < 400) {
      total += distance;
      mesuresValides++;
    }
    delay(35);
  }

  return mesuresValides == 0 ? 400 : total / mesuresValides;
}

long regarderDirection(int angle) {
  servoUltrason.write(angle);
  delay(450);
  return mesurerDistanceMoyenne();
}

void afficherEtat(const char* action, long distance) {
  if (millis() - dernierAffichage < 120) return;
  dernierAffichage = millis();

  lcd.setCursor(0, 0);
  lcd.print("MODE: EVITEUR   ");
  lcd.setCursor(0, 1);
  lcd.print("                ");
  lcd.setCursor(0, 1);
  lcd.print(action);
  lcd.print(" ");

  if (distance >= 400) lcd.print("---");
  else lcd.print(distance);

  lcd.print("cm");
}

void eviterObstacle() {
  arreterRobot();
  afficherEtat("OBSTACLE", mesurerDistanceCm());
  delay(200);

  reculer();
  afficherEtat("RECULE", 0);
  delay(DUREE_RECUL_MS);
  arreterRobot();
  delay(150);

  const long distanceGauche = regarderDirection(ANGLE_GAUCHE);
  afficherEtat("GAUCHE", distanceGauche);
  delay(150);

  const long distanceDroite = regarderDirection(ANGLE_DROITE);
  afficherEtat("DROITE", distanceDroite);
  delay(150);

  servoUltrason.write(ANGLE_CENTRE);
  delay(300);

  Serial.print("Gauche: ");
  Serial.print(distanceGauche);
  Serial.print(" cm | Droite: ");
  Serial.print(distanceDroite);
  Serial.println(" cm");

  if (distanceGauche >= distanceDroite) {
    tournerAGauche();
    afficherEtat("TOURNE G", distanceGauche);
  } else {
    tournerADroite();
    afficherEtat("TOURNE D", distanceDroite);
  }

  delay(DUREE_ROTATION_MS);
  arreterRobot();
  delay(100);
}

void setup() {
  pinMode(PIN_ENA, OUTPUT);
  pinMode(PIN_IN1, OUTPUT);
  pinMode(PIN_IN2, OUTPUT);
  pinMode(PIN_ENB, OUTPUT);
  pinMode(PIN_IN3, OUTPUT);
  pinMode(PIN_IN4, OUTPUT);
  pinMode(PIN_TRIG, OUTPUT);
  pinMode(PIN_ECHO, INPUT);

  arreterRobot();
  Serial.begin(9600);

  lcd.init();
  lcd.backlight();

  servoUltrason.attach(PIN_SERVO);
  servoUltrason.write(ANGLE_CENTRE);

  lcd.setCursor(0, 0);
  lcd.print("EDU BOT 1.0");
  lcd.setCursor(0, 1);
  lcd.print("Mode eviteur");
  delay(2000);
  lcd.clear();
}

void loop() {
  servoUltrason.write(ANGLE_CENTRE);
  const long distanceAvant = mesurerDistanceMoyenne();

  Serial.print("Distance avant: ");
  Serial.print(distanceAvant);
  Serial.println(" cm");

  if (distanceAvant > DISTANCE_OBSTACLE_CM || distanceAvant >= 400) {
    avancer();
    afficherEtat("AVANCE", distanceAvant);
  } else {
    eviterObstacle();
  }

  delay(50);
}
↔
Si gauche et droite sont inversées, échangez les valeurs de ANGLE_GAUCHE et ANGLE_DROITE.
07 · Mise en service

Tests avant le premier départ

Faites les vérifications dans cet ordre, roues soulevées du sol, avant de lancer le robot.

1. Vérifier les moteurs

  1. Placez le robot sur un support.
  2. Téléversez un programme.
  3. Vérifiez que les deux roues avancent.
  4. Inversez les fils d’un moteur si son sens est incorrect.

2. Calibrer les TCRT5000

  1. Placez chaque capteur sur le blanc puis sur le noir.
  2. Tournez doucement son potentiomètre.
  3. Observez le changement de sa LED.
  4. Vérifiez les valeurs dans le moniteur série.

3. Tester le HC-SR04

  1. Ouvrez le moniteur série à 9600 bauds.
  2. Placez un objet devant le robot.
  3. Vérifiez que la distance diminue.
  4. Contrôlez les fils TRIG et ECHO si la valeur reste à 400 cm.

4. Vérifier l’écran LCD

  1. Contrôlez VCC, GND, SDA et SCL.
  2. Réglez le petit potentiomètre de contraste du module I2C.
  3. Si l’écran reste vide, testez l’adresse 0x3F à la place de 0x27.
08 · Assistance

Dépannage rapide

Les problèmes les plus fréquents sont généralement liés au sens des moteurs, à une masse non commune ou à une calibration insuffisante.

Le robot avance en tournant sur lui-même

Un moteur tourne probablement dans le sens opposé. Inversez les deux fils de ce moteur sur les sorties du L298N.

Le robot redémarre lorsque le servo bouge

L’alimentation 5V chute pendant le pic de courant du servo. Utilisez une alimentation 5V régulée séparée pour le servo et conservez une masse commune.

Le LCD s’allume mais aucun texte n’apparaît

Réglez le potentiomètre de contraste puis testez l’adresse I2C 0x3F si 0x27 ne fonctionne pas.

Le robot suit le blanc au lieu de la ligne noire

Inversez la constante ETAT_LIGNE_DETECTEE de LOW vers HIGH, ou inversement.

Le robot tourne trop peu pour éviter l’obstacle

Augmentez progressivement DUREE_ROTATION_MS, par exemple de 500 à 650 ms.