Raspberry Pi - Actionneur

Ce didacticiel vous apprend à utiliser Raspberry Pi pour contrôler un actionneur linéaire. En détail, nous allons apprendre :

Il existe deux types d'actionneurs linéaires :

Ce tutoriel est destiné aux actionneurs linéaires sans retour d'information. Si vous souhaitez en savoir plus sur les actionneurs linéaires avec retour d'information, veuillez vous référer à ce Raspberry Pi - Actionneur avec retour d'information tutoriel.

Préparation du matériel

1×Raspberry Pi 4 Model B
1×Linear Actuator
1×L298N Motor Driver Module
1×12V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) Screw Terminal Block Shield for Raspberry Pi
1×(Optional) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B
1×(Optional) Plastic Case and Cooling Fan for Raspberry Pi 4B
1×(Optional) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de l'actionneur linéaire

Actionneur linéaire Extendre Rétracter

Brochage de l'actionneur linéaire

Un actionneur linéaire a deux fils, le fil positif étant généralement rouge et le fil négatif habituellement noir.

Brochage de l'actionneur linéaire

Comment ça marche

Lors de l'achat d'un actionneur linéaire, il est important de comprendre quelle tension est nécessaire pour son fonctionnement. Par exemple, considérons un actionneur linéaire de 12V.

Lorsque vous alimentez l'actionneur linéaire 12V par une source d'alimentation 12V :

  • Connectez 12V au fil positif et GND au fil négatif : l'actionneur linéaire s'étend à pleine vitesse jusqu'à atteindre la limite.
  • Connectez 12V au fil négatif et GND au fil positif : l'actionneur linéaire se rétracte à pleine vitesse jusqu'à atteindre la limite.

Lorsque l'alimentation de l'actionneur est coupée en connectant le fil de terre aux fils positif et négatif, le processus d'extension ou de rétraction cessera.

※ Note:

Pour un moteur à courant continu, un servomoteur et un moteur pas à pas sans engrenage, lorsqu'une charge est présente, si l'alimentation est coupée, ils sont incapables de maintenir leur position. En revanche, un actionneur peut rester dans sa position même lorsque l'alimentation n'est plus fournie alors qu'il supporte une charge.

Si la tension de l'alimentation électrique pour les actionneurs linéaires est inférieure à 12V, l'actionneur linéaire s'étendra/retractera toujours, mais pas à sa vitesse maximale. Cela implique que nous pouvons modifier la vitesse de l'actionneur linéaire en changeant la tension. Néanmoins, cette méthode n'est pas couramment utilisée en raison de la difficulté à contrôler la tension de la source d'alimentation. Par conséquent, la tension de la source d'alimentation est maintenue constante et la vitesse de l'actionneur linéaire est régulée par un signal PWM. Plus le cycle de service du PWM est grand, plus l'actionneur linéaire s'étend/retracte rapidement.

Comment contrôler un actionneur linéaire

Comment contrôler un actionneur linéaire avec un Raspberry Pi

Le contrôle d'un actionneur linéaire implique :

  • Extension de l'actionneur linéaire à sa vitesse maximale.
  • Rétraction de l'actionneur linéaire à sa vitesse maximale.
  • (Optionnel) Régulation de la vitesse d'extension/rétraction.

Raspberry Pi est capable de générer un signal pour contrôler l'actionneur linéaire, cependant, ce signal a une faible tension et un courant faible. Par conséquent, un pilote matériel est nécessaire entre le Raspberry Pi et l'actionneur linéaire pour amplifier le signal de contrôle du Raspberry Pi, ainsi que pour recevoir un autre signal de contrôle du Raspberry Pi afin de changer la polarité de l'alimentation électrique pour le contrôle de la direction.

※ Note:

  • Ce tutoriel peut être utilisé avec n'importe quel actionneur linéaire. Un actionneur linéaire 12V n'est qu'un exemple.
  • Lors du contrôle d'un actionneur linéaire 5V, même si la broche du Raspberry Pi délivre 5V (qui est la même tension que celle de l'actionneur linéaire), un pilote est toujours nécessaire entre le Raspberry Pi et l'actionneur linéaire car la broche du Raspberry Pi ne fournit pas assez de courant pour l'actionneur linéaire.

Il existe de nombreux types de puces et de modules disponibles tels que L293D et L298N qui peuvent être utilisés comme pilotes d'actionneurs linéaires. Dans ce didacticiel, nous utiliserons le pilote L298N.

À propos du pilote L298N

Le pilote L298N peut être utilisé pour gérer un actionneur linéaire, un moteur à courant continu, et un moteur pas à pas. Ce tutoriel vous explique comment l'utiliser pour contrôler l'actionneur linéaire.

Disposition des broches du pilote L298N

Brochage du pilote L298N

Le pilote L298N dispose de deux canaux, étiquetés A et B. Cela lui permet de contrôler deux actionneurs linéaires indépendamment au même moment. Supposons que l'actionneur linéaire A est connecté au canal A et l'actionneur linéaire B est connecté au canal B. Le pilote L298N a 13 broches au total.

Les broches communes pour les deux canaux :

  • Broche VCC : Fournit de l'énergie pour l'actionneur linéaire, avec une plage de tension de 5 à 35V.
  • Broche GND : Il s'agit d'une broche de masse commune, et elle doit être connectée à 0V (GND).
  • Broche 5V : Alimente le module L298N, et peut être fournie par 5V d'un Raspberry Pi.

Épingles du canal A :

  • Broches ENA : Ces broches sont utilisées pour contrôler la vitesse de l'actionneur linéaire A. En retirant le cavalier et en connectant cette broche à l'entrée PWM, nous pouvons contrôler la vitesse d'extension/rétraction de l'actionneur linéaire A.
  • Broches IN1 & IN2 : Ces broches sont utilisées pour contrôler la direction d'un actionneur linéaire. Lorsqu'une d'elles est HAUTE et l'autre est BASSE, l'actionneur linéaire s'étendra ou se rétractera. Si les deux entrées sont soit HAUTES soit BASSES, alors l'actionneur linéaire s'arrêtera.
  • Broches OUT1 & OUT2 : Ces broches sont connectées à l'actionneur linéaire A.

Épingles du canal B :

  • Broches ENB: Le cavalier peut être retiré et la broche connectée à une entrée PWM pour contrôler la vitesse de l'actionneur linéaire B.
  • Broches IN3 & IN4: En configurant l'une de ces broches sur HIGH et l'autre sur LOW, l'actionneur linéaire se déplacera dans l'une ou l'autre direction. Si les deux sont réglées sur le même état (HIGH ou LOW), l'actionneur s'arrêtera.
  • Broches OUT3 & OUT4: Ces broches sont connectées à l'actionneur linéaire.

Comme indiqué précédemment, le pilote L298N nécessite deux sources d'alimentation :

  • Un pour l'actionneur linéaire (broches VCC et GND) : allant de 5 à 35V.
  • Un pour le fonctionnement interne du module L298N (broches 5V et GND) : allant de 5 à 7V.

Retirez tous les cavaliers du pilote L298N pour plus de simplicité.

Nous pouvons gérer deux actionneurs linéaires indépendamment et simultanément en utilisant un Raspberry Pi et un pilote L298N. Pour commander chaque actionneur linéaire, nous avons seulement besoin de trois broches du Raspberry Pi.

※ Note:

Le reste de ce tutoriel se concentrera sur le contrôle d'un actionneur linéaire via le canal A. Le fonctionnement de l'autre actionneur linéaire est similaire.

Comment contrôler un actionneur linéaire

Nous allons étudier la technique d'utilisation du pilote L298N pour gérer un vérin linéaire.

Schéma de Câblage

Retirez les trois cavaliers du module L298N avant de le connecter.

Schéma de câblage du Raspberry Pi pour actionneur linéaire avec pilote L298N

This image is created using Fritzing. Click to enlarge image

Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :

Raspberry Pi Screw Terminal Block Shield

Comment faire s'étendre/rétracter un actionneur linéaire

La direction de déplacement de l'actionneur linéaire peut être régulée en fournissant un signal logique HAUT/BAS aux broches IN1 et IN2. Le tableau ci-dessous montre comment contrôler la direction dans les deux canaux.

IN1 pin IN2 pin Direction
LOW LOW Linear Actuator A stops
HIGH HIGH Linear Actuator A stops
HIGH LOW Linear Actuator A extends
LOW HIGH Linear Actuator A retracts
  • Augmentez la longueur de l'actionneur linéaire A.
GPIO.output(IN1_PIN, GPIO.HIGH) # Aucun commentaire à traduire GPIO.output(IN2_PIN, GPIO.LOW) # Aucun commentaire à traduire
  • Inverser l'actionneur linéaire A
GPIO.output(IN1_PIN, GPIO.LOW) # Sortie GPIO sur le pin IN1 à bas niveau GPIO.output(IN2_PIN, GPIO.HIGH) # Sortie GPIO sur le pin IN2 à haut niveau

※ Note:

L'orientation de l'actionneur linéaire peut être inversée en connectant les broches OUT1 et OUT2 dans un ordre différent. Pour cela, soit les broches OUT1 et OUT2 doivent être échangées, soit les signaux de commande sur les broches IN1 et IN2 doivent être modifiés dans le code.

Comment arrêter un vérin linéaire de s'étendre ou de se rétracter

Le vérin linéaire cessera de s'étendre/se rétracter lorsqu'il atteindra la limite. Il est également possible d'arrêter son extension/rétraction de manière programmatique avant qu'il n'atteigne la limite.

Il existe deux méthodes pour arrêter un actionneur linéaire :

  • Réguler la vitesse à 0
  • Déconnecter la source d'alimentation
pwm.ChangeDutyCycle(0); # Changer le cycle de travail à 0
  • Définit les broches IN1 et IN2 sur la même valeur, soit BASSE, soit HAUTE.
GPIO.output(IN1_PIN, GPIO.LOW) GPIO.output(IN2_PIN, GPIO.LOW)
  • Ou
GPIO.output(IN1_PIN, GPIO.HIGH) # Sortie GPIO pour IN1_PIN, niveau haut GPIO.output(IN2_PIN, GPIO.HIGH) # Sortie GPIO pour IN2_PIN, niveau haut

Comment contrôler la vitesse d'un actionneur linéaire via un pilote L298N

Il est facile de réguler la vitesse de l'actionneur linéaire. Au lieu de régler la broche ENA sur HAUT, nous pouvons générer un signal PWM vers la broche ENA. Cela peut être fait en :

  • Connecter un pin Raspberry Pi au ENA du L298N
  • Générer un signal PWM vers le pin ENA en utilisant la fonction pwm.ChangeDutyCycle(). Le pilote L298N amplifie le signal PWM vers l'actionneur linéaire.
pwm.ChangeDutyCycle(speed) # la vitesse est une valeur de 0 à 255

La vitesse est une valeur allant de 0 à 255. Lorsque la vitesse est de 0, l'actionneur linéaire cessera de bouger. À une vitesse de 255, l'actionneur linéaire s'étendra/se rétractera à sa vitesse maximale.

Exemple de code Raspberry Pi

Le code ci-dessous :

  • Contrôle l'actionneur linéaire à son amplitude maximale à vitesse maximale
  • Contrôle l'actionneur linéaire à son amplitude minimale à vitesse maximale

Étapes rapides

Retirez les trois cavaliers du module L298N. Et ensuite :

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à internet si vous devez installer certaines bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, voir Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Voir comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Créez un fichier de script Python actuator.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-actuator import RPi.GPIO as GPIO import time # Constants ENA_PIN = 25 # GPIO pin connected to the EN1 pin L298N IN1_PIN = 8 # GPIO pin connected to the IN1 pin L298N IN2_PIN = 7 # GPIO pin connected to the IN2 pin L298N # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(ENA_PIN, GPIO.OUT) GPIO.setup(IN1_PIN, GPIO.OUT) GPIO.setup(IN2_PIN, GPIO.OUT) # Set ENA_PIN to HIGH to enable the actuator GPIO.output(ENA_PIN, GPIO.HIGH) # Main loop try: while True: # Extend the actuator GPIO.output(IN1_PIN, GPIO.HIGH) GPIO.output(IN2_PIN, GPIO.LOW) time.sleep(20) # Actuator will stop extending automatically when reaching the limit # Retract the actuator GPIO.output(IN1_PIN, GPIO.LOW) GPIO.output(IN2_PIN, GPIO.HIGH) time.sleep(20) # Actuator will stop retracting automatically when reaching the limit except KeyboardInterrupt: pass finally: # Cleanup GPIO on program exit GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le terminal :
python3 actuator.py

Le script s'exécute en boucle infinie en continu jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

Vous devez observer :

  • L'actionneur linéaire s'étend jusqu'à ce qu'il atteigne la limite, puis s'arrête.
  • L'actionneur linéaire reste dans cette position pendant un certain temps.
  • L'actionneur linéaire se rétracte jusqu'à ce qu'il atteigne la limite, puis s'arrête.
  • L'actionneur linéaire reste dans cette position pendant un certain temps.
  • Ce cycle se répète.

Vidéo

Tutoriels connexes

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!