À la fin du TP, l’étudiant doit être capable de :

  1. Identifier le comportement d’un moteur à courant continu à aimants permanents.
  2. Commander un moteur en PWM avec un pont en H.
  3. Observer les signaux de commande et de puissance à l’oscilloscope.
  4. Comparer une commande par L298N et par Sabertooth.
  5. Envoyer des commandes moteur depuis ROS2.

Par groupe :

  • 1 moteur DC à aimants permanents
  • 1 driver L298N - 2A par pont
  • 1 driver "surprise" 
  • 1 driver Sabertooth - 2x12A
  • 1 alimentation continue réglable
  • 1 Arduino / ESP32 / Raspberry Pi selon votre architecture
  • 1 oscilloscope
  • 1 multimètre
  • 1 VM ROS2
  • câbles Dupont, fils moteur, résistances éventuelles

Partie 1 :

  1. Que se passe-t-il si on augmente la tension moyenne appliquée au moteur ?
  2. Pourquoi utilise-t-on une PWM au lieu d’une tension continue variable ?
  3. Quel est le rôle d’un pont en H ?
  4. Pourquoi faut-il faire attention au courant de démarrage ?

Partie 2 : L298N

  1. Commander le moteur à 25 %, 50 %, 75 %, 100 % de PWM.
  2. Observer la variation de vitesse.
  3. Mesurer la tension moyenne aux bornes du moteur pour les 4 rapports cycliques.
  4. Mesurer la tension d'alimentation de L298, mesurer la tension de sortie du L298N pour ∝ = 100% et constater la chute de tension.
  5. Observez les signaux sur l’entrée ENA (signal PWM de commande) à l’oscilloscope pour les 4 rapports cycliques et donnez les valeurs suivantes : fréquence PWM, rapport cyclique α, tension haute, tension basse.

Rappel : Le rapport cyclique: ∝= TH/T

  1. Observez la tension aux bornes du moteur et observez la forme hachée de la tension, les pics de commutation, le bruit dû au moteur, l’influence du rapport cyclique.
      1. La tension moteur est-elle sinusoïdale ?
      2. Pourquoi voit-on des parasites ?
      3. Pourquoi la tension moyenne augmente avec le rapport cyclique ?
      4. Que peut-on ajouter pour réduire les parasites ?

Quelques parties de réponses : condensateur antiparasite, diode de roue libre ou structure interne du pont, câblage court, masse propre, alimentation correctement découplée.

Remarque importante : le L298N est ancien et peu efficace, car il utilise des transistors bipolaires. Il provoque une chute de tension importante et chauffe rapidement.

  1. Mesure du courant moteur : Selon le matériel disponible (mesure avec pince de courant, ou résistance shunt faible valeur, ou mesure indirecte par l’alimentation)

Complétez ce tableau

PWM

Courant à vide

Courant au démarrage

Observation

25 %

50 %

75 %

100 %

  1. Pourquoi le courant est-il plus élevé au démarrage ?
    Quelques parties de réponses : Au démarrage, la vitesse est nulle, donc la force contre-électromotrice E=Ke​.Ω est presque nulle. Le courant est donc principalement limité par la résistance du moteur

Partie 2 : driver "surprise"

  1. Identifiez le driver
  2. Commander le moteur à 25 %, 50 %, 75 %, 100 % de PWM.
  3. Observer la variation de vitesse.
  4. Mesurer la tension moyenne aux bornes du moteur pour les 4 rapports cycliques.
  5. Mesurer la tension de sortie du L298N et constater la chute de tension pour les 4 rapports cycliques.
  6. Observez les signaux sur l’entrée ENA (signal PWM de commande) à l’oscilloscope pour les 4 rapports cycliques et donnez les valeurs suivantes : fréquence PWM, rapport cyclique α, tension haute, tension basse.

Rappel : Le rapport cyclique: ∝= TH/T

Partie 3 : La sabertooth

Le Sabertooth est plus adapté à la commande de moteurs DC de puissance que le L298N.

Modes possibles :

  • commande analogique,
  • commande PWM / RC,
  • commande série simplifiée,
  • commande série packetized.

Pour le TP, le plus simple est d’utiliser une commande série simplifiée ou une commande PWM selon votre configuration.

  1. Commander le même moteur avec le Sabertooth. (4 rapports cycliques différents)
  1. Refaire une mesure de tension moteur.
  2. Comparer l’échauffement.
  3. Comparer la stabilité de la commande.
  4. Comparer le comportement au démarrage.

Questions :

  1. Pourquoi le Sabertooth est-il préférable pour un robot mobile ?
  2. Pourquoi le L298N reste-t-il intéressant pédagogiquement ?
  3. Quelle solution choisiriez-vous pour un robot autonome ?

Partie 4 : Commande ROS2

ROS2 cmd_moteur → node Python ou C++ → liaison série USB → ArduinoESP32 → L298 ou sabertooth → moteur DS

Nom du topic : /cmd_moteur

Type simple : std_msgs/msg/Int16

Valeur

Effet

0

arrêt

100

vitesse max sens avant

-100

vitesse max sens arrière

50

demi-vitesse avant

-50

demi-vitesse arrière

Exemples de commandes manuelles :

ros2 topic pub /cmd_motor std_msgs/msg/Int16 "{data: 50}"

ros2 topic pub /cmd_motor std_msgs/msg/Int16 "{data: 0}"

ros2 topic pub /cmd_motor std_msgs/msg/Int16 "{data: -50}"

  1. Créer un package ROS2.
  2. Créer un nœud motor_controller.
  3. S’abonner au topic /cmd_motor.
  4. Envoyer la valeur reçue à la carte Arduino ou ESP32.
  5. Vérifier la commande du moteur.
  6. Tester les valeurs : -100, -50, 0, 50, 100.

Compte-rendu à rendre avant le 5 juin 2026 ici

Lien : TP MCC et L298 et Sabertooth – Remplir le formulaire