Professional Documents
Culture Documents
> Sommaire
1. 2.
a) b) c) d) e) f) g)
Principe Constitution
Plateforme mcanique + moteurs Carte de puissance Carte dinterface PC embarqu Communication Webcam Servomoteur
3.
a) b)
Programmation
Rcupration et traitement des images de la webcam Contrle des moteurs et servomoteurs via Labjack
4.
TP
29/05/2009 - 2
Principe
Robot suiveur d'objet color par webcam monte sur servomoteur 29/05/2009 - 3
Meute de robots qui se suivent en chane de manire autonome Seul le 1er robot est tlguid Chaque robot a un objet rouge l'arrire, visible par le robot suivant qui cherche le suivre
29/05/2009 - 4
Constitution
Robot suiveur d'objet color par webcam monte sur servomoteur 29/05/2009 - 5
29/05/2009 - 6
Carte de puissance
Permet de contrler les moteurs par des signaux de commande
Moteurs : tensions et courants levs provenant des batteries Signaux de commande : tensions et courants faibles venant directement ou indirectement du PC
Exemples : signaux PWM, I2C
29/05/2009 - 7
Carte de puissance
Exemple : Robbe Rokraft
Signaux de commande PWM, connecteur classique servomoteur
Moteurs
29/05/2009 - 8
Carte de puissance
Exemple : Robbe Rokraft
Fonctionnement
La puissance envoye aux moteurs (et donc leur vitesse) dpend du signal de commande PWM PWM = Pulse Width Modulation : modulation en largeur dimpulsion
U : tension du PWM (5 V) t : largeur dimpulsion (entre 1 et 2 ms) T : priode (20 ms)
29/05/2009 - 9
Carte de puissance
Exemple : Robbe Rokraft
Fonctionnement
Correspondance largeur dimpulsion / vitesse de rotation
tat du moteur Moteur larrt Rotation dans un sens, en acclrant Rotation dans le sens inverse, en dclrant
ARRET
29/05/2009 - 10
Carte dinterface
Relie la partie informatique avec la partie lectronique (capteurs, actionneurs)
Partie informatique : intelligence par le biais de programmes sur PC Partie lectronique : capteurs, actionneurs
29/05/2009 - 11
Carte dinterface
Exemple : boitier Labjack
Se branche sur l'ordinateur en USB et est contrl par des programmes excuts sur l'ordinateur Peut gnrer des signaux PWM, I2C Peut gnrer des petites tensions Peut lire des petites tensions (venant de capteurs analogiques tels que des tlmtres, odomtres, boussoles...)
29/05/2009 - 12
Carte dinterface
Exemple : boitier Labjack
29/05/2009 - 13
Carte dinterface
Exemple : boitier Labjack
Labjack PC de commande
Moteur 2 Cartes de puissance Moteur 1 Dispositif de commande de moteurs avec la carte uE9
29/05/2009 - 14
Carte dinterface
Autres exemples : Cartes Parallax et Pololu
Se branchent en srie (ou USB via un convertisseur USB-srie) et gnrent jusqu 16 PWM
29/05/2009 - 15
PC embarqu
Intelligence du robot
Contient les programmes dfinissant le comportement du robot
Exemples :
eeePC 901 Mini ITX PC 104
Computer form factors Name eeePC 901 Mini-ITX Nano-ITX Pico-ITX PC/104
Robot suiveur d'objet color par webcam monte sur servomoteur
Priphrique de communication
Relie le robot au PC de commande Exemple : cl Wifi USB
29/05/2009 - 17
Webcam
Capteur que l'on peut simplement brancher sur un PC via USB Exemple : Logitech Quickcam Pro 9000
Images jusqu 1600 x 1200 pixels
29/05/2009 - 18
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
29/05/2009 - 19
Programmation
Robot suiveur d'objet color par webcam monte sur servomoteur 29/05/2009 - 20
Pixel 2
R G B
Pixel 3
Pixel 4
Pixel 5 Pixel 9
Pixel 1
Robot suiveur d'objet color par webcam monte sur servomoteur
Pixel 2
29/05/2009 - 21
29/05/2009 - 22
29/05/2009 - 23
29/05/2009 - 24
29/05/2009 - 25
29/05/2009 - 26
29/05/2009 - 27
Contrle des moteurs et servomoteurs via Labjack http://www.labjack.com/ Une bibliothque de fonctions et drivers fournis pour diffrents langages, OS Programmes exemples disponibles Pour contrler les moteurs, nous utiliserons les fonctions timer du Labjack
29/05/2009 - 28
Contrle des moteurs et servomoteurs via Labjack Le Labjack peut gnrer jusqu 6 timers/PWM dont la frquence est dfinie par
Frquence finale du PWM Doit tre proche de 1/20ms pour pouvoir contrler un servo
f PWM
Paramtre pouvant tre propre chaque PWM pour faire varier sa frquence indpendamment des autres
29/05/2009 - 29
29/05/2009 - 30
29/05/2009 - 31
29/05/2009 - 32
TP
Robot suiveur d'objet color par webcam monte sur servomoteur 29/05/2009 - 33
Suivi dun objet color laide dune webcam monte sur un servomoteur
PC
Camra Servo
29/05/2009 - 34
Rappels C/C++ Le C est inclus ( 99%) dans le C++ : quand on fait du C, on fait aussi du C++ mais linverse nest pas forcment 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, on peut crire du C ou du C++, mais il faut que les .c nincluent que des .h avec du C
29/05/2009 - 35
Rappels C/C++ Le C++ rajoute des notions de programmation oriente objet (classe, hritage, polymorphisme) ainsi que des facilits dcriture
29/05/2009 - 36
Rappels C/C++
Diffrences entre les compilateurs Windows et Linux
Linux
Le compilateur C le plus utilis est GCC Son quivalent C++ est G++
Windows
GCC/G++ existent avec Cygwin et MinGW Diffrents IDE existent et fournissent leurs propres compilateurs
Microsoft Visual Studio avec CL Borland C++ Builder / Turbo C++ / Borland Developper Studio avec BCC32 Code Blocks / Dev-C++ avec MinGW
29/05/2009 - 37
Rappels C/C++
Diffrences entre les compilateurs Windows et Linux
Linux/GCC
Fichiers objets Bibliothque statique .a Bibliothque dynamique .so Excutable .o
Windows/Visual C++
.obj .lib .dll .exe
29/05/2009 - 38
Rappels C/C++
Visual Studio
Versions
Visual C++ 6 : date de 1998 Visual Studio 2002 / 2003 ou .Net : refonte de lIDE et ajout des projets .Net Visual Studio 2005 / 2008 : quelques mises jour
Difficile prendre en main au dbut : nombreux types de projets, nombreuses options incomprhensibles Mais assez abouti, trs utilis, beaucoup daide possible sur Internet
29/05/2009 - 39
Rappels C/C++
Visual Studio
Organisation
Workspace/Solution (fichier .dsw/.sln) : ensemble de projets Projet (fichier .dsp/.vcproj) : ensemble de fichiers ncessaires la gnration dun excutable ou bibliothque (.h, .c, .cpp)
29/05/2009 - 40
29/05/2009 - 41
29/05/2009 - 43
Rappels C/C++
Utilisation de bibliothques de fonctions externes
Cas o on possde des fichiers .h et .c/.cpp
Exemple : on a Main.cpp qui doit appeler des fonctions dclares dans Lib.h et dfinies dans Lib.cpp
On met #include Lib.h dans Main.cpp On copie Lib.h et Lib.cpp dans le dossier de Main.cpp On compile et lie Lib.cpp et Main.cpp en les ajoutant au projet
29/05/2009 - 44
Rappels C/C++
Utilisation de bibliothques de fonctions externes
Cas o on possde des fichiers .h, .lib et .dll
Exemple : on a Main.cpp qui doit appeler des fonctions dclares dans Lib.h et dfinies dans Lib.lib et Lib.dll
On met #include Lib.h dans Main.cpp On ajoute le dossier de Lib.h dans les chemins de recherche de fichiers .h du projet On ajoute le dossier de Lib.lib dans les chemins de recherche de fichiers .lib du projet On compile Main.cpp et lie avec Lib.lib en les ajoutant au projet On ajoute le dossier de Lib.dll la variable denvironnement PATH du systme
29/05/2009 - 45