Le Raspberry Pi est parfaitement adapté à de nombreux projets de robotique. Les moteurs sont largement utilisés dans ces types de projet. Dans ce tutoriel, nous allons voir comment contrôler jusqu'à deux moteurs à courant continu grâce au double pont H L298N.
Il existe trois grandes catégories de moteurs :
-
Les moteurs à courant continu (moteurs CC) : ceux que l'on va utiliser dans ce tutoriel. Ce sont les moteurs les plus courants, il suffit de les relier à un générateur de tension pour les faire tourner. Le sens de branchement sur les bornes influe sur le sens de rotation du moteur. Ils sont souvent couplés à des motos-réducteurs qui permettent d'augmenter leur couple.
Exemple d'utilisation : Propulsion d'une voiture télécommandée électrique. -
Les Servo-moteurs : Ils permettent d'atteindre une position angulaire précise, comprise entre 0 et 180°. La course de ce moteur est la même que celle d'un gouvernail de bateau.
Exemple d'utilisation : Moteur gérant la direction d'une voiture télécommandée. - Les moteurs pas à pas : Un peu comme les servo-moteurs, sauf que cette fois, leur course est infinie. On peut contrôler leur vitesse réelle et leur position.
Dans ce tutoriel, nous allons voir comment contrôler jusqu'à deux moteurs à courant continu grâce au double pont H L298N.
Avant de commencer, et pour bien comprendre comment le module fonctionne, voici une rapide présentation du pont H en électronique :
Qu'est-ce qu'un pont en H en électronique ?
En électronique un pont en H est un circuit qui permet de faire passer le courant dans un sens ou dans l'autre à travers un dipôle. Ce genre de circuit est très utile pour choisir le sens de rotation d'un moteur. En effet, en inversant l'alimentation d'un moteur, celui-ci va changer de sens.
Schématiquement, voilà le principe de fonctionnement du pont H, qui résume l'explication ci-dessus.
A, B, C, D sont modélisés par des interrupteurs, dans la réalité, ce sont des transistors. Pour simplifier, un transistor est un interrupteur, de taille pouvant être nanoscopique, contrôlable par une impulsion électrique.
Il suffit alors de contrôler les interrupteurs pour choisir le sens de rotation du moteur. C'est justement ce que fait le module L298N !
Prérequis
Pour contrôler des moteurs CC à l'aide d'un Raspberry Pi, il faut :
- Un Raspberry Pi
- Un double pont H - L298N
- Moteur CC | Ce kit peut être intéressant pour créer sa propre voiture télécommandée / intelligente
- Des câbles
Une fois tous les éléments réunis, on peut passer au branchement.
Branchement du module
Voici pour commencer une vue du module L298N mettant en évidence ses entrées/sorties.
Voici le branchement que je vous propose pour contrôler vos moteurs CC.
Utilisation du module en Python
Maintenant que tout est branché correctement (ça fait pas mal de fils !), intéressons-nous au code. Le programme ci-dessous implémente les principales fonctions pour faire tourner dans un sens ou dans l'autre un moteur.
La commande du module est en fait très simple. Pour faire tourner le moteur 1 (resp. 2) dans un sens, on met IN1 sur 5V et IN2 sur 0V. Pour inverser le sens de rotation, il suffit d'inverser le 5V avec le 0V.
Gestion de la vitesse de rotation
Avant de terminer ce tutoriel, voyons comment contrôler la vitesse de nos moteurs. Pour faire varier la vitesse d'un moteur sans changer la tension d'entrée de ce dernier, on va "tricher" un peu. Plutôt que d'envoyer une tension continue au moteur (+VCC en permanence), on va délivrer une tension qui alterne entre +VCC et 0V.
On définit par rapport cyclique la division entre le temps haut et la période (temps haut + temps bas). Le rapport cyclique est donc une valeur comprise entre 0 et 1. Plus elle est proche de 1, plus le moteur tournera vite.
Le moteur va donc être alimenté pendant un certain temps, donc se mettre à tourner, puis l'alimentation est coupée pendant un second temps. Grâce au principe d'inertie, le moteur n'a pas le temps de s'arrêter et va juste tourner de moins en moins vite.
En Python, l'objet PWM (Pulse Width Modulation) permet de faire varier le rapport cyclique de la sortie d'un GPIO. Appliqué à l'entrée Enable du moteur 1 par exemple, on gère la vitesse comme ceci :
La fréquence est à choisir en fonction du moteur utilisé. Essayer différentes valeurs pour trouver une valeur acceptable, c'est-à-dire une valeur pour laquelle le moteur ne fait pas d'à-coups (valeur de fréquence trop faible) mais tourne quand même sans faire trop de bruit (valeur de fréquence trop élevée).
Il ne reste plus qu'à utiliser tout ça pour divers projets de robotique !


Commentaires