Introduction au langage C, traitement d’image et contrôle de moteur Introductio

Introduction au langage C, traitement d’image et contrôle de moteur Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 2 But  Suivi d’un objet coloré à l’aide d’une webcam montée sur un servomoteur PC Caméra Servomoteur Module d’interface LABJACK Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 3 > Sommaire 1. Introduction au langage C a) Hello World! b) Fonctions c) Commentaires, types, structures, macros, constantes d) Tableaux statiques e) Chaînes de caractères f) Pointeurs g) Pointeurs et tableaux h) Allocation mémoire et tableaux dynamiques 2. Traitement d’image avec OpenCV a) OpenCV b) Utilisation rapide c) Images et C/C++ d) Images et OpenCV 3. Contrôle de servomoteurs a) Carte de puissance b) Servomoteur c) Carte d’interface d) Contrôle des moteurs et servomoteurs via Labjack Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 4 Introduction au langage C Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 5 Hello World! On souhaite utiliser des fonctions déclarées dans ce fichier (ici printf()) Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 6 Fonctions Déclaration de fonction : nécessaire ici car on souhaite utiliser print_arg() dans le main() mais on définit son contenu après le main() Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 7 Commentaires, types, structures, macros, constantes Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 8 Commentaires, types, structures, macros, constantes Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 9 Commentaires, types, structures, macros, constantes Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 10 Commentaires, types, structures, macros, constantes Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 11 Commentaires, types, structures, macros, constantes Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 12 Tableaux statiques Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 13 Chaînes de caractères Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 14 Pointeurs Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 15 Pointeurs et tableaux Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 16 Allocation mémoire et tableaux dynamiques Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 17 Traitement d’image avec OpenCV Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 18 OpenCV  Présentation • http://opencv.willowgarage.com/wiki/ • Bibliothèque open source • Portable (fonctionne sous Linux, Windows, Mac OS) • Fonctions en C/C++ ou Python • Codes optimisés développés à l'origine par Intel • Documentation et exemples de codes • … Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 19 Utilisation rapide  Chargement et affichage d’un fichier image Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 20 Utilisation rapide  Récupération d’une image webcam Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 21 Images et C/C++  Représentation courante d’une image en C/C++ R G B R G B R G B R G B … Pixel 1 Pixel 2 Pixel 1 Pixel 2 Pixel 3 Pixel 4 Pixel 5 Pixel 9 Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 22 Images et OpenCV  Utilisation d’OpenCV – Type IplImage défini par OpenCV – Création d’une image couleur vierge Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 23 Images et OpenCV  Utilisation d’OpenCV – Accès aux pixels d’une IplImage Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 24 Contrôle de servomoteurs Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 25 Carte de puissance  Permet de contrôler les moteurs par des signaux de commande – Moteurs : tensions et courants élevés provenant des batteries – Signaux de commande : tensions et courants faibles venant directement ou indirectement du PC • Exemples : signaux PWM, I2C Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 26 Carte de puissance  Exemple : Robbe Rokraft Signaux de commande PWM, connecteur classique servomoteur Batterie avec connecteur Tamiya Moteurs Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 27 Carte de puissance  Exemple : Robbe Rokraft – Fonctionnement • La puissance envoyée aux moteurs (et donc leur vitesse) dépend du signal de commande PWM • PWM = Pulse Width Modulation : modulation en largeur d’impulsion U : tension du PWM (5 V) t : largeur d’impulsion (entre 1 et 2 ms) T : période (20 ms) Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 28 Carte de puissance  Exemple : Robbe Rokraft – Fonctionnement • Correspondance largeur d’impulsion / vitesse de rotation ARRET État du moteur Largeur d’impulsion Moteur à l’arrêt 1.5 ms Rotation dans un sens, en accélérant 1.5 à 2.0 ms Rotation dans le sens inverse, en décélérant 1.0 à 1.5 ms Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 29 Servomoteur  Servomoteur = petit moteur + carte de puissance : pour orienter la webcam  Commandé par PWM  2 types de servomoteurs : – Asservis en position : tournent de -40 à +40°par exemple – Asservis en vitesse Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 30 Carte d’interface  Relie la partie informatique avec la partie électronique (capteurs, actionneurs) – Partie informatique : intelligence par le biais de programmes sur PC – Partie électronique : capteurs, actionneurs Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 31 Carte d’interface  Exemple : boitier Labjack – Se branche sur l'ordinateur en USB et est contrôlé par des programmes exécutés sur l'ordinateur – Peut générer des signaux PWM, I2C – Peut générer des petites tensions – Peut lire des petites tensions (venant de capteurs analogiques tels que des télémètres, odomètres, boussoles...) – … Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 32 Carte d’interface  Exemple : boitier Labjack Moteur Carte de Puissance Labjack U3 Alimentation Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 33 Carte d’interface  Exemple : boitier Labjack Moteur 1 Moteur 2 Cartes de puissance Labjack PC de commande Dispositif de commande de moteurs avec la carte uE9 Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 34 Contrôle des moteurs et servomoteurs via Labjack  http://www.labjack.com/  Une bibliothèque de fonctions et drivers fournis pour différents langages, OS  Programmes exemples disponibles  Pour contrôler les moteurs, nous utiliserons les fonctions « timer » du Labjack Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 35 Annexes Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 36 Passage C/C++  Le C est inclus (à 99%) dans le C++ : quand on fait du C, on fait aussi du C++ mais l’inverse n’est pas forcément vrai  Le C++ rajoute des notions de programmation orientée objet (classe, héritage, polymorphisme) ainsi que des facilités d’écriture Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 37 OpenCV  Présentation • 4 parties principales : – CXCORE (types et fonctions de base : matrices, images, arbres, graphes, fonctions mathématiques, dessin de formes…) – CV (traitement d’image : détection d’objets, de mouvement, calibration…) – HIGHGUI (récupération et affichage d’images : lecture/enregistrement de fichiers images et videos, gestion des webcams, affichage dans des interfaces graphiques…) – MLL (arbres de décision, réseaux de neurones…) Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 38 Carte d’interface  Autres exemples : Cartes Parallax et Pololu – Se branchent en série (ou USB via un convertisseur USB-série) et génèrent jusqu’à 16 PWM Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 39 Contrôle des moteurs et servomoteurs via Labjack  Le Labjack peut générer jusqu’à 6 timers/PWM dont la fréquence est définie par 16 2 * _ _ divisor clock timer f f syst PWM = Fréquence interne du Labjack Mode du PWM => précision de la largeur d’impulsion Paramètre pouvant être propre à chaque PWM pour faire varier sa fréquence indépendamment des autres Fréquence finale du PWM Doit être proche de 1/20ms pour pouvoir contrôler un servo Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 40 Contrôle des moteurs et servomoteurs via Labjack  Fonctions utiles Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 41 Contrôle des moteurs et servomoteurs via Labjack  Fonctions utiles Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 42 Contrôle des moteurs et servomoteurs via Labjack  Fonctions utiles Introduction au langage C, traitement d’image et contrôle de moteur 21/10/2010 43 Rappels C/C++  Le C est inclus (à 99%) dans le C++ : quand on fait du C, on fait aussi du C++ mais l’inverse n’est pas forcément vrai  Du code C ou C++ peut être écrit dans un fichier .cpp mais seul du code C peut être écrit dans un fichier .c  Dans un .h, uploads/s1/ copen-cvlabjack.pdf

  • 89
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jul 09, 2022
  • Catégorie Administration
  • Langue French
  • Taille du fichier 1.7172MB