III.4.1.1. Définition : Python
est un langage de programmation très puissant qui est de plus en plus
utilisé pour développer des applications rapidement et en
même temps efficaces. Il est très utilisé dans le monde
scientifique pour sa syntaxe aérée et une vitesse
d'exécution rapide.
Ce langage est aussi excellent pour la création de
prototypes car sa simplicité permet d'implémenter un projet aussi
vite que l'on y réfléchit.
48
Robot Mobile Avec Suivi Visuel De Ligne
Chapitre III: Réalisation
Pratique
III.4.1.2. Caractéristique du langage de
programmation (python):
· IL est portable, non seulement sur les
différentes variantes d'UNiX, mais aussi sur les OS
propriétaires: MacOS, BeOS, NeXTStep, MS-DOS et les différentes
variantes de Windows.
· Python est gratuit, mais on peut l'utiliser sans
restriction dans des projets commerciaux.
· Python convient aussi bien à des scripts d'une
dizaine de lignes qu'à des projets complexes de plusieurs dizaines de
milliers de lignes.
· La syntaxe de Python est très simple et,
combinée à des types de données évolués
(listes, dictionnaires,...), conduit à des programmes à la fois
très compacts et très lisibles. A fonctionnalités
égales, un programme Python est souvent de 3 à 5 fois plus court
qu'un programme C ou C++ (ou même Java) équivalent, ce qui
représente en général un temps de développement de
5 à 10 fois plus court et une facilité de maintenance largement
accrue.
· Peut être étendu avec des modules en C.
· Le langage Python est un langage de programmation complet
grâce aux nombreuses bibliothèques spécialisées,
appelées modules.
NumPy :
· NumPy est une extension du langage de programmation
Python, destinée à manipuler des matrices ou tableaux
multidimensionnels. Il contient:
· un objet puissant, tableau à N dimensions.
· Des outils pour l'intégration de C / C + + et
Fortran.
· l'algèbre linéaire, transformée de
Fourier.
SciPy :
· SciPy est un projet visant à unifier et
fédérer un ensemble de bibliothèques Python à usage
scientifique. Scipy utilise les tableaux et matrices du module NumPy. Cette
distribution de modules est destinée à être utilisée
avec le langage interprété Python afin de créer un
environnement de travail scientifique.
PySerial : est un module
d'accès au port série spéciale pour Python.
Pywin32: est un module de Python pour Windows
Extensions.
49
Robot Mobile Avec Suivi Visuel De Ligne
Chapitre III: Réalisation
Pratique
III.4.1.3. Open CV :
Open CV (Open Computer Vision) est une bibliothèque
graphique libre, initialement développée par Intel,
spécialisée dans le traitement d'images en temps réel. La
société Willow Garage assure le support de cette
bibliothèque depuis 2010.
III.4.1.3.1. Fonctionnalités d'Open
CV: La bibliothèque Open CV met à disposition de
nombreuses fonctionnalités très diversifiées permettant de
créer des programmes partant des données brutes pour aller
jusqu'à la création d'interfaces graphiques basiques.
III. 4.2. L'interface graphique:
Après l'exécution du programme on obtient deux fenêtres sur
le bureau du PC :
La première permet le choix de la couleur de la ligne
à poursuivre par notre robot, et la deuxième permet d'afficher
les informations (comme la détection de la ligne, avancé, droite
et tourné à gauche,...).
Figure. III.5 : La première
fenêtre concerne la webcam.
50
Robot Mobile Avec Suivi Visuel De Ligne
Chapitre III: Réalisation
Pratique
Figure. III.6 : La deuxième
fenêtre montre la détection de la ligne.
Acquisition de l'image
Prétraitement
Détection de la ligne
Calcule de
commande
Robot Mobile
Webcam
Figure. III.7 : Schéma du principe
du système de commande.