PDFprof.com Search Engine



Mécatronique

PDF
Images
List Docs
  • C'est quoi la filière mécatronique ?

    L'ingénieur en mécatronique développe des systèmes en combinant dès la conception les différentes disciplines que sont la mécanique, l'électronique, l'informatique et l'automatique.10 nov. 2023

  • Quel est le travail d'un Mecatronicien ?

    Le mécatronicien / la mécatronicienne maintient et crée des ensembles automatisés miniaturisés pour améliorer les performances de tous types d'équipements.
    Métier accessible à partir d'un bac + 2 (technicien) ou d'un bac + 5 (ingénieur).

  • Quel est le but de la mécatronique ?

    La mécatronique a pour but de créer des composants et solutions de plus en plus intelligents qui communiquent entre eux, pour répondre aux exigences d'excellence des clients et permettre le déploiement de l'usine du futur.

  • - Mécanique = branche de la physique appliquée à l'étude des mouvements, déformations et équilibres des systèmes physiques. - CFAO = Conception et fabrication assistées par ordinateur. - Contrôle numérique = Système numérique de contrôle-commande. - Circuits de contrôle = Système analogique de contrôle-commande.
La mécatronique, c'est à la fois de la mécanique, de l'électronique et de l'informatique pour concevoir des systèmes « intelligents » et améliorer les performances de tous types d'équipements. En véritables bricoleurs de génie, ces professionnels conçoivent, testent et réparent les appareils high-tech.

Mécatronique
Cycle Ingénieur
Thèses
Cours-de-DROIT-INTERNATIONAL-ECONOMIQUE-1pdf
Le rôle du droit économique international dans la lutte contre le
Droit international économique
Économie internationale
Droit économique international
Livre de l'interne
Médecine
Sémiologie médicale
Next PDF List

Mécatronique

Mécatronique Application avec le lego Mindstorm EV3 Image Source: [techcamp] Mécatronique : • l'intégration en synergie de la mécanique, l'électronique, l'automatique et l'informatique dans la conception d'un système en vue d'optimiser sa fonctionnalité (Norme NF E 01-01.

0) Image Source: [Helix84] Exemple autour du lego Mindstorm Sommaire 1. Lego EV3 Hardware . 1) La brique EV3 . 2) Les moteurs et capteurs 1bis. Robotique mobile et le tribot (notre sujet de TP) 2. Lego EV3 Programming . 1) L'environnement RobotC . 2) Le langage RobotC . 3) L'API (les fonctions disponibles) 1.

EV3 Hardware EV3 Hardware (overview) Moteurs: -commande en vitesse -codeur incrémental de position (résolution: 1°) Capteur contact: -pressé (1), relâché(0) Brique EV3 (CPU + batterie): -Ecran LCD -LED -Haut parleur -Boutons Capteur ultrason: -distance obstacle (cm) Capteur gyroscopique 1axe: -vitesse angulaire (°/s) -angle (par intégration °) LED + photodiode: -couleur -lumière réfléchie (%) Capteurs/Entrées Actionneurs/Sorties La brique EV3 Nom de la brique USB : si connexion établie avec un périphérique Charge de la batterie Etat connexion bluetooth Bouton Retour : -Annuler -Stopper un programme -Eteindre la brique Bouton Central : -Valider -Allumer la brique Bouton gauche,droite, haut,bas : -Naviguer dans les menus 1 2 3 Spéc. techniques : - Processeur 300MHz - Ecran 178x128 pixels - Noyau Linux - 16 Mo FLASH - 64 Mo RAM La brique EV3 Rouge : -démarrage - arrêt du système Rouge clignotant: - occupé Orange : - alerte - prêt Orange clignotant: - alerte - programme en cours Vert : - prêt Vert clignotant : - programme en cours Code couleur (par défaut) des leds : La brique EV3 Port pour les capteurs: S1, S2, S3, S4 Vue de dessous Vue de dessus Vue de gauche Vue de droite Port USB connexion avec le PC Port pour les moteurs: A,B,C D Batterie Haut-parleur Prise chargeur de la batterie Port d'extension de mémoire : Carte SD Port USB pour périphérique Menus Menu Récent: - liste des derniers programmes exécutés - permet de les relancer Menu Réglage: - volume - mise en veille - bluetooth/wifi - info brique Menu Utilitaires: - Port view : test capteur, position moteur - Motor control : test des moteurs Menu Fichiers: -explorateur de fichiers -lancer tout programme -effacer le contenu d'un répertoire Utilitaire Port view • Menu Utilitaire • Affiche la valeur mesurée par les capteurs, dont les codeurs de position Valeurs courantes des codeurs, ports A, B, C, D.

Valeurs courantes des capteurs, ports S1, S2, S3, S4.

Les moteurs Moteurs à courant continu - avec balai (brushed DC motor) + train d'engrenage pour augmenter le couple - couple moteur τ, créé par force de Laplace sur le fil : , avec i le courant du rotor dF=idl∧Bτ=KiImages source: [dcmotor] Les moteurs Modèle électrique et mécanique du moteur DC U=Ldidt+Ri+UemfUemf=Kω!"#$#J!ω=τ-bωτ=Ki"#$%$Images source: [dcmodel] ωU(s)=K(Ls+R)(Js+b)+K2Fonction de transfert : Ø En régime permanent et pour un charge constante sur le moteur : La vitesse du moteur ω est proportionnelle à U.

Les moteurs O V9 V90% duty cycleO V9 V10% duty cycleMoteur commandé en tension : - par modification du rapport cyclique en % d'un signal PWM à 8 kHz - si non régulé (boucle ouverte): si charge mécanique ì, vitesse î pour un même U 10% : Umoy=0.

9) V 90% : Umoy= 8.

1) V Ø La commande du moteur est exprimé en % de la tension de la batterie Les moteurs Pont H (H-bridge): - pilote le sens de rotation et freinage dynamique (electronic braking) - constitué de 4 interrupteurs commandés (transistors Q1, Q2, Q3, Q.

4) M+ M- +Ve -Ve Q1 Q2 Q3 Q4 Tous interrupteurs ouverts : moteur non alimenté (float) Image source: [hbridge] Les moteurs + - + - Q1 et Q4 haut : moteur avance Q2 et Q3 haut : moteur recule Q3 et Q4 haut : freinage - electronic braking (si moteur en rotation) U=0 et moteur en rotation ω ! , moteur en mode générateur court-circuité : Le courant induit par la rotation crée ici un couple opposé au mouvement. 0=Ri+UemfUemf=Kω>0!"#$#i=-UemfR<0τ=Ki<0"#$%$Les moteurs : capteur de position Codeur incrémental optique : - disque ajouré de fentes - passage des fentes détecté par 2 photodiodes - sens rotation donné par la voie en avance de phase sur l'autre Image source: [encoder] Image source: [Philo] Le capteur de couleur 3 modes de fonctionnement: • Couleur ( 7 couleurs codées ou composantes RGB ) • Lumière réfléchie LED active (en % d'intensité lumineuse) 0%= sombre, 100%=clair • Lumière ambiante LED inactive (en % d'intensité lumineuse) LED rouge Cellule photosensible Mesure lumière réfléchie (en %) Mode couleur Les capteurs Capteur de contact: - analogique - ferme un interrupteur - 2 états 1 =Pressé 2 =Relâché Gyroscope, vitesse angulaire et angle 1 axe: - angle par intégration de la vitesse (dérive au cours du temps !) - vitesse maximale mesurée: 440°/s Micro Electo-Mecanical System (MEMS) -mesure force Coriolis sur structure vibrante Image source: [electroiq] Les capteurs Le capteur ultrason: -mesure de distance via un temps de parcours Limitations : a. distance max mesurée: 25cm b. angle entre obstacle plan et capteur < 45° c. objet petit ou absorbant = invisible d. interférence entre 2 capteurs d. ? Images source: [escplanta] 1bis.

Robotique mobile et le robot tribot • Le robot tribot est le sujet d'étude des TPs 2. EV3 Programming 2.

EV3 Programming librobotc.so (bibliothèque dynamique robotC) sourceFile1 (exécutable) Logiciel RobotC : -un éditeur de cource -un compilateur -un téléchargeur via usb 1.

Edition du source 4. Exécution 3. Téléchargement (via usb) 2. Compilation sourceFile1 (exécutable) sourceFile1.c 2.

1) RobotC, l'environnement Compiler Compiler et télécharger 1 2 3 Installer la bibliothèque RobotC sur l'EV3 (uniquement la première fois) Réglage moteurs et capteurs Créer, ouvrir, sauver un fichier source 1 2 3 Erreur compilation, débogage Editeur de source Liste des fonctions (avec glisser-déposer dans le source et aide contextuelle disponibles) Configuration de RobotC 1.

Menu Robot : -la cible de compilation est le robot physique -la plateforme est le Lego EV3 sans le " natural language » 2. Menu Windows -> Menu level : -définie le nombre de fonctions affichées dans la fenêtre ''liste des fonctions''' -Expert est recommandé (Basic cache les fonctions pour l'écran LCD) Start et débogage Start/stop programme Step Into : -démarre et avancer en mode une instruction par clic Pause/Resume : -pauser ou reprendre l'exécution normale Le bouton " télécharger sur le robot » ouvre le mode débogage: -démarrer, exécuter instruction par instruction, arrêter le programme -visualiser l'état courant des variables, capteurs et moteurs (monitoring via l'USB) Quitter le débogage Etat courant des variables locales Note : pour afficher aussi les capteurs (menu Robotà debugger windows -> sensors) Start et débogage Pour démarrer le programme à partir de la brique EV3 (sans connexion au PC) Ø sélectionner votre programme dans le Menu files de l'EV3, répertoire RC 2.2 Le langage RobotC Langage C avec des exceptions simplificatrices: • Pas de fonction main() mais une task main() à une programmation multi-tâche simplifiée • Des nouveaux types : string pour les chaines de caractères char msg[6]="allo!"; à string msg="allo!"; • Pas d'allocation dynamique à uniquement des tableaux statiques int tab[5]; • Un prototype doit obligatoirement inclure le nom des paramètres effectifs + utiliser la notation func(int tab*) et non func(int tab[]) Les commentaires /* Ceci est un commentaire (ansi C style)*/ ou /* Ceci est un commentaire (ansi C style)*/ // Ceci est un commentaire (C++ style) ou // Ceci est un commentaire // (C++ style) Les types type Plage de valeurs Taille mémoire int -32768 à +32767 2 octets long -2147483648 à +2147483647 4 octets float ± xxx 10±xx 4 octets char 0 à 255 1 octet string chaîne de 20 char 20 octets (20 char) • pas de double, nombre à virgule en double précision • des types supplémentaires existent (sans utilité): byte, ubyte, bool • Le type string remplace les chaines de caractère char[] limité à 20 caractères = nombre de caractères qui tiennent sur la largeur de l'écran Introduit (du C++) pour faciliter la manipulation des chaînes • Affectation string a="allo!"; string b; a ="a l'huile"; b=a; • Concatenation string c="tic-"; c=a + "tac"; /*c vaut "tic-tact"*/ Equivalant en C-ansi: Char a[20]="allo!"; Char b[20]; strcpy(a,"a l'huile"); strcpy(b,a); char c[20]="tic-"; strcat(c,"tac"); Le type string • Test string a="allo!"; string b; if (a==b) {/* a et b identique*/} • Passage implicite par adresse { display(ma); } void display(string c) {c="toto"; /*modifier c, modifie aussi la variable ma */ } Equivalant en C-ansi: Char a[20]="allo!"; Char b[20]; if (!strcmp(a,b)) {/*a et b idetique*/} Seul passage par adresse.

Le type string Le type string Quelques fonctions : • strcat, strcmp, strlen strcpy sont définis pour les strings string msg="un test"; int length= strlen(msg); • sprintf(string, "format", var1,var2, ) écrit dans le string le message correspondant au format précisé string mesg; int a=-1; sprintf(mesg,"i: %d",a); ßà mesg="i: -1"; Les fonctions math Voir liste des fonctions disponibles.

On note cependant : • float cos(float fRadians) • float sin(float fRadians) retournent le cosinus/sinus d'un angle en radians. • const float PI une constante valant π. Exemple : float oneTurn =2*PI; Structure de contrôles Identiques au C: • if (condition) • if (condition) else • for ( ; ; ) • while(condition) • do while (condition); Attention: robotC autorise l'absence de cette virgule. Le multitâche Chaque programme contient au moins une tâche initiale: task main() ßà fonction main() du C-ANSI • La tâche prend fin à la fin de ses instructions. • Lorsque toutes les tâches sont finies, le programme s'arrête. task main() { int speed=30; setMotorSpeed(motorB, speed); } source.c Le multitâche • On peut créer une tâche infinie (tant que l'on n'appuie pas sur le bouton d'arrêt): task main() { int speed=30; setMotorSpeed(motorB, speed); setMotorSpeed(motorC, 30); while (1); } source.c à Les moteurs tournent indéfiniment.

Moteurs B et C à 30% de leur vitesse.

Le multitâche • On peut créer une tâche périodique: task main() { int speed=30; while(1) { playTone(400,20); sleep(2000); } } source.c temps Usage du CPU par tâche main 2000 ms Joue un note à 400Hz pendant 20x10ms Attente/stoppe l'exécution pendant 2000 ms playTone() playTone() playTone() playTone() Le multitâche Multitâche : plusieurs tâches peuvent tourner en parallèle • void startTask( task_name) permet à une tâche de démarrer en parallèle la tâche de nom task_name • void stopTask( task_name) permet à une tâche de stopper la tâche de nom task_name • void stopAllTasks() stoppe toutes les tâches dont la tâche principale à Stoppe le programme.

Le multitâche temps Usage du CPU: 2000 ms playTone() task beep(); /*prototype*/ task main() { startTask(beep); while(time1(T1)<3000) { setMotorSpeed(MotorB,30); setMotorSpeed(MotorB,30); } stopTask(beep); } task beep() { while(1) { playTone(400,20); sleep(2000); } } setMotorSpeed setMotorSpeed setMotorSpeed task beep task main à les moteurs reçoivent en boucle une commande de vitesse pendant 3s, pendant que l'autre tâche émet un bip toutes les 2s.

Le multitâche temps Usage du CPU: 2000 ms playTone() task beep(); /*prototype*/ task main() { startTask(beep); while(time1(T1)<3000) { setMotorSpeed(MotorB,30); setMotorSpeed(MotorB,30); sleep(400); } stopTask(beep); } task beep() { while(1) { playTone(400,20); sleep(2000); } } setMotorSpeed setMotorSpeed task beep task main Nécessaire pour que le programme se finisse Pas nécessaire de renvoyer la commande moteur sans répit (et saturer le CPU): la vitesse est maintenue tant qu'il n'y a pas de nouvelle commande. à un sleep() une bonne idée ! Le multitâche Communication entre plusieurs tâches : Ø Utiliser des variables globales. Toute tâche ou fonction peut accéder à ces variables. Prototypes et fonctions • Particularités RobotC pour les fonctions : • le prototype doit inclure les noms des arguments tels qu'à la définition • la notation func(int tab[]) n'est pas tolérée àutiliser la notation func(int tab*) int somme(int *tab); /*int somme(int*) rejeté*/ task main() { int tab[2]={1,2}; int a; a=somme(tab); } int somme(int*tab) { return tab[1]+tab[2] ;} 2.3 L'interface de programmation API (Application Programming Interface ) dont liste des fonctions disponibles L'écran LCD • 16 lignes d'affichage, n° 0 à 15 • un caractère : 6x8 pixels • un Big caractère : 12x16 pixel à Un Big caractère occupe 2 lignes 178 pixels (29 caractères) 128 pixels ( 16 lignes [0 15] d'affichage) task main() { string msg="Bonjour!"; float f=1; displayBigTextLine(0, "%s - %f",msg, f); displayCenteredTextLine(8,"allo!"); } Bonjour! - 1.000 allo! L'écran LCD • void eraseDisplay() efface