How to Control Your Actuators from Alternative Networks

Comment contrôler nos actionneurs à partir de réseaux alternatifs

Guest Writer
Guest Writer
PA Engineer

Le monde du mouvement linéaire évolue rapidement et en permanence. Progressive Automations est déterminé à rester à la pointe de ces changements technologiques. Les actionneurs télécommandés sont devenus plus diversifiés et plus dynamiques. C'est pourquoi Jake, l'un de nos ingénieurs, a décidé de mener une expérience pour déterminer si nos actionneurs linéaires pouvaient être contrôlés depuis des réseaux alternatifs. C'est tout à fait possible. Cet article explique donc étape par étape comment y parvenir. Il comprend également un exemple de code et les outils nécessaires pour établir une connexion réussie et, in fine, contrôler le ou les actionneurs en ligne.

Nous avons utilisé notre mini actionneur linéaire PA-14 pour cette expérience car c'est l'un de nos actionneurs les plus populaires !

Liste des produits

 

Actionneur linéaire miniature PA-14

Mini actionneur linéaire de Progressive Automations

La LC-201 est une carte relais à 4 canaux, parfaite pour cette application !

Le mini-actionneur linéaire PA-14 est l'un des modèles les plus populaires de Progressive Automations et l'exemple que nous avons utilisé pour cette expérience. Tout modèle fourni par Progressive Automations, avec une tension nominale de 12 VCC/24 VCC/36 VCC/48 VCC et un moteur CC à balais, peut remplacer l'actionneur PA-14. Le code fourni, illustré ci-dessous, ne nécessite aucune modification si l'on choisit un autre actionneur, mais il est nécessaire de vérifier le courant et la tension nominales de l'alimentation avant de poursuivre.

Actionneur linéaire pour Raspberry Pi

Les détails de l'expérience fournis expliquent comment contrôler un actionneur linéaire avec un Raspberry Pi. Le Raspberry Pi 4 est utilisé pour exécuter le logiciel serveur et recevoir les commandes de contrôle de l'actionneur. Vous pouvez également utiliser un ordinateur de bureau et une carte Arduino. Dans ce cas, votre PC devra recevoir les commandes et les communiquer à la carte Arduino via un port série.

Le Raspberry Pi est un ordinateur monocarte, de la taille d'une carte de crédit. Ce micro-ordinateur a été développé au Royaume-Uni pour enseigner les bases de l'informatique.

 

Principe de fonctionnement du Raspberry Pi

Le Raspberry Pi possède tous les attributs d'un véritable ordinateur, notamment un processeur dédié, de la mémoire et un pilote graphique pour la sortie HDMI. Il exécute même une version spéciale du système d'exploitation Linux. Cela facilite l'installation de la plupart des programmes Linux et connecter des actionneurs linéaires à Raspberry Pi. Cela permet d'utiliser le Raspberry Pi pour des actionneurs, comme serveur multimédia à part entière ou comme émulateur de jeux vidéo.

Le Pi ne dispose pas de stockage de données interne, mais une carte à puce peut servir de mémoire flash pour l'ensemble du système. Cela permet de télécharger rapidement différentes versions du système d'exploitation ou des mises à jour logicielles à des fins de débogage. Grâce à sa connectivité réseau indépendante, cet appareil peut également être configuré pour un accès SSH ou un transfert de fichiers FTP.

Instructions pour l'expérience

Ce qui suit montre les étapes exactes suivies par Jake lors du test de cette configuration, de la configuration initiale à la télécommande sans fil de l'actionneur linéaire.

Étant donné que la carte Raspberry Pi peut se voir attribuer une adresse IP et disposer de broches GPIO, ainsi que de ses fonctions susmentionnées, elle constitue le meilleur appareil pour une telle expérience.

Configuration d'un Raspberry Pi avec un actionneur linéaire

  1. Assurez-vous que le système d'exploitation Raspbian est installé sur votre pi. Cliquez ici pour obtenir des instructions étape par étape sur la façon d'installer ce système d'exploitation sur votre Pi.
  2. Connectez votre carte à votre Wi-Fi. Cliquez ici pour ces instructions.
  3. Attribuez une IP statique à votre Raspberry Pi. Cliquez ici pour plus de détails sur la façon de procéder.
  4. Créez un nouveau fichier .py sur votre Raspberry Pi et copiez-y le code suivant. Lorsque vous exécuterez ce code, votre Pi deviendra un serveur qui écoutera vos commandes sur le port « 6166 ».

 socket d'importation
 système d'importation

 # Créer un socket TCP/IP
 chaussette = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

 # Liez le socket au port
 adresse_serveur = ('', 6166)
 print ('démarrage sur le port', adresse_serveur)
 sock.bind(adresse_serveur)

 # Écouter les connexions entrantes
 chaussette.écouter(Vrai)


 GPIO.setmode(GPIO.BCM)
 GPIO.setup(18, GPIO.OUT)
 GPIO.setup(27, GPIO.OUT)

 tant que (vrai) :
 # Attendre une connexion
 imprimer ('en attente d'une connexion')
 connexion, client_address = sock.accept()

 imprimer ('connexion depuis', adresse_client)
 
# Recevoir les données en petits morceaux et les retransmettre
 données = connexion.recv(16)
 imprimer (« reçu : », données)

 # Signal de sortie sur GPIO en fonction de la commande reçue
 si données == b"ext":
 GPIO.output(18, GPIO.HIGH)
 si données == b"ret":
 GPIO.output(27, GPIO.HIGH)

 si données == b"fermer la connexion" :
 casser

 # Fermeture de la connexion
 connexion.close()

Câblage

Pour des instructions claires sur le câblage de ce projet, un schéma est fourni sur le lien suivant : Relais numérique 4 canaux + câblage Arduino d'un actionneur linéaire .

 

Configuration du routeur

Une fois votre Pi connecté à votre Wi-Fi et doté de l'adresse IP statique configurée à l'étape précédente, vous pouvez commencer à configurer la redirection de port et le filtrage IP sur votre routeur. La redirection de port permet de configurer un routeur pour transférer les données arrivant sur un port spécifique d'un appareil de votre réseau local. Supposons que votre serveur Pi possède l'adresse IP statique 192.168.1.69 et écoute les commandes sur le port 6166. Vous devrez configurer votre routeur pour transférer les données provenant du port 6166 vers un appareil portant l'adresse IP 192.168.1.69.

Instructions:

Remarque : l'interface de votre routeur peut être différente de celle présentée dans cet exemple. Dans ce cas, veuillez consulter les instructions pour effectuer cette étape en fonction de votre modèle de routeur.

  1. Entrez l'adresse IP de votre routeur et connectez-vous pour accéder à l'interface de votre routeur .
    adresse IP

  2. Recherchez l’ option Redirection de port .

    Trouver la redirection de port

  3. Saisissez l'adresse IP statique de votre serveur Pi et la plage de ports publics. Assurez-vous que le port 6166 se trouve dans cette plage .

    Gamme Port Public

Nous vous conseillons de configurer le filtrage IP dès maintenant pour des raisons de sécurité. Le filtrage IP vous permet de spécifier les adresses IP des appareils autorisés à accéder à votre Pi et à lui envoyer des commandes via Internet. Recherchez le paramètre de filtrage entrant et définissez les adresses IP des appareils autorisés à accéder aux actionneurs dans ce paramètre.

Configuration du client

    1. Pour exécuter le logiciel client sur votre appareil, installez Python 3.8 à partir de leur site officiel .
    2. Vous souhaiterez peut-être également installer PyCharm qui est un IDE facile à utiliser.
    3. Copiez le code suivant :
     socket d'importation
     système d'importation
    
     # Créer un socket TCP/IP
     chaussette = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    # Connectez le socket au port sur lequel le serveur écoute
     server_address = ('Entrez l'adresse IP du routeur dans le réseau local de votre pi', 6166)
     print ('connexion au port %s', adresse_serveur)
     sock.connect(adresse_serveur)
    
     essayer:
    
     # Envoyer des données
     message = b'ret'
     imprimer ('envoi de "%s"', message)
     chaussette.sendall(message)
    
     # Recherchez la réponse
     montant_reçu = 0
     montant_attendu = len(message)
    
     tant que montant_reçu < montant_attendu :
     données = sock.recv(16)
     montant_reçu += len(données)
     imprimer ('reçu : ', données)
    
     enfin:
     imprimer ('fermeture du socket')
     chaussette.close()

    Tous les actionneurs ont besoin d'une alimentation électrique fiable - nous avons utilisé le PS-20-12 ici !

    Le Raspberry Pi contre Arduino

    Comme indiqué au début de l'article, il est possible d'utiliser une carte Arduino à la place d'un Raspberry Pi. Tout d'abord, il est important de préciser ce que sont les cartes Arduino. Ces microcontrôleurs exécutent du code interprété par le micrologiciel. Ce ne sont pas des ordinateurs complets et ne disposent donc pas de système d'exploitation à proprement parler. Bien que dépourvus des outils de base fournis par le système d'exploitation, ils facilitent l'exécution directe de code simple.

    Ce système d'exploitation est également gratuit. La carte Arduino a pour principale fonction d'interagir avec des capteurs et des périphériques, ce qui en fait un outil idéal pour les projets matériels visant à générer une réponse à différents signaux de capteurs et à des commandes manuelles. Il est également parfaitement adapté à l'articulation d'autres appareils et actionneurs, pour lesquels un système d'exploitation complet n'est pas nécessaire.

    Le choix entre le Raspberry Pi et l'Arduino dépendra grandement du projet pour lequel il est requis.

    Il serait préférable de choisir l'Arduino si votre tâche principale consiste à lire des données provenant de capteurs ou à modifier des valeurs sur le moteur et d'autres appareils. Compte tenu des exigences de Alimentation Arduino et facilité d'entretien de ce système, l'appareil peut être utilisé sans s'éteindre avec pratiquement aucune interférence avec son fonctionnement.

    Le Raspberry Pi, en revanche, serait plus pratique pour effectuer des tâches qui seraient effectuées sur un ordinateur personnel. Il simplifie la gestion des flux de travail dans divers scénarios, comme la connexion à Internet pour lire ou écrire des données, lire des fichiers multimédias ou se connecter à un écran externe.

    Étant donné que l'Arduino et le Raspberry Pi effectuent des tâches différentes, il est parfois pratique de les utiliser ensemble. En les connectant, le client peut accéder aux paramètres et au code via le Pi, tandis que l'Arduino contrôle les actionneurs et collecte les informations des capteurs. Ces deux appareils peuvent être connectés via USB, LAN ou via les ports E/S de l'Arduino au Raspberry Pi.

    Dernier mot

    À ce stade, tout est configuré pour contrôler n'importe quel actionneur de Progressive Automations, selon les critères mentionnés, via Internet ! L'exécution du code vous offre un confort optimal : le contrôle à distance de vos actionneurs, ou, comme nous aimons les appeler, des « actionneurs contrôlés par Wi-Fi ». Merci d'avoir lu cet article ! Pour toute question ou pour voir un test réalisé par l'un de nos ingénieurs, contactez-nous ; nous nous ferons un plaisir de vous répondre !