Valeur de cette activité : 5 points
Compétence :
Compétence :
Compétence :
Robot NXT Linux 02 - Défi - feu de circulation

A-Module 12 : ROBOTIQUE - Linux : 5 points - difficulté : 2

Robot NXT sous Linux 02 - Défi - feu de circulation

Pour cette activité, vous aurez à consulter les pages d'aide suivantes :
  1. Activité Robot-Nxt-Linux : Étape 0
  2. Résumé des principales commandes


Description

Ce défi consite à :
  1. Construire un robot qui se déplace ayant comme accessoire, un capteur de lumière et un capteur ultrason.
  2. Le capteur de lumière doit être orienté vers le bas et situé à moins de 1 cm du sol.
  3. Programmer ce robot afin qu'il se déplace en ligne droite; si le capteur de lumière capte une lumière rouge (couleur de la table : fin du carton blanc), le robot doit s'arrêter; si la capteur ultrason détecte un objet situé à moins de 30cm de votre robot, le robot doit s'arrêter.
Notions complémentaires :

Dans une commande if , vous pouvez utiliser :

- les opérateurs de comparaison
et
- les opérateurs logiques

suivants afin de vérifier plus d'une condition :

Les opérateurs de comparaison sont :

Signe

Nom

Exemple

Résultats possibles

==

Egal

x == 11

true ou false

<

Inférieur

x < 11

true ou false

<=

Inférieur ou égal

x <= 11

true ou false

>

Supérieur

x > 11

true ou false

>=

Supérieur ou égal

x >= 11

true ou false

!=

Différent

x != 11

true ou false


Les opérateurs logiques sont :

 Signe

Nom

Exemple

Signification

&&

et

(condition1) && (condition2)

condition1 et condition2

||

ou

(condition1) || (condition2)

condition1 ou condition2


Exemple 1 :
task main()
{
int a;
int b;
a=1;
b=2;
if(  a==0  || b==2  )
//vérifie si la valeur a est égale à 1 "ou" si la valeur b est égale 2 { TextOut(20, 50, "oui"); Wait(3000); } else { TextOut(20, 50, "non"); Wait(3000); } }


Exemple 2 :
task main()
{
int a;
int b;
int c;
a=1;
b=2;
c=2;
if(  (a==0  && b==2) || b==c  )
//vérifie si la valeur a est égale à 0 "et" la valeur b est égale 2 "ou" si la valeur b est égale à la valeur c { TextOut(20, 50, "oui"); Wait(3000); } else { TextOut(20, 50, "non"); Wait(3000); } }



  1. Construisez votre robot qui peut se déplacer ayant comme accessoire un capteur de lumière et un capteur ultrason
  2. Effectuez votre programmation afin que le robot :

    a) se déplace en ligne droite;
    b) que le robot s'immobilise  si le capteur de lumière capte une lumière rouge (couleur de la table à la fin de votre carton blanc)
    c) que le robot s'immobilise si la capteur ultrason détecte un objet situé à moins de 30 cm devant lui de votre robot, le robot doit s'arrêter:
    Pistes suggérées :

    1. Faire très attention à la distance qui sépare votre détecteur de lumière du sol. Cette distance doit TOUJOURS être la même.

    2. Commencez votre programme en utilisant le programme AE de l'activité 62110.
      Dans votre boucle répéter toujours , while(true) , de votre programme principal, utilisez la commande pour afficher sur l'écran du robot la valeur captée par votre capteur de lumière.
    3. Vous aurez à utiliser par la suite programmes N et O pour la programmation du capteur de lumière et le programme M pour la programmation du capteur Ultrasons de l'activité 62110 que vous devrez modifier.

    4. Utilisez les structures si ...autrement...
      if( ...condition... )
      { 
      ...action1...
      }
      else
      {
      ...action2...
      }
      

      Cliquez ici pour afficher un exemple

    5. et les structures si imbriquées
      if(  ...condition1... )
      {
      ...action1...
      }
      else
      {
      if(...condition2...)
      {
      ...action2...
      }
      else
      {
      ...action3...
      }
      }
      
      

      Cliquez ici pour afficher un exemple

    6. ou les structures si en utilisant plusieurs opérateurs de comparaison (suggéré)
      if(  (condition1 && condition2) || condition3 )
      {
      ...action1...
      }
      else
      { 
       ...action2...
       
      }
      
      

      Cliquez ici pour afficher un exemple
    
    Vous aurez besoin des structures suivantes :
    
    task main()
    {
    
    }
    
    while(true)
    {
    }
    
    if(    ||   )
    {
    }
     
    
    
    
    
    et des commandes suivantes :
    
    
    NumOut(10,10,Sensor(IN_1));
    
    SetSensorLight(IN_1);      
    
    SetSensorLowspeed(IN_2);   
    
    Sensor(IN_1)
    
    SensorUS(IN_2)
    
    OnFwd(OUT_AB,50);
    
    Off(OUT_AB);
    
    nbc feu.nxc -O=feu.rxe
    
    sudo t2n -put feu.rxe
    
    
    Programme de base à utiliser avec la méthode d'utilisation des structures si en utilisant plusieurs opérateurs de comparaison dans une même structure si
    ATTENTION, la valeur de la lumière captée par le capteur de lumière varie entre 0 (pas de lumière) et 100 (pleine lumière).
    Cette valeur captée pour la carton blanc dans les conditions réelles ne sera pas 100.
    Il est fortement suggéré d'afficher sur l'écran du robot la valeur captée par votre capteur de lumière (commande NumOut(10,10,Sensor(IN_1)); ).
    Cette valeur dépendra de plusieurs facteurs:
    - Intensité de la lumière ambiante
    - Présence du soleil et/ou nuages
    - fermeture et/ou ouverture des rideaux dans la classe
    - votre emplacement dans la classe
    - la hauteur et orientation de votre capteur de lumière sur votre robot
    - la stabilité de la fixation de votre capteur sur votre robot
    - ..
    t
    {
    S ...
    S ...
    w... 
    {
    N...
    if(    S... < ...      ||    S <  ... )
    {
    O...
    }
    e...
    {
    O...
    }
    }
    }
    

    1. Écrivez votre programme au format .nxc
    2. Compilez votre programme au format .rxe
    3. Téléchargez votre programme dans le robot avec le logiciel t2n (en utilisant le terminal)

  3. Effectuez quelques tests et modifiez votre programmation au besoin.

  4. Lorsque votre programme fonctionne bien, faites une démonstration à l'enseignant qui vous donnera votre code de validation de votre travail.

  5. Téléchargez vos documents (.nxe et .rxe) dans votre espace de téléchargement.

  6. Ajoutez une page à votre portfolio en affichant l'assistant HTML ainsi que la directive 77903

  7. Inscrivez dans le champ titre : Défi - feu de circulation

  8. Sélectionnez la section : MODULE ROBOTIQUE

  9. Sélectionnez la matière : informatique

  10. Inscrivez dans le champ no de la directive : 77903

  11. Inscrivez dans votre page le titre de niveau 1 : Défi - feu de circulation

  12. Ajoute ensuite le nom de tes coéquipiers(ères)

  13. Ajoutez un LIEN vers chacun de vos fichiers .nxc et .rxe



  14. Copiez et collez le code de votre programme nxc dans votre page entre les balises <pre> </pre>

  15. Ajoutez ensuite au bas de votre page le texte "Mon code de validation est : " suivi de votre code de validation de votre travail.

  16. Visualisez votre page et apportez des modifications au besoin.