Memoire Graduation Trash

  • Upload
    dadi

  • View
    216

  • Download
    2

Embed Size (px)

DESCRIPTION

this the graduation thesis for Trash collector with NXT

Citation preview

  • Chapitre II

    Page 10

    CHAPITRE 2 Programmation du robot collecteur de poubelle

    II.1 Description du logiciel [5]

    trouve dans le menu principal du NXT. Le logiciel Mindstorms est l'environnement du

    dveloppement parfait pour commander le robot.

    II.1.1- iel

    Fig.II.1 Interface du logiciel

    La palette

    travail.

    La zone de travail est le lieu de conception de votre programme.

    Le panneau de configuration prsente les paramtres que vous pouvez ajuster

    lorsque vous slectionnez un bloc dans la zone de travail

    Le contrleur permet de compiler le programme et de le transfrer au robot (par

    connexion USB ou par Bluetooth).

    Le Robot Center est le lieu o sont contenus les tutoriels vous permettant de

    de Lego Mindstorms NXT (Les vhicules, les bras robotiss). Ces tutoriels se

    comportent comme des vidos vous permettant de raliser vos premiers programmes

    pas pas de manire trs didactique. Un second onglet est disponible dans cet espace

    en li .

  • Chapitre II

    Page 11

    II.1.2 Principes de programmation Mindstorms

    -

    connaitre la programmation pour raliser des programmes volus

    environnement NXT-

    environnement.

    Par dfaut, la zone de travail prsente uniquement un point de dpart. A partir de ce point

    ocs de la palette NXT-G. Les blocs NXT-G

    Fig.II.2 : La zone de travail

    Les blocs NXT-G qui ne sont pas relis un axe de squence ne sont pas pris en compte

    par le programme. Il est possible de faire en sorte que plusieurs squences de programmes

    crs partir du point de dpart comme le prsente la figure suivante.

    Fig.II .3 : Les blocs NXT-G

    II.1.3-Les blocs de programmation utilise

    -G.

    1. Les blocs courants

    2.

    3. Les blocs de capteurs

    4. Les blocs de flux

    5. Les blocs de donnes

    6. Les blocs avancs

    7. Les blocs personnaliss

  • Chapitre II

    Page 12

    Bloc dplac :

    Ce bloc contrle les moteurs du robot et synchronise ses

    mouvements. Ce bloc permet de forcer le robot avancer ou reculer

    en ligne droite ou tourner en suivant une courbe.

    La description des paramtres dans le panneau de configuration :

    Fig.II.4 : Panneau de configuration du bloc Dplacer

    Port : Ces boutons nous permettent de slectionner les ports sur lesquels sont connects nos

    moteurs.

    Direction : C'est grce ces boutons que nous pouvons indiquer le sens de rotation de nos

    moteurs l'aide des flches pour avancer et reculer ou au contraire de stopper les moteurs

    grce au panneau stop.

    Diriger : Cette option en forme de rglette nous permet de faire tourner les moteurs avec des

    vitesses diffrentes, ce qui permet de faire tourner notre robot. Plus on place le curseur vers

    un des moteurs, plus celui-ci voit sa vitesse rduite et le robot tourne donc du ct o se

    trouve ce moteur.

    Alimentation : Le rglage d'alimentation des moteurs nous permet d'indiquer quelle vitesse

    les moteurs doivent tourner.

    Dure : Cette option permet d'indiquer la dure de fonctionnement des moteurs que ce soit de

    manire illimit, pendant quelques secondes ou pour un certain nombre de degrs ou de

    rotations.

    Action suivante : Cela permet d'indiquer si nous voulons freiner les moteurs une fois

    accomplie leurs dure de fonctionnement ou si nous dsirons les laisser continuer en roue

    libre sans les freiner jusqu' ce qu'ils s'arrtent eux mme.

    Voil donc pour la description de ce bloc des plus utiles.

    Bloc enregistrer / lire :

    Ce bloc permet d'enregistrer un mouvement physique effectu par

    le robot puis de reproduire le mouvement enregistr ailleurs dans

    le programme.

  • Chapitre II

    Page 13

    Le bloc Afficher :

    Avec le bloc "Afficher", comme son nom l'indique, on peut afficher

    des images, des textes ou encore des dessins sur l'cran LCD de la

    brique NXT.

    L'afficheur LCD une taille de 100 pixels de largeur sur 64 pixels de hauteur. Un pixel tant

    un des petits carrs de l'cran.

    Une fois un bloc "Afficher" excut, le NXT garde l'affichage sur l'cran LCD tant qu'un

    autre bloc "Afficher" n'est pas utilis pour effacer l'cran ou que la fin du programme

    survienne.

    Le bloc Attendre :

    Ce bloc force le robot examiner son environnement

    programme. Par exemple, on peut utiliser le bloc attendre pour forcer

    le robot attendre une couleur, un toucher ou un dlai prcis avant de

    Le bloc Boucle :

    Ce bloc NXT-G permet de raliser une boucle dans notre

    programme, nous permettant ainsi de raliser un mme ensemble

    remplies.

    Ce bloc peut travailler dans plusieurs modes diffrents, les modes Pour

    toujours, Compteur, Temps, Logique et enfin Capteur.

    Le bloc Commutation :

    Le bloc "Commutation" permet dans son utilisation

    simplifie, d'effectuer un choix entre deux squences de

    code en fonction de la valeur renvoye par un capteur ou

    valeur.

    Bloc Moteur

    Il est trs similaire au bloc "Dplacer", car il concerne galement la mise en

    fonctionnement et le contrle des moteurs. Toutefois, la diffrence principale

    entre ces deux blocs est que le bloc "Moteur" ne peut commander qu'un seul

    moteur la fois alors que le bloc "Dplacer" permet d'en commander jusqu'

    trois en mme temps.

  • Chapitre II

    Page 14

    Bloc envoyer message

    Pour qu'il soit possible d'envoyer ou de recevoir des messages sans fil.

    Bloc lampe de couleur :

    Utilisez ce bloc pour allumer la lumire rouge, verte ou bleue du capteur de

    couleur. Par exemple, on peut allumer la lumire rouge du robot en guise de

    Les blocs de capteurs

    Bloc capteur de couleur

    Ce bloc permet au capteur de couleur

    ainsi ragir diffremment, selon la couleur dtecte.

    Bloc Capteur de rotation :

    Ce bloc NXT-

    effectu par un servomoteur.

    Bloc "Capteur sonar ultrasons" :

    Ce bloc NXT-

    d'obstacle) et ainsi dterminer les obstacles et leur distance du robot.

    Bloc "Capteur photosensible" :

    Ce bloc NXT- le capteur photosensible et ainsi

    dterminer la quantit de lumire reue par le capteur.

    Bloc "Capteur sonore" :

    Ce bloc NXT-

    Bloc "Capteur de contact" :

    Ce bloc NXT-G per

    si le capteur a t press ou au contraire relch.

  • Chapitre II

    Page 15

    Bloc "Rception de message Bluetooth" :

    Ce bloc NXT-G vous permet de traiter un message reu par communication

    Bluetooth. En utilisant la technologie de communication sans fil Bluetooth,

    votre robot peut communiquer ave

    Mindstorms NXT.

    Bloc "Timer" :

    Ce bloc NXT-G permet de grer un chronomtre.

    Les blocs de donne :

    Le bloc Math :

    soustraction, multiplication et division. Le bloc peut galement calculer

    des valeurs absolues et des racines carres.

    Le bloc Alatoire :

    Ce bloc gnre un nombre alatoire, c'est dire un nombre au hasard. On

    peut utiliser des nombres alatoires pour gnrer un comportement

    imprvisible sur notre robot.

    Le bloc Comparer :

    Ce bloc peut dterminer si un nombre est suprieur, infrieur ou gal

    un autre nombre.

    Les nombres en entre peuvent tre taps ou fournis de manire

    dynamique par des fils de donnes.

    Le bloc Plage :

    Ce bloc peut dterminer si un nombre se trouve dans une plage de

    nombres ou en dehors. Les nombres en entre peuvent tre taps,

    dfinis l'aide des glissires ou fournis de manire dynamique par des

    fils de donnes. Le signal logique en sortie, Vrai ou Faux , est

    transmis par un fil de donnes.

  • Chapitre II

    Page 16

    Le bloc Logique :

    Ce bloc applique une opration logique ses entres et envoie la rponse

    vrai/faux via un fil de donnes. Les entres, qui doivent galement tre

    de type vrai ou faux , peuvent tre dfinies l'aide des cases

    d'option ou tre fournies de manire dynamique par des fils de donnes.

    Bloc "Variable" :

    Ce bloc NXT-G, trs utile, vous permet de crer et manipuler des variables

    dans votre programme.

    Bloc constant :

    Un bloc constant peut tre considr comme un endroit o stocker une valeur

    dans la mmoire intgre du NXT.

    II -2- Position des problmes

    Dans cette partie nous allons voir comment le robot collecteur de poubelle va excuter les

    tches qui lui seront

    prcise et comment il va ragir son environnement.

    II -3- Missions ralises

    Notre robot est programm pour qu'il suit une ligne et collecter les poubelles sur cette ligne.

    Le robot va suivre cette ligne en utilisant un capteur de couleur et il va dtecter les

    poubelles par le capteur d'ultrasons en mesurant la distance de poubelle.

    Quand le robot collecte la poubelle, il va faire une rotation de 180 et il va suivre la mm

    Le robot doit faire le mme travail jusqu' ou il ni pas de poubelle sur cette ligne. La zone

    de dpart ce sera la zone de dcharge.

    II.3.1 Dplacement

    distance ni de dure.

  • Chapitre II

    Page 17

    3.1.1 Etude thorique : [6]

    1.1.1 Actionneurs et capteurs

    Chaque moteur peut tre actionn une certaine puissance, dfinie en pourcentage de la

    puissance maximale, correspondant une vitesse de rotation (non prcise). Par ailleurs, un

    capteur (circuit intgrateur nomm Rotation sensor ) surveille en permanence, pour chaque

    partir de l position initiale du mouvement.

    peut physiquement pas tre instantane (mme si on parvenait passer subitement de la

    vitesse zro la vitesse maximale, cela entranerait un glissement au niveau des roues donc

    une perte de prcision). Pareillement, le freinage ne peut pas tre instantan.

    1.1.2 Gomtrie et notations

    Nous admettons (cela est assez vident et a t constat lors des dfis prcdents) que le

    robot dcrit un arc de cercle lorsque les deux moteurs sont activs des puissances

    diffrentes. La roue gauche, correspondant au moteur activ la plus grande puissance, dcrit

    un cercle de rayon R2 et la roue droite dcrit u

    constant, est e = . Les roues sont toutes deux de rayon r, la roue gauche tourne sur elle-

    grce aux capteurs angulaires. Enfin, si le moteur de la roue gauche a une puissance p2 et

    le rapport des puissances. En somme,

    R1, R2.

    la distance que la roue C, ayant le plus de puissance, doit parcourir en cm

    R2

    rotation du robot en cm

    la distance que la roue A, ayant le moins de puissance, doit parcourir en cm

    R1

    la rotation du robot en cm

    e

    la distance sparant les deux roues du robot. Dans notre cas, e = 12,7 cm

    degrs.

    R

    le rayon de la roue. Dans notre cas, r = 2,16

    1.1.3 Un peu de physique

    Nous allons supposer que la liaison entre les roues et le sol se fait sans glissement ; cela

    impose que si le sol soit lgrement rugueux ou en tous cas pas trop lisse, et que les

    acclrations communiques aux roues ne soient pas trop fortes (comme pour les vraies

    parcourue par le point de contact d

  • Chapitre II

    Page 18

    Nous supposerons aussi que la puissance applique aux moteurs est toujours proportionnelle

    la vitesse angulaire de ceux-ci, ce qui suppose

    pas gnante (aller trop vite signifie perdre de la prcision). On aura donc une relation de

    proportionnalit entre les vitesses angulaires :

    Ou encore

    Le dbut c'est la zone de dpart aussi c'est la zone de dcharge. Le robot doit avancer puis

    faire une rotation de 180 et retourner vers la zone de dcharge.

    1.1.4 Un peu de calcul

    La relation gomtrique e= amne ( ) ) soit / r.

    :

    Fig.II.5

    Puis une rotation de 180 et continuent d'avancer.

    3.1.3 Conclusions :

    trs difficile faire mais un peu de calcule est ncessaire pour faire les choses prcisment.

    Dbut

    Fin

    Marche avant

    Rotation de 180

    Marche avant

  • Chapitre II

    Page 19

    II.3.2 Dtection de poubelle

    Dans cette pa

    mettre un signal sonore .Il va collecter la poubelle et faire demi-t

    dcharge.

    :

    non oui

    Fig.II.6 dtection de poubelle

    reconnatre des objets Quand le capteur de dtecte un

    signal sonore de dtection.

    3.2.2 Conclusion :

    robot peut communiquer avec son environnement. Ce dernier permet au robot de ragir et

    mesurer la distance.

    II.3.3 Collecter la poubelle

    Dans cette tache le robot doit dtecte une poubelle, il va la collecter puis faire un demi-tour

    pour la dcharge.

    :

    non oui

    Fig.II.7

    Dbut

    Dtecter poubelle

    Stop

    fin

    Dbut

    Dtecter

    poubelle Collecter poubelle

    Fin

  • Chapitre II

    Page 20

    Notre robot contient un bras robotis pour collecter les poubelles dtect. On a construit le

    bras robotis le moteur tourne vers avant, il permet au pince de se fermer et le bras de monter

    en haut, si le moteur tourne vers a

    3.3.2 Conclusion :

    Le bras robotis est essentiel dans notre robot, grce a un moteur programm et un systme

    mcanique, on a dvelopp un bras pour collecter les poubelles mais cette tache ncessite une

    certains prcision.

    II.3.4 Suivre une ligne

    Dans cette mission on devra raliser un programme qui permettra au robot de suivre une

    ligne noir sur un fond blanc, il doit assurer tous les mouvements possibles du parcours.

    dplacement sur la planche de teste.

    3.4.1-La mthode adopte : [7]

    On peut raliser le programme du suiveur de ligne avec plusieurs mthodes, dans notre cas

    car elle est la plus performante et elle permet

    moteurs en bon tat.

    Grce au capteur photosensible on va lire la valeur de luminosit de la couleur noir et blanc,

    n=16 pour la couleur noir, n=50 pour la couleur blanche.

    La figure ci- n :

    Fig.II.8 : Mthode par la logique floue

    plus, pour commander la puissance des deux moteurs via les quations mathmatique des

    Avant cela, il faut dfinir les constantes et les variables utiles au programme.

    s besoin

  • Chapitre II

    Page 21

    Pmax : puissance maximale. Pmin : puissance minimale.

    N : le noir n=16. B : le blanc n=50.

    Pa(n) : puissance du moteur C en fonction de n.

    Pc(n) : puissance du moteur B en fonction de n.

    Aa, Ba : coefficients de Pa(n).

    Ac, Bc : coefficients de Pc(n).

    Fig.II.9 : Dfinition des constants Fig.II.10 : Dfinition des variables

    Pour commander la puissance des deux moteurs, on utilise une droite croissante Pc(n) et

    une autre dcroissante Pa(n) [16 ; 50], donc on calcul la tangente Ac

    Bc pour la droite croissante et Aa, Ba

    3.4.2 Les quations des puissances et les coefficients :

    Pa(n)= Aa*n + Ba Pc(n)= Ac*n + Bc

    Aa= (Pmax Pmin)/ (N B) Ba= (N*Pmin B*Pmax)/ (N B)

    Ac= - Aa Bc= (N*Pmax B*Pmin)/ (N B)

    Voici ci- :

    Fig.II.11 : Le principe de dplacement du robot

  • Chapitre II

    Page 22

    Le programme qui calcule les coefficients : Pour Aa :

    Fig.II.12 : Programme qui calcul Aa

    Pour Ac :

    Fig.II.13 : Programme qui calcul Ac

    Pour Ba :

    Fig.II.14 : Programme qui calcul Ba

    Pour Bc :

    Fig.II.15 : Programme qui calcul Bc

  • Chapitre II

    Page 23

    Fig.II.16

    squentiellement, mais toutes les lignes sont excutes en mme temps de faon concurrente).

    Une deuxime rcupre, en continu, la valeur de la luminosit n.

    Les deux dernires sont charges de calculer, en boucle, les puissances, au moyen des

    Pa(n) et Pc(n), et de les appliquer sur le moteur adquat.

    commencer raliser les boucles, afi

    Dbut

    Calcule Aa

    Calcule Ac

    Calcule Ba

    Calcule Bc

    Calcule puissance Pc Lire la valeur luminosit Calculer puissance Pa

    Fin

  • Chapitre II

    Page 24

    3.4.3 Conclusion :

    surveillance, Grace au programme du suiveur de ligne, on a donn notre robot la possibilit

    de suivre un itinraire en toute autonomie. Traitement du suivi de ligne, en vitant de refaire

    des calculs identiques.

    II.3.5 Suivre une ligne et collecter une poubelle

    Dans les tches prcdente on a ralis un programme permettant au robot de collecter les

    our lui

    donner plus de mobilit.

    On a ajout notre programme de suiveur de ligne le programme de collection de poubelle,

    qui permettra au robot non seulement de suivre une ligne noire mais aussi de faire la

    collection de poubelle.

    Dans les tches prcdentes on a ralis un programme permettant au robot de collecter les

    poubelles avec le suiveur de ligne pour lui donner plus de mobilit.

    non oui

    Fig.II.17 et collection de poubelle

    permettra de faire la collection de poubelle.

    Dbut

    Suivre une ligne

    Dtecter

    poubelle Collecter poubelle

    Fin

    Rotation de 180

    Marche avant

  • Chapitre II

    Page 25

    poubelle.

    3.5.2-Conclusion :

    fondamentales pour un robot collecteur de poubelle pour fonctionner correctement.

    II.3.6 Dcharger la poubelle

    Aprs la tche de collection de poubelle, nous avons programm le robot collecteur de

    poubelle dcharger les poubelles dans la zone de dcharge (fin).

    la dcharge la poubelle

    Fig.II.18

    vre. La poubelle va

    tre pose dans la zone de dcharge.

    3.6.2 Conclusion

    Le bras robotis est essentiel dans notre robot, on a dvelopp un bras pour dcharger les

    poubelles mais cette tache ncessite une certains prcision.

    Dbut

    Collecter poubelle

    Fin

    Dcharger poubelle

    Dtecter un couleur bleu

  • Chapitre II

    Page 26

    II.4. Organigramme finale

    non oui

    Fig.II.19

    Dbut

    Marche avant

    Suivre une ligne

    Dtecter poubelle Stop

    Collecte poubelle

    Rotation de 180

    Marche avant

    Fin

    Dcharger poubelle

    Dtecter une couleur bleu

    Dtecter un couleur rouge

    Rotation de 180

    Suivre une ligne

    Dtecter un couleur bleu

    Stop

  • Chapitre II

    Page 27

    II.5 Le parcours

    Fig.II.20 Le parcours

    II.6. Conclusion

    Dans ce chapitre, nous avons commenc la partie programmation. Nous avons ralis le

    programme qui excute plusieurs tches, cause de ce programme notre robot est capable de

    suivre une ligne et collecter les poubelles.