technologie innovation

Technologie Innovation

Translate

dimanche 3 septembre 2017

Robot suiveur de courbe



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.
  On commence par le schéma synoptique que résume tout le projet dans un schéma simple et clair :   
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