Rss Les fils de données

Sommaire:

 

Les données de type numérique



Attend, STOP ....

On a déjà vu les données de type numérique au début de cette partie, tu rabâche ou quoi !!!

Mais non, mais non ...

J'ai introduit, il est vrai, au début de cette partie les données de type numérique et leurs utilisation avec d'autres blocs comme les blocs "Moteur" par exemple.

J'ai fait un survol rapide car la mise en application pratique de ce type de fils de données se fera dans les parties suivante.

Toutefois pour être complet dans mes propos, je voudrais ici vous parler de l'utilisation des fils de données de type numérique avec les blocs "Boucle" et "Commutation".


Utilisation du bloc "Boucle" avec les fils de données numérique




Pour mettre en application l'utilisation de fils de données de type numérique avec un bloc "Boucle", je vous propose de créer un programme vous permettant de visualiser sur l'écran de votre NXT les valeurs renvoyées par le compteur d'un bloc "Boucle".

Visualiser le compteur d'un bloc "Boucle" .... J'ai jamais vu ça moi, t'es ouf comme mec toi !

En fait, si vous êtes un peu observateur, vous aurez sans doute remarqué le paramètre Montrer dans le panneau de configuration du bloc "Boucle" :



Ce paramètre Montrer vous permet justement, comme on peut le deviner par son nom, de montrer la prise de données correspondant au compteur du bloc "Boucle" lorsque la case de ce paramètre est coché.

Dans ce cas, une prise de données apparait sur le côté gauche du bloc "Boucle" :



Cette prise est disponible sur toutes les boucles quelque soit leur mode de contrôle.

La donnée fournie par cette prise est de type numérique et correspond au nombre de fois que la boucle s'est exécutée.

De fait, la première fois que le programme entre dans une boucle, comme elle ne s'est encore jamais exécutée, la valeur fournie sur sa prise de données nommée Nombre de boucles est 0.

Lorsque la boucle s'exécutera à nouveau, la valeur disponible sur sa prise de données Nombre de boucles sera 1.

Et ainsi de suite, chaque fois que la boucle s'exécute, son compteur est augmenté de 1.

Pour visualiser cela, je vous propose de créer le programme suivant :







Ce programme est d'une simplicité absolue et vous ne devriez pas rencontrer de soucis de compréhension à votre niveau.

La première fois que le programme entre dans la boucle, il prend la valeur disponible sur sa prise de données Nombre de boucles, la transforme en chaîne de caractère à l'aide d'un bloc "Nombre en texte" puis l'envoi sur un bloc "Afficher" pour pouvoir visualiser cette valeur sur l'écran du NXT.

Ensuite, le programme attend 5 secondes grâce à un bloc "Attendre" configuré comme il se doit.

Une fois le temps passé, la boucle s'exécute de nouveau et son compteur est augmenter de 1.

L'affichage de cette nouvelle valeur sur l'écran du NXT permet de voir le nombre de boucles effectué par le programme.

Vous pouvez donc voir tranquillement que toute les 5 secondes le programme exécute les blocs dans la boucle et fournit le nombre de boucles effectuées sur l'écran du NXT.
Et cela de manière infini.

Bref, rien de bien compliqué la dedans. ;)

Réalisons maintenant un autre programme utilisant le compteur de boucle, mais cette fois-ci plus rapide et permettant de visualiser autrement l'information fournie par ce compteur.

Ce programme sera plus rapide car il ne disposera plus d'une temporisation de 5 secondes dû au bloc "Attendre", qui n'était placé dans le programme précédent que par soucis de compréhension et de confort de lecture sur l'écran du NXT, mais d'une temporisation de seulement 0,1 seconde (soit 100 millisecondes).

L'information du compteur sera également visualisé, sur l'écran du NXT, non plus sous forme de chiffres, mais sous formes graphiques.

En effet, le but de ce programme est de dessiner un cercle dont le rayon augmente graduellement lors de l'exécution du programme.

Cela pourrait ressembler à l'écran de base d'un sonar actif d'un bateau, et c'est d'ailleurs pour ça que l'on va y rajouter un son de sonar ... Rien que pour la forme ! :p

Voici donc le programme que je vous propose de réaliser :








Le programme commence simplement par un bloc "Son" qui joue un son de sonar actif, histoire de faire ambiance.
Noter que la case du paramètre Attendre de son panneau de configuration est décoché de manière à ne pas attendre la fin du son avant d'exécuter les blocs suivants.

Il est suivi d'un bloc "Boucle" configuré en mode Compteur pour que la boucle ne s'exécute que 60 fois, et la prise de données du compteur sera rendu visible en cochant la case du paramètre Montrer.

A l'intérieur de la boucle, un premier bloc "Afficher" configurer de tel sorte qu'il dessine un cercle à partir du centre de l'écran dont le rayon sera déterminé par la valeur envoyée par le compteur de la boucle.
De sorte que plus le nombre de boucles exécutées par le programme est grand, plus le rayon du cercle dessiné est grand.

Une petite temporisation de 0,1 seconde est placée dans la boucle de manière à avoir le temps de visualiser l'agrandissement graduel du cercle sur l'écran du NXT.

Une fois les 60 boucles effectuées, un dernier bloc "Son" jouera un son OK nous informant qu'aucun contact sonar n'a été détecté ! :lol

Bref, voila une belle illustration de l'utilisation d'un fil de données numérique avec un bloc "Boucle".


Utilisation du bloc "Commutation" avec les fils de données numérique




Pour mettre en application l'utilisation de fils de données de type numérique avec un bloc "Commutation", je vous propose de créer un programme vous permettant de visualiser sur l'écran de votre NXT la couleur détecté par le capteur de lumière configuré en mode capteur de couleur.
Le tout accompagné par le son correspondant, en anglais, nous indiquant cette couleur.

Le principe de ce programme reste simple à comprendre.

Le capteur de couleur est capable de discerner 6 couleurs différentes, chacune représentée par un chiffre de 1 à 6 :

  1. Black : Noir
  2. Blue : Bleu
  3. Green : Vert
  4. Yellow : Jaune
  5. Red : Rouge
  6. White : Blanc



C'est une de ces valeurs qui est disponible sur la prise de données nommée "Couleur détectée" du bloc "Capteur de couleurs" lorsque celui-ci détecte une couleur.

Cela représente donc 6 possibilités de choix pour le programme, qui seront gérés par un bloc "Commutation".

Chacune de ces possibilités fera donc en sorte que le programme joue le son correspondant à la couleur détecté et affichera le nom de cette couleur sur l'écran du NXT.

Pour commencer, plaçons une habituel boucle infinie :




Mettons un bloc "Capteur de couleurs" dans cette boucle :




Disposons ensuite un bloc "Commutation" configuré en contrôle par valeur de type numérique :



Vous remarquerez, sur la droite du panneau de configuration du bloc "Commutation", qu'il existe uniquement 2 conditions de commutation pour le moment.
Cela vient du fait que le bloc "Commutation" est vue à plat et que, dans ce type d'affichage, il ne peut y avoir que 2 rayons de séquence visible.



Hors, nous venons de voir dans l'énoncé de principe du programme que nous aurons besoin de 6 conditions correspondant chacune aux 6 couleurs détectable.

Pour remédier à cela, il existe un bouton + sur la droite du panneau de configuration du bloc "Commutation" qui vous permet de rajouter des conditions au bloc "Commutation".
De plus, notez pour information que le bouton - juste en dessous de ce dernier vous permet de supprimer des conditions.

Toutefois, vous pouvez également voir que ce bouton + n'est pas disponible pour l'instant car le mode d'affichage du bloc "Commutation" est toujours configuré sur une vue à plat !

Commencez donc par supprimer la vue à plat du bloc "Commutation" en décochant la case du paramètre Afficher :



Ce faisant, vous libérez le bouton + qui permet de lui rajouter des conditions.

Et vous changer également l'affichage du bloc "Commutation" :



Les 2 onglets présent actuellement sur le bloc "Commutation" représente les 2 conditions avec leur rayon de séquence respectif.

Nous allons maintenant rajouter les 4 conditions qui nous manquent pour notre programme, de manière à en obtenir 6 au total.

Pour faire cela, il vous suffit de cliquer 4 fois sur le bouton + à droite du panneau de configuration :



Maintenant nous avons bien nos 6 conditions, mais un souci persiste.

En effet, si vous regardez bien la colonne de droite du paramètre Conditions, vous vous apercevez que les valeurs de ces conditions s'échelonnent de 0 à 5 alors que notre capteur de lumière nous fournira des valeurs allant de 1 à 6 !!!

Vous devez donc à présent modifier les valeurs des conditions pour quelles correspondent aux valeurs que le capteur de lumière enverra au bloc "Commutation".

Pour ce faire, il faut d'abord sélectionner la condition à modifier dans le paramètre Conditions du panneau de configuration, puis changer sa valeur dans le champ situé juste en dessous du tableau des conditions.

Commencer par la dernière condition, la numéro 6, puis affecter lui la valeur 6 au lieu de la valeur 5 actuelle :



Ensuite, continuer pour toutes les autres conditions, jusqu'à la première, de manière à leurs affecter comme valeur le chiffre correspondant à leur numéro de conditions (valeur 5 pour la condition 5, valeur 4 pour la condition 4, ...)

Enfin, il reste encore un petit détail de moindre importance à régler. Celui de la condition par défaut.

La condition par défaut est celle qui sera exécutée par le programme lorsque la valeur transmise au bloc "Commutation" ne correspond à aucune des valeurs des conditions définies dans le paramètre Conditions du panneau de configuration.

Actuellement, il s'agit de la condition numéro 2 qui est choisie comme condition par défaut.
Cela est visible dans le tableau du paramètre Conditions grâce à la petite coche situé devant le numéro de la condition.

Cela pourrait très bien convenir, mais ici nous allons décider de sélectionner la condition numéro 1 comme condition par défaut .

Ce réglage se fait simplement en sélectionnant la condition à définir par défaut et en cliquant sur le bouton étoile * situé en bas à droite du panneau de configuration :



La condition numéro 1 est à présent configuré comme étant celle par défaut, la petite coche visible devant elle en témoigne :



Voila, vous disposez à présent d'un bloc "Commutation" à 6 conditions, de valeurs s'échelonnant de 1 à 6, ce qui correspond aux valeurs envoyées par le capteur de lumière, et la condition numéro 1 est définie comme étant la condition par défaut.

Il ne vous reste plus qu'à tirer un fil de données du bloc "Capteur de couleur" jusqu'au bloc "Commutation".

Rajouter ensuite un bloc "Son" et un bloc "Afficher" pour chaque condition du bloc "Commutation" en cliquant auparavant sur son onglet respectif :



Les onglets sont au nombre de 6, le numéro 1 étant le plus à gauche et le numéro 6 étant le plus à droite.

Une infobulle vous indiquant son numéro s'affiche lorsque vous pointez votre souris sur un onglet et la ligne correspondante du tableau des conditions se trouve surligner en orange lorsqu'un onglet est sélectionné.

Vous ne pouvez donc pas vous tromper de conditions.

Chaque bloc "Son" et chaque bloc "Afficher" doit être configuré de manière unique en respectant, pour chaque numéro de condition, la couleur correspondante.

Voici, en rappel, le tableau de correspondance entre valeurs et couleurs :

  1. Black : Noir
  2. Blue : Bleu
  3. Green : Vert
  4. Yellow : Jaune
  5. Red : Rouge
  6. White : Blanc



Ainsi pour la condition numéro 1, à laquelle on a affecté la valeur 1 et qui correspond donc à la couleur noire, le bloc "Son" devra jouer le son "Black" sans attendre la fin avant que le bloc "Afficher" ne place sur l'écran du NXT la phrase "Couleur noire" :




Configurer comme il se doit chaque bloc "Son" et "Afficher" pour chaque condition, en respectant le tableau ci-dessus.

Pour finir, nous placerons un bloc "Attendre" configuré en mode capteur de bouton NXT orange enfoncé après le bloc "Commutation" :




Cela permettra au programme d'attendre que l'on appuie sur le bouton orange du NXT pour effectuer une nouvelle détection de couleur, afin d'éviter que le NXT ne répète en boucle le nom de la couleur.

Ce qui pourrait être agaçant !!! :siffle

Voila, c'est en fait plus long à écrire qu'à faire.

L'utilisation de ce programme est simple.

Lancer le programme, placer le capteur de lumière devant une couleur et appuyer sur le bouton orange de votre NXT pour qu'il vous indique par le son et le texte la couleur détectée.

Tout ça conclu pour de bon cette partie consacrée aux fils de données.

 
 « Page précédente
Les données de type logique
 1  2  3  4  5  6  7 
Page suivante »
Conclusion 
 
 
2 Notes
Ecrit par: FRED_80 Le: 10/08/11