Mots-clefs : Convoyeur-Trieur (moteurs pas à pas) / Détection de couleurs / Détection de formes – Python / Caméra
Documentation et ressources pour la maquette Vision Industrielle Cameras industrielles - Drivers Python- Basé sur le convoyeur Dobot Magician (utilisé pour faire du tri de pièces ou détection de défauts dans des chaines de production)
- Niveau 1 : pilotage du convoyeur
- Niveau 2 : détection de forme et de couleur par caméra
Objectifs
Dans le milieu industriel, le convoyage de pièces, la détection de certains défauts ou le tri par types d’objets sont très couramment utilisés. L’objectif de ce projet est de mettre en place un système de tri de pièces à l’aide d’un convoyeur et d’un système de traitement d’images.
La mise en mouvement du convoyeur se fait par l’intermédiaire d’un moteur pas à pas. Le tri des pièces (par couleur ou forme) utilise une caméra associée à une Raspberry Pi permettant de faire le traitement des images et de transmettre le résultat à un système de tri.
Matériels
- Convoyeur Dobot composée de :
- 1 moteur pas à pas (100 pas – 12V – 0.9A/phase)
- 1 capteur de présence (basé sur une diode IR et une photodiode IR) : Noir = GND / Marron = 3.3V / Bleu = sortie – Ref SEN0239
- 1 capteur 3 couleurs
- Carte Puissance / L298, basée sur un pont en H de type L298
- Carte Contrôle / L297, basée sur un driver de moteur pas à pas de type L297
A venir : carte de commande incluant un L297 ou une carte de pilotage Pas à pas TMCSILENTSTEPSTICK (basée sur un composant de type TMC2100)
Interface de base
Des bibliothèques de base en Python sont disponibles pour le développement autour des caméras IDS et Basler. Ces exemples nécessitent opencv et les API pyueye (IDS Camera) ou pypylon (Basler). Ces exemples peuvent être inclus dans des interfaces graphiques en PyQt6.
Exemples pour cameras IDS et BaslerDes exemples (très complets) sont disponibles dans les projets suivants : IHM PyQt6 pour cameras IDS et Basler
Une première version d’une interface de commande (obsolète) des caméras IDS USB2 est disponible. IHM PyQt5 pour camera IDS - obsolete
Cette application nécessite PyQt5, OpenCV, l’API PyUeye et les drivers des caméras.
Premières étapes
- Partie matérielle
- Comprendre le fonctionnement d’un moteur pas à pas (indépendamment de ceux de la table)
- Etudier les signaux à appliquer sur le moteur pas à pas pour l’entrainer en rotation
- Etudier le pont en H L298 et l’associer au moteur pas à pas
- Voir aussi les tutoriels associés aux cartes Nucléo parlant des étages de puissance
- Régler l’intensité lumineuse d’une LED – partie puissance
- Faire varier la vitesse d’un moteur à courant continu – partie pont en H
- Voir aussi les tutoriels associés aux cartes Nucléo parlant des étages de puissance
- Etudier le pilote de moteur pas à pas L297
- Réaliser un programme de pilotage simple pour entrainer en rotation le moteur
- Partie logicielle / traitement d’image
- Prendre en main PyQt6 sous Python 3
- Tester les fonctionnalités de base de Open CV sous Python
Autres étapes
- Mettre en place une communication RS232 entre la Raspberry Pi (via un programme en Python) et une carte Nucléo
- Décider des données à transmettre de l’un à l’autre et d’un protocole à mettre en oeuvre
- Tester le code de la carte Nucléo à l’aide de commande directement saisie dans un terminal
- Voir aussi les tutoriels associés aux cartes Nucléo parlant des communications inter-systèmes
- Echanger des données entre deux systèmes communicants (et les tutoriels précédents sur la communication RS232)
Une série de tutoriels sont en cours de rédaction à ce sujet : Tutoriel Python / PySerial et PyQt5/6 pour échange entre un PC et une Nucléo
Ils sont basés sur les exemples suivants : IHM PyQt5 pour échange entre un PC et une Nucléo