07 juillet 2019 • 9 • 4.9
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 :
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 :
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 !
Pour contrôler des moteurs CC à l'aide d'un Raspberry Pi, il faut :
Une fois tous les éléments réunis, on peut passer au branchement.
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.
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.
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 !
Choisir et utiliser une caméra sur un Raspberry Pi
Obtenir la température avec une sonde DS18B20
⚡NEW⚡Raspberry Pi 5, version 8Go
87.55 €
Caméra Raspberry Pi 5MP 1080p
12.95 €
4.9/5 | 24 votes