ProjetAutomatisme

De troyesGEII
Révision datée du 9 avril 2021 à 17:40 par Vachette (discussion | contributions) (Etape 3: configuration du MCP23008 sur node-RED)
Aller à : navigation, rechercher

contacts

Ce projet a été réalisé par MABONA Anthony et DOS SANTOS Fresnel. Pour toute question concernant cette page, vous pourrez contacter:
- Sur Discord : Anthony MABONA
- par mail : mabonatelcywilliam@gmail.com

Présentation du projet

vue d'ensemble de la machine

Objectif : Restauration et décentralisation du traitement des informations d’une ancienne machine de transfert “Vachette”

L’objectif de notre projet était de remettre en état une ancienne machine de chaîne d'automatisme de la marque "Vachette", et de décentraliser le traitements des différentes informations qui étaient initialement reçues et traitées par un seul automate. A l'origine, Cette machine était supposément prévu pour de la serrurerie, avec un poste centrale automatique et trois postes manuels (voir photo)

le convoyeur auto et ses 3 postes manuels

Cependant, la machine a été modifié afin de convenir à une utilisation plus éducative, afin que des étudiants puissent réaliser leur projet.Toute la machinerie a été retiré, à l'exception des postes et leur différents capteurs/actionneurs.

Le but de notre projet était donc de créer plusieurs cartes électroniques qui traiteront les informations des capteurs et actionneurs situés sur les différents postes, et éventuellement ces cartes devront communiquer entre elles les différentes informations pour une éventuelle automatisation de la machine.
Durant notre période de projet, nous avons réalisé les cartes électroniques ainsi que le réseau qui permet la communication entre les cartes et également l'usage manuel des différents actionneurs grâce à une interface graphique. Et c'est à travers cette page que nous allons vous expliquer les différentes grandes étapes qui nous a emmenés à la finalité qu'on a atteint:
Contrôler manuellement les moteurs du convoyeur principal,du poste manuel 3, ainsi que certains actionneurs depuis l'interface graphique

Un système de carte électroniques alimentés par des cartes nanoPI et tout le système géré à distance, en réseau grâce à "MQTT" et Node-RED, par une raspberryPI avec interface graphique. Sur cette page nous allons expliquer comment nous avons réalisés les cartes et comment nous avons mis en place le réseau capable de faire fonctionner la machine.

Etudes préliminaires

Avant de commencer concrètement le projet, la 1ère étape était de comprendre comment fonctionnait les différentes parties qui nous permettront de faire fonctionner le convoyeur via les cartes électroniques.

étude sur les capteurs

Ce sont les composants qui permettront de comprendre les actions que l'on devra réaliser avec les capteurs. Ils nous permettront de savoir où seront placés les différentes palettes sur le convoyeur principale ainsi que les postes.

capteur indcutif pour détection palette

capteur indcutif pour détection passage palette

les capteurs sont des capteurs dit inductifs, c'est à dire qu'ils produisent un champ magnétique qui permet de détecter toute objet conducteur à leur proximité(ce qui tombe bien car la palette est composé de métaux conducteur). Les capteurs se comportent comme des interrupteurs. Étant alimenté en 24V:
- lorsqu'il n'y a pas d'objet conducteur à proximité => 0V
- lorsqu'il y a un objet conducteur à proximité => 24V

Le but sera donc d'utiliser cette particularité et l'accommoder à une commande électronique.

solution technique

Le composant permettant de réaliser une connexion entre le capteur 24V et la carte électronique dont les broches peuvent recevoir une tension maximum de 3,3V est un optocoupleur.

optocoupleur

L'optocoupleur est un composant électronique permettant de réaliser une isolation galvanique entre les deux tensions. Elle fonctionne de cette manière :
- Du côté gauche du schéma, il y'aura la tension +24V
- Du côté droit la tension +3,3V apporté par la NanoPi pour ses broches
- Lorsque le capteur est fermé, à l'interieur de l'optocoupleur, il y a une led qui éclaire un phototransistor qui permet au côté droit de l'optocoupleur de laisser passer la tension de +3,3V de la nanoPi.
Pour ce projet on utilisera l'optocoupleur de référence SFH620A

test réalisable

Matériel :

- carte arduino
- platine d'essai
- résistance de 100k
- résistance de 15k
- résistance de 1k
- résistance de 300 Ohms
- 1 led
- optocoupleur SFH620A
- 1 capteur inductif (présent dans la salle de la machine, avec 3 câbles à nu : 1 bleu, 1 marron et 1 noir)
- 1 alimentaion 24V pour alimenter le capteur inductif

Schéma:

schéma test capteur

Intitulé:

Il suffit tout simplement de coder un test permettant d'observer l'état du capteur, d'où la LED qui va servir de voyant lumineux pour prouver qu'il est possible d'établir une connexion entre le capteur de la machine et une carte électronique.

NE PAS OUBLIER DE RELIER LA MASSE DE LA CARTE ARDUINO AVEC CELLE DU GÉNÉRATEUR POUR ÉTABLIR UNE MASSE COMMUNE.
Ce même principe sera utilisé pour la conception des cartes électroniques.

étude sur les actionneurs

Pour pouvoir piloter un actionneur à l’aide d’une carte électronique , nous avons procéder à la solution suivante : il nous faut une tension de sortie d’environ 3,3 volt que nous obtenons à partir de la tension 24 V .

solution technique

Afin de convertir les signaux, nous avons dû réaliser des cartes électroniques. Cependant, afin d’optimiser et de simplifier l'utilisation ainsi que la complexité de cette dite carte, nous avons réalisé 3 modèles différents :

Un adaptateur pour faire fonctionner le protocole I2C (avec récupération du signal 24V). Une carte dédiée à la captation de signaux analogiques: 24v -> 3.3v

Une carte dédiée à l’activation d'actionneurs (relais par exemples) : 3.3v -> 24V : Lors de la réalisation de cette carte nous avons utilisé un composant appelé optocoupleur : Il s'agit d'un composant électronique capable de transmettre un signal d'un circuit électrique à un autre, sans qu'il y ait de contact galvanique entre eux.

OPTOCOUPLEUR.png

test réalisable

Au debut de notre projet , nous avons commencé avec un composant electronique appélé transistor nmos Irf540, mais en testant notre schema, on se rend compte que cela ne fonctionnait pas totalement on avait pas vraiment ce qu'on voulait , et nous avons donc voulu tester avec l'optocoupleur 4N33 et ceci fonctionnait bien.Nous avons donc gardé cette solution ensuite nous avons procédé à la réalisation du schema sur le logiciel Eagle

Test optocoupleur.png


Matériel :

- Platine d'essaie

- résistance 180 ohm

- Optocoupleur 4N33

- diode de roue libre

- Mcp230008

- Nanopi

- Une Alimentation 24 V

- Des fils mâle mâle et mâle femelle

- Un relais

- Bouton poussoir

- Un câble ethernet

- un multimètre

Schéma:

Fichier:Dos santos(1).sch Fichier:Dos santos.brd


Intitulé:

il s'agit de brancher une carte actionneur avec le Mcp23008 puis on active la led de l'optocoupleur qui par la suite active l'actionneur .

Réalisation des cartes

présentation

Pour réaliser la carte électronique et le traitement des informations, contrairement aux tests précédents où c'est une carte arduino qui a été utilisé, pour la suite c'est la carte NanoPi NEO 2 qui sera utilisé ainsi que l'extention de port MCP23008

NanoPi NEO 2

NanoPi NEO2

schéma des broches de la NanoPi





Cette carte, tout comme la carte arduino utilisée dans les phases test, sera utilisé pour recevoir et agir en conséquence sur les actionneurs et moteurs des convoyeurs par rapport aux informations renvoyées par les capteurs. On utilisera le 3,3V fournit par la carte lorsqu'elle est alimenté. Il y a également la particularité d'avoir un port Ethernet, ce qui est essentiel pour mettre en oeuvre le système de communication de notre projet. C'est pour cela que cette carte est préféré à Arduino.

MCP23008

extension des port GPIO

schéma port MCP23008





Etant donné que le nombre de broche qu'il y a sur la nanoPi ne sont pas suffisant, on utilise alors ce composant qui sert d'extension de port GPIO. le composant communiquera avec la NanoPi via la communication I2C. Pour faire court, grâce aux ports SDA (qui sert à transmettre les données) et SCL (pour que la carte NanoPi et le MCP23008 communiquent avec une vitesse de transmission similaire), la NanoPi et le MCP23008 pourront communiquer entre eux. Et donc, initialement on n'avait que 16 ports disponibles sur la NanoPi, et grâce à l'extension, il y a maintenant 24 ports disponibles pour connecter les capteurs/actionneurs.

Pour savoir comment paramétrer la liaison entre le MCP23008 et la NanoPi, tout sera détailler dans la partie mise en place de la communication entre NanoPi et MCP23008.

Mise en oeuvre

carte capteurs

carte capteur face haut
carte capteur face bas




vous pouvez voir le fichier eagle du routage de la carte électronique des capteurs: Fichier:ShieldCapteurs.sch
Fichier:ShieldCapteurs.brd

carte actionneurs

carte actionneur

vous pouvez voir le fichier eagle du routage de la carte électronique des actionneurs: Fichier:ShieldActioneurs.sch
Fichier:ShieldActioneurs.brd

Mise en place du système de communication

Pour permettre dans la finalité, l'échange de données entre les différentes cartes électroniques qui gèreront la machine, on a utilisé un protocole marchant par liaison Ethernet : le protocole MQTT ainsi que l'outil de progammation node-RED.

protocole MQTT

Introduction au protocole MQTT

Le protocole MQTT est un protocole de messagerie marchant sur le principe de souscription/publication. Pour faire plus simple, visualisez ce schéma :

réseau mqtt

Imaginez 4 clients et un relais qui s'occupera d'envoyer les différents colis contenant des messages qu'un ou des clients veulent distribuer à un ou à tous les autres clients :

- les clients peuvent être différents appareils électroniques (dans ce projet, ca sera nos cartes électroniques) ayant un système de communication ethernet
- Le facteur est appelé dans le bon terme un broker. Pour notre projet, on utilisera le broker mosquitto
- les colis contenant les messages sont appelés topic

Pour un exemple de fonctionnement, imaginez un client 1 abonné au topic nommé objet. Si le client 2 qui publie sur le topic objet un certain message, le client 1 recoit ce message. Cela fonctionne aussi si les clients 1,3 et 4 sont abonnés au même topic, ils recevront également ce message.
Pour résumer, vous devez savoir qu'il est possible qu'un ou plusieurs clients soient abonnés ou publient sur un ou plusieur topic.Ce protocole a été choisi car il simplifie la communication des données de notre projet.

Intoduction à Node-RED et application à notre projet

Node-RED est un logiciel en ligne de programmation grpahique, ce qui rend plus simple la partie code car il suffit d'utiliser les différentes fonctions que possèdent le logiciel.

interface node-RED

Comme vous pouvez le voir ci-dessus, l'interface node-RED ressemble à cela. A droite vous avez les différentes fonctions que le logiciel a à sa disposition (certaines fonctions peuvent être téléchargées).Ce qui est dans la barre de recherche sera expliqué plus bas.
L'essentiel est de savoir que node-RED nous sera utile pour la configuration du MCP23008 qui sera relié à différents topic. Dans la prochaine section, il y a un test réalisable pour comprendre comment les cartes électroniques fonctionneront d'une manière générale.

mise en place de la communication entre NanoPi et MCP23008

Cette section est une manipulation pour comprendre comment fonctionne ces logiciels ensemble.

Matériel:
- 2 cartes NanoPi
- 2 MCP23008 traversant
- une platine d'essai
- fils Mâle-mâle
- fils Mâle-Femelle
- 3 résistances de 10k
- 1 bouton poussoir (simule le capteur)
- 1 LED (simule l'actionneur)
- 1 résistance de 330 Ohms

Etape 1: branchement

- Connecter la nanoPi au réseau ethernet de l'IUT puis l'allumer (en la branchant à l'ordinateur) - Il faut alimenter la platine d'essai en 3,3V et connecter le GND venant de la nanoPi
- Placer le MCP23008 et mettre sur les broches SDA et SCL 1 résistance de tirage de 10k relié au +3,3V sur la platine d'essai.
- Connecter la broche RESET au +3,3V et les broches A0,A1 et A2 à la masse (ces broches définissent l'adresse du MCP23008, ici on a l'adresse 000)
- Reliez Vss du MCP23008 à la masse et Vdd au 3,3V de la platine d'essai
- Reliez le SDA et SCL de la nanoPI avec ceux du MCP23008

Si vous avez besoin d'aide, vous pouvez vous aidez du schéma ci-dessous:

(mettre photo schéma)

Etape 2: configuration liaison I2C

- Ouvrez une fenêtre de terminal puis rentrez ssh root@10.98.9.xx. A la place du xx, vous devez rentrer l'addition de 49+ le numéro de série affiché sur votre nanoPI (l'étiquette qui est posé sur la nanoPI). - Il y aura un message vous demandant yes/no?, tapez yes puis rentrez le code geii quand on vous demandera de rentrer le code.

ecran terminal 1ère connexion au réseau

Vous aurez par la suite l'image suivante:

accueil

- tapez ensuite i2cdetect -y x, à la place du x il peut y avoir 0,1,2 ou 3 qui correspond à tous les bus différents i2C que possèdent la nanoPI. Il faudra vérifier sur lequel est connecté le MCP23008. Généralement c'est le 0.
Ci-dessous vous avez une image qui montre ce que vous devez voir :

terminal montrant l'adresse i2C choisi pour la communication entre la nanoPI et le MCP23008

Lorsqu'un numéro apparait, on sait qu'il y a une connexion entre le MCP23008 et la nanoPI

Etape 3: configuration du MCP23008 sur node-RED

- Pour accéder à node-RED, ouvrez une page sur un navigateur internet, et dans la barre de recherhe, rentrez 10.98.9.xx:1880, le xx correspondant au même que dans l'étape 2 (il s'agit de l'adresse IP de votre nanoPI).
- Il faudra ensuite télécharger le bloc de fonction MCP23008 car il n'existe pas de base sur node-RED
- Après téléchargement, il faut configurer le node MCP23008:

configuration node MCP23008
configuration node MCP23008













il faudra configurer dans Device Address la liaison I2C puis ne pas cocher les A0 A1 et A2 (car comme expliqué plus haut dans branchement, ils ont été reliés à la masse, mais ils peuvent être changés si on désire donner une autre adresse au composant).
Ensuite il faut cocher Output all channels ce qui met les channel 1 à 7 (correspondant aux GPIO0 à GPIO8) en sortie, fixer l'intervalle de communication (vous pouvez mettre 100). Et en appuyant sur Deploy, votre composant, si tout est bien connecté, devrait apparaitre comme cela:

MCP23008 correctement configuré

Réalisation de l'interface graphique via RaspBerry Pi et QT creator

création du code

création de l'interface graphique

communication entre Raspberry - NanoPi