Le but de ce projet est utiliser les nouvelles technologies
disponibles pour ajouter un peu de charme sur l’image pour satisfaire le
spectateur. On sait bien que le domaine de l’audiovisuel se développe rapidement
et la concurrence est acharnée donc on
doit être à jours. De plus, les intéressés par tous qu’est produit par la
caméra ont constaté qu’il y a plusieurs réalisateurs qui ont commencé à
introduire ces techniques dans leurs projets et d’intéresser de plus en plus à
la caméra qui joue le rôle le plus important puisqu’elle est l’interface entre
le réalisateur et le spectateur.
Ce projet est constitué de deux partie, une partie informatique
dans laquelle on un logiciel de traçage des courbes et de commande de robot et
une partie électronique qui sera le robot ou bien le support de caméra
lui-même.
Les robots
Le Petit
Larousse définit un robot comme étant un appareil automatique capable de
manipuler des objets, ou d'exécuter des opérations selon un programme fixe ou
modifiable.
En fait,
l'image que chacun s'en fait est généralement vague, souvent un robot est
défini comme un manipulateur automatique à cycles programmables.
géneralement la constutitions d'un rebot
On distingue classiquement 4 parties principales dans un robot
manipulateur :
Le système
mécanique articulé (S.M.A.) est un mécanisme ayant une structure plus ou moins
proche de celle du bras humain. Il permet de remplacer, ou de prolonger, son
action (le terme "manipulateur" exclut implicitement les robots
mobiles autonomes). Son rôle est d'amener l'organe terminal dans une situation
(position et orientation) donnée, selon des caractéristiques de vitesse et
d'accélération données. Son architecture est une chaîne cinématique de corps,
généralement rigides (ou supposés comme tels), assemblés par des liaisons
appelées articulations. Sa motorisation est réalisée par des actionneurs
électriques, pneumatiques ou hydrauliques qui transmettent leurs mouvements aux
articulations par des systèmes appropriés.
Précisons la
notion d'articulation : Une articulation lie deux corps successifs en limitant
le nombre de degré de liberté de l'un par rapport à l'autre. Soit m le nombre
de degré de liberté résultant, encore appelé mobilité de l'articulation. La
mobilité d’une articulation est telle que :
0 ≤ m ≤ 6.
Lorsque m = 1 ;
ce qui est fréquemment le cas en robotique, l'articulation est dite simple :
soit rotoïde, soit prismatique.
Articulation rotoïde : Il s'agit d'une
articulation de type pivot, notée R, réduisant le mouvement entre deux corps à
une rotation autour d'un axe qui leur est commun. La situation relative entre
les deux corps est donnée par l'angle autour de cet axe
Articulation prismatique : Il s'agit d'une
articulation de type glissière, notée P, réduisant le mouvement entre deux
corps à une translation le long d'un axe commun. La situation relative entre
les deux corps est mesurée par la distance le long de cet axe
Pour être
animé, le S.M.A. comporte des moteurs le plus souvent avec des transmissions
(courroies crantées), l'ensemble constitue les actionneurs. Les actionneurs
utilisent fréquemment des moteurs électriques à aimant permanent, à courant
continu, à commande par l'induit (la tension n'est continue qu'en moyenne car
en général l'alimentation est un hacheur de tension à fréquence élevée ; bien
souvent la vitesse de régime élevée du moteur fait qu'il est suivi d'un
réducteur, ce qui permet d'amplifier le couple moteur). On trouve de plus en
plus de moteurs à commutation électronique (sans balais), ou, pour de petits
robots, des moteurs pas à pas.
Pour les robots
devant manipuler de très lourdes charges (par exemple, une pelle mécanique),
les actionneurs sont le plus souvent hydrauliques, agissant en translation
(vérin hydraulique) ou en rotation (moteur hydraulique).
Les actionneurs
pneumatiques sont d'un usage général pour les manipulateurs à cycles (robots
tout ou rien). Un manipulateur à cycles est un S.M.A. avec un nombre limité de
degrés de liberté permettant une succession de mouvements contrôlés uniquement
par des capteurs de fin de course réglables manuellement à la course désirée
(asservissement en position difficile dû à la compressibilité de l'air).
La perception
permet de gérer les relations entre le robot et son environnement. Les organes
de perception sont des capteurs dits proprioceptifs lorsqu'ils mesurent l'état
interne du robot (positions et vitesses des articulations) et extéroceptifs
lorsqu'ils recueillent des informations sur l'environnement (détection de
présence, de contact, mesure de distance, vision artificielle).
La partie
commande synthétise les consignes des asservissements pilotant les actionneurs,
à partir de la fonction de perception et des ordres de l'utilisateur.
S'ajoutent à
cela :
- L'interface
homme-machine à travers laquelle l'utilisateur programme les tâches que le
robot doit exécuter,
- Le poste de
travail, ou l'environnement dans lequel évolue le robot.
La robotique
est une science pluridisciplinaire qui requiert, notamment, des connaissances
en mécanique, automatique, électronique, électrotechnique, traitement du
signal, communications, informatique.
Les générations de
robot :
Des
progressions s'opèrent dans tous les domaines : - Mécanique,
-
Micro-informatique,
- Energétique,
- Capteurs –
actionneurs.
A l'heure
actuelle, on peut distinguer 3 générations de robots :
1. Le robot est
passif : Il est capable d'exécuter une tâche qui peut être complexe, mais de
manière répétitive, il ne doit pas y avoir de modifications intempestives de l'environnement.
L'auto-adaptativité
est très faible. De nombreux robots sont encore de cette génération.
2. Le robot
devient actif : Il devient capable d'avoir une image de son environnement, et
donc de choisir le bon comportement (sachant que les différentes configurations
ont été prévues). Le robot peut se calibrer tout seul.
3. Le robot
devient « intelligent » : Le robot est capable d'établir des stratégies, ce qui
fait appel à des capteurs sophistiqués, et souvent à l'intelligence
artificielle.
Programmation
des robots :
Classiquement,
2 étapes sont utilisées pour faire en sorte qu'un robot connaisse la tâche à
exécuter.
1.
L'apprentissage :
-
Enregistrement dans une mémoire de la trajectoire à exécuter, sous contrôle
d'un opérateur humain,
- Pantin :
Structure mécanique identique à celle du robot, qui est déplacée et qui
mémorise les points "pertinents",
- Syntaxeur :
Un manche de pilotage (joystick) commande les déplacements de l'organe
terminal,
- Boîte à
boutons : Un interrupteur par actionneur.
2. La génération de trajectoires et les opérations à réaliser le
long de ces trajectoires, ce qui permet de définir la tâche à réaliser : On
fait appel à un logiciel qui, à partir du modèle du robot, et des trajectoires
à réaliser, élabore la succession des commandes des actionneurs. Les langages
de programmation les plus courants sont : WAVE, VAL (Unimate), LM (Hitachi).
Nous utiliserons pour notre part les langages associés au robot Stäubli RX 90
(langage V+) et au robot FANUC ARC ou LR.
Pour notre projet on utilise le microcontrôleur PIC 16F877 a des caracteristique :
- Consommation : moins de 2mA sous 5V à 4 MHz.
- Architecture RISC : 35 instructions de durée 1 ou 2 cycles.
- Durée du cycle : Période de l'oscillateur quartz divisée par 4
soit 200 ns pour un quartz de 20 MHz.
- Deux bus distincts pour le code programme et les data.
- Code instruction : mot de 14 bits et compteur programme (PC) sur
13 bits, ce qui permet d'adresser 8 K mots (de h'0000' à h'1FFF')
- Bus DATA sur 8 bits.
- 33 Ports Entrée-Sortie bidirectionnels pouvant produire 25 mA par
sortie. PORTA contient 6 bits et PORTB, PORTC et PORTD contiennent chacun
d’eux 8bits et pour le PORTE, il contient 3 bits.
- 4 sources d'interruption :
- Externe par la broche partagée avec le Port B : PB0.
- Par changement d'état des bits du Port B: PB4 PB5 PB6 ou PB7.
- Par un périphérique intégré dans le chip: écriture de Data en
EEPROM terminée, conversion analogique terminée, réception USART ou I2C.
- Par débordement du Timer.
- 2 Compteurs 8 bits et 1 compteur 16 bits avec pré diviseur
programmable.
- Convertisseur analogique 10 bits à 8 entrées pour le 16F877.
- USART pour transmission série synchrone ou asynchrone.
- Interface I2C.
- 2 modules pour PWM avec une résolution de 10 bits.
- Interface avec un autre micro: 8 bits + 3 bits de contrôle pour
R/W et CS.
- 368 Octets de RAM
- 256 Octets d'EEPROM Data.
- 8K mots de 14 bits en EEPROM Flash pour le programme (h'000' à
h'1FFF').
- 1 registre de travail : W et un registre fichier : F permettant
d'accéder à la RAM ou aux registres internes du PIC. Tous les deux sont des
registres 8 bits.
on utilise aussi d’un moteur pas à pas
Pour le moteur
pas à pas il ne y’a pas d’asservissement, c’est pourquoi le système est plus
simple.
A chaque
impulsion du signal de commande correspond au niveau de rotor un déplacement
angulaire défini appelé « pas » ou « incrément mécanique ». Donc le moteur pas
à pas transforme une impulsion électrique en une énergie mécanique.
La vitesse de
rotation est fonction de la fréquence des impulsions.
Le circuit MAX232 :
La conversion
des niveaux :
Les cartes
électroniques à base de microcontrôleurs fonctionnent très souvent avec des
niveaux TTL soit 0-5Volt, 0V pour le niveau 0 et 5Volt pour le niveau1.
Brancher donc directement une ligne RS232 sur un microcontrôleur n’aurait donc
aucun sens et pourrait aussi endommager le système en imposant des tensions de
25volt.
Pour rendre compatible une ligne RS232 avec une carte de ce type il
existe un composant très simple d’utilisation que nous allons étudier : le
max232. En regardant son schéma interne ci-dessous, nous constatons directement
qu’il est premièrement doté d’un convertisseur de tension, au travers des
capacités C1 et C3 il génère une tension de 10Volt depuis les 5Volt (doubleur
de tension), et au moyen des capacités C2 et C4 il génère une tension de
-10Volt a partir de la tension de 10Volt. Il est bien sur évident que la puce
est munie de tout un système, avec un oscillateur, des diodes et ... afin
d’intégré ce convertisseur DC-DC. Il existe une version de cette puce, le
max233, où les capacités sont intégrées directement dedans, mais nous ne
rentrerons pas dans ce détail. La valeur des capacités va dépendre de la
version de la puce :
Le circuit L298N :
Gestion d'un
afficheur à cristaux liquides (LCD) :
L'utilisation
d'un afficheur à cristaux liquides ou LCD est assez courante sur les systèmes
embarqués. C'est un écran de faible dimension employé pour informer
l'utilisateur sur l'état du système ou pour afficher les mesures effectuées par
différents capteurs.
Il existe un standard très populaire qui permet de gérer les
communications avec la grande majorité des modèles d'afficheurs LCD quel que
soit le fabricant. Ce standard est connu sous le nom HD44780U. Ce nom
correspond au contrôleur qui reçoit les données du microcontrôleur et qui les
communique directement avec l'afficheur à cristaux liquides.
La standard HD44780U utilise 3 signaux de contrôle ainsi que 4 ou 8
lignes d'entrée-sortie pour le bus de données. L'utilisateur peut choisir si
l'afficheur à cristaux liquides doit fonctionner avec un bus de données de 4
bits ou un bus de données de 8 bits. Si un bus de données de 4 bits est utilisé
l'afficheur LCD utilise un total de 7
lignes (3 signaux de contrôle plus les 4 lignes pour le bus de données). Si un
bus de données de 8 bits est utilisé l'afficheur LCD utilise un total de 11 lignes
(3 signaux de contrôle plus les 8 lignes pour le bus de données).
Les trois
signaux de contrôle sont appelés : EN, RS et RW.
EN, enable :
Le signal
enable est utilisé pour indiquer à l'afficheur à cristaux liquides qu'on va lui
envoyer des données. Pour envoyer des données à l'afficheur, le programme doit
s'assurer que le signal est au niveau bas (0) avant de faire évoluer les deux
autres signaux de contrôle et de placer des données sur le bus de données.
Quand l'ensemble des autres lignes sont correctement positionnées,
le signal EN
doit être placé au niveau haut (1) et il faut attendre un temps minimum requis
par le composant (ce temps varie d'un afficheur à l'autre) avant de le placer
au niveau bas (0) à nouveau.
RS, register
select :
Le signal
register select est utilisé pour distinguer les instructions de commande des
données à afficher. Si on place RS au niveau bas (0), les données sont traitées
comme une commande ou instruction spéciale (effacer l'écran, positionner le
curseur de position, etc.). Si on place RS au niveau haut (1), les données
envoyées sont des caractères que l'écran doit afficher.
RW, read/write
:
Le signal
read/write est utilisé pour distinguer si les informations sur le bus de
données sont lues ou écrites. Si on place le signal RW au niveau haut (1), le
programme interroge l'afficheur à cristaux liquides sur son état (Get LCD
status). Dans tous les autres cas des commandes sont écrites. Ainsi, le signal
RW sera presque toujours au niveau bas.
Outils de développement et de simulation
Mikropascal :
C’est un langage de programmation orienté vers
la programmation de quelques composants développés tels que les
microcontrôleurs, les microprocesseurs, les DSP.
Isis :
Isis est simulateur des cartes électroniques intégré dans le
logiciel proteus de l’entreprise LabcenterElectrnics. L’utilisation de ce
logiciel est simple grâce à l’interface graphique qui rend claires tous les
commandes.
La bibliothèque est géante et contient presque tous les composants
électroniques connus. De plus la recherche et l’importation sont simples.
Isis est orienté vers les électroniciens débutants, ainsi que les
développeurs et les professionnels.
Ares :
C’est un outil de conception des cartes électroniques imprimées,
intégré dans le logiciel proteus de l’entreprise LabcenterElectronics. Apres
avoir écrit un programme et le compiler, on peut faire la simulation de la
carte à l’aide de Isis. Lorsque on constate que le programme fonctionne
correctement et que les composants sont bien placés, on peut donc passer à la
conception de la carte imprimée sous Ares.
Parmis les lescaracteristiques de ce logiciel on peut siter qu’il
permet l’utilisateur d’ajouter n’importe quelle empreinte qui n’existe pas dans
la bibliothèque. De plus, l’utilisation de ce logiciel est simple et facile.
Réalisation et test
Les composants sont:
- 1 microcontroleur 16f877.
- 1 afficheur lcd.
- 1circuit Max232.
- 2 circuits L298N.
- 1 quartz.
- 2 capacités céramiques de 22pF, 2 autres de 100nF.
- 5 capacités chimiques de 470uF.
- 1 Potentiomètre de 10kΩ.
- 16 diodes.
- 6 résistances.
- 1 diode led.
- 5 boutons.
- 1 connecteur HDB9.
alors le Typon de la carte :
La carte en 3 dimensions :
Partie Informatique :
Dans un repère orthonormé, chaque point est défini par son abscisse
et son ordonnée. On peut calculer donc le module et l’argument de chaque point
ainsi que la distance entre deux points et l’angle faite par la droite (P1P2)
et l’axe OX par ces deux formules :
Arg= arctg[(y2-y1)/(x2-x1)].
Mod=√[(x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)].
Le module mod traduit la distance parcourue par le robot pour qu’il
se déplace de point P1 pour arriver au point P2. L’argument arg est l’angle de
déviation pour que le robot s’oriente vert le point destinataire.
Exemple :
Soit P1(10,10) et P2(50,60) : le robot initialement est dirigé
vers le sens des x croissant : donc il fait un angle α=0 avec l’axe OX.
Mod=√[(50-10)*(50-10) + (60-10)*(60-10)]=64mm.
Arg= arctg[(60-10)/(50-10)]=51.34°.
La distance mod se traduit par un tel nombre des pas exécuté par
les deux moteurs ensemble.
L’angle arg se traduit par un fonctionnement d’un moteur tout en
gardant l’autre moteur fixe.
51.34x3,14=161.2.
161.2/5,2=31 pas : l’un parmi les deux moteurs doit tourner 31
pas et l’autre doit rester fixe.
64/5.2=12.3 soit 12 pas : ensuite le deux moteurs doivent se
tourner de 12 pas de la meme vitesse.
La partie Mécanique :
D’après le schéma on a :
-
La distance entre les centres de gravité de deux roues est A=180mm.
-
Le rayon de roue est R=40mm.
-
Le diamètre d’une roue est D=2xΠxR=251mm.
-
Le nombre des pas par tour de nos moteurs est 24 pas/tour ou bien
48 demi-pas par tour.
-
La distance par pas est : 251/48=5.2mm/pas.
-
On fixe la roue M1et on tourne la roue M2 360 degrés : la
distance parcourue par M2 est 2xΠxA=1131mm.
-
La distance par degré est 1131/360=3,14mm/dég. Donc pour que le
robot tourne d’un dégré il faut qu’une roue reste stable et l’autre se deplace
de 3,14mm
-->Pour telecharger le code et le shéma ISIS CLIQUER SUR LIEN
-->Pour télecharger le carte de routage CLIQUER SUR LIEN
-->pour telecharger la commande CLIQUER SUR LIEN
Aucun commentaire:
Enregistrer un commentaire