Rss Les blocs mathématiques

Sommaire:

 

Les blocs mathématiques de HiTechnic



La société HiTechnic, bien connu pour ses capteurs certifiés LEGO, a publiée sur son blog des articles indiquant la mise à disposition de blocs de programmation NXT-G.

Pour importer ces nouveaux blocs mathématiques dans votre logiciel NXT-G, rendez-vous sur cette page qui vous explique comment le faire.

Concernant les fichiers des programmes d'exemple, ils devront être décompressé et placés dans le répertoire approprié (Documents/LEGO Creations/MINDSTORMS Projects/Profiles/Default).


Les blocs HiTechnic Sin/Cos et ATan2




Ces deux blocs permettent le calcul de fonctions trigonométriques telles que sinus, cosinus et Arc tangente.

Ces blocs vous serviront lorsque vous désirerez effectuer des calculs plus complexe comme passer de coordonnées cartésiennes à des coordonnées polaires ou utiliser un capteur d'accélération comme inclinomètre.

Ils sont disponible en deux versions.
Une version ne gérant que les nombres entiers est destinée aux utilisateurs de la version 1.0 du logiciel NXT-G.
Une autre version gérant les nombres décimaux (à virgule flottante) est destinée aux utilisateurs de la version 2.0 du logiciel NXT-G.

Ils sont réputés rapides (calcul de l'ordre de 0,5 à 0,8 ms) et d'une précision d'au moins 6 chiffres pour les versions 2.0 (+ / - 0,000001) !!!



Le bloc HiTechnic Sin/Cos



Ce bloc calcul les valeurs du sinus et du cosine d'un angle Theta.

Une manière simple de visualiser ces valeurs est d'imaginer un cercle unitaire, c'est à dire ayant un rayon de 1, comme sur l'image de droite.

Le sinus vous donne la valeur sur l'axe vertical Y et le cosinus vous donne la valeur sur l'axe horizontal X.

Notez que ces valeurs sont signés, ce qui veut dire qu'elles ont un signe positif ou négatif (+ ou -).

Le sinus sera négatif si l'angle Theta est compris entre 180° et 360°.

De même, le cosinus sera négatif si l'angle Theta est compris entre 90° et 270°.

Notez également que le sinus et le cosinus se répète à l'infini dans chaque direction, de sorte que le sinus d'un angle Theta de 3610° vous donne le même résultat qu'un angle Theta de 10°puisque 3610° représente 10 fois un cercle de 360° + un angle Theta de 10°.

Vous pouvez télécharger ce bloc sur les pages suivantes :



Voici à quoi ressemble ce bloc pour la version 2.0 :




La valeur de l'angle Theta est entrée directement dans le panneau de configuration à l'aide du paramètre Angle ou fournit par un fil de données sur la prise de données de gauche.

Pour ce bloc, l'angle Theta peut être indiqué dans les unités degrés ° ou radians à l'aide du paramètre Units.

Les valeurs du sinus et du cosinus de cet angle Theta se trouvent sur les prises de sorties à droite du plot de données et dans une plage allant de -1 à 1 avec une précision d'au moins 6 chiffres (+ / - 0,000001).


Vous trouverez un programme d'exemple pour la version 2.0 de ce bloc sur cette page.

Le bloc pour la version 1.0 ressemble beaucoup à celui de la version 2.0, sauf que celui-ci n'accepte que l'unité degrés ° pour l'angle Theta et que les valeurs de sorties, d'une plage allant de -100 à 100, sont multipliées par 100.

De sorte que si une sortie vous fournie le nombre 87 par exemple, cela correspondra à une valeur de 0,87.

Vous trouverez un programme d'exemple pour la version 1.0 de ce bloc sur cette page.

Vous pouvez essayer réellement ce programme d'exemple sur le bloc "Sin/Cos" sur votre NXT et étudier ce programme pour comprendre comment il fonctionne, c'est un très bon exercice.



Le bloc HiTechnic ATan2



Ce bloc prend deux valeurs, X et Y, puis calcule l'angle Theta correspondant par rapport à l'axe X comme montré sur l'image de droite.

En termes simples, l'angle Theta est égal à l’arc tangente de Y/X.

Ce bloc prend également en compte le signe de X et de Y pour qu'il puisse déterminer correctement l'angle Theta n'importe où le long du cercle unitaire.

Par exemple, l'angle Theta sera positif si Y est positif et il sera négatif si Y est négatif.

Vous pouvez télécharger ce bloc sur les pages suivantes :



Voici à quoi ressemble ce bloc pour la version 2.0 :




Les valeurs de X et de Y sont entrés directement dans le panneau de configuration à l'aide des paramètres X et Y ou fournit par des fils de données sur les prises de données de gauche.

La valeur de l'angle Theta se trouve sur la prise de sortie à droite du plot de données, dans une plage allant de -180° à 180° en degrés et de -pi à pi en radians.

Là encore, pour ce bloc l'angle Theta de sortie peut être exprimé dans les unités degrés ° ou radians à l'aide du paramètre Units du panneau de configuration.


Vous trouverez un programme d'exemple pour la version 2.0 de ce bloc sur cette page.

Quant au bloc pour la version 1.0, il fournit la valeur de l'angle Theta dans une plage allant de -179° à 180°.

Vous trouverez un programme d'exemple pour la version 1.0 de ce bloc sur cette page.

Vous ne pourrez peut-être pas essayer réellement ce programme d'exemple sur le bloc "ATan2" si vous ne possédez pas de capteur accéléromètre, mais il vous est toujours possible d'étudier ce programme pour comprendre comment il fonctionne.



Le bloc HiTechnic Limit Number



Ce bloc est conçu pour limiter la portée d'un nombre.

Vous pouvez télécharger ce bloc sur cette page.

Il prend en entrée une certaine valeur ainsi qu'une valeur minimal et maximal.

Si la valeur d'entrée est dans l'intervalle entre les valeurs minimal à maximal, alors la valeur de sortie est simplement le même nombre que la valeur d'entrée.

Si la valeur d'entrée est en dehors de l'intervalle, l'une des deux opérations de limitation sera appliquée à cette valeur d'entrée :

  • Clamp : Opération qui consiste à serrer la valeur de sortie dans la plage souhaitée.
  • Wrap Around : Opération qui consiste à enrouler la valeur d'entrée autour de la plage souhaitée.


Voici le fonctionnement de ces deux opérations :


L'opération Clamp




Cette opération ne fait que limiter une valeur dans une certaine plage.

Si la valeur d'entrée est inférieure à la valeur minimal, la valeur de sortie est égale à cette valeur minimal.

Si la valeur d'entrée est supérieure à la valeur maximal, la valeur de sortie est égale à cette valeur maximal.

Sinon la valeur de sortie est la même que la valeur d'entrée.

Par exemple, disons que vous faites un calcul et que vous avez une valeur de puissance que vous voulez envoyer aux moteurs. Le problème est que la plage de valeurs de vos blocs de mathématiques va au-delà ce que vous voulez envoyer aux moteurs. Ce bloc va limiter la valeur de puissance entre 0 et 75 par un simple réglage de la valeur minimal à 0 et de la valeur maximal 75.

Dans cet exemple, le panneau de configuration du bloc devrait ressembler à ceci:




L'opération Wrap Around




Cette opération enroule la valeur d'entrée autour d'une certaine plage.

Tout dépassement d'une valeur limite par la valeur d'entrée se répercute dans la plage de sortie à partir de la limite opposé.

Cela paraît compliqué à expliquer, mais c'est pourtant très simple à comprendre.

Par exemple, si vous utilisez un capteur boussole, vous pouvez avoir un besoin de normaliser un angle en degré dans une plage particulière tel que de 0° à 360° ou -180° à 180°.

Imaginons que vous travaillez sur un programme qui a besoin de trouver la direction opposée par rapport au capteur boussole.

Une manière de trouver l'opposé d'un angle est d'ajouter 180°.

Si l'angle fournit par le capteur boussole est de 30° et que vous ajoutez 180° vous obtenez 210°. Jusque-là pas de problème.

Mais que se passe t-il quand la sortie du capteur boussole est de 270° ?

Si vous ajoutez 180° vous obtenez 450° !!!

Dans ce cas, vous pouvez utiliser ce bloc configuré en opération Wrap Around pour enrouler la valeur d'entrée autour de la plage allant de 0° à 360°.

Votre programme pourrait donc ressembler à ceci :



Lorsqu'il est utilisé de cette manière, la valeur de sortie sera automatiquement normalisée de telle sorte que les 450° de la valeur d'entrée soit enrouler autour de la plage allant de 0° à 360° et que le résultat en sortie fournisse une valeur de 90°.

En effet, 450° - 360° = 90°.

Ces 90° ce répercuteront à partir de la limite opposé, à savoir la valeur minimal égale à 0°, et donnera donc 0° + 90° = 90°.

Notez que le panneau de configuration de ce bloc dispose d'un indicateur de rétroaction sur le côté gauche dans le champ d'orange.

Cela rend facile le test des fonctionnalités de ce bloc.

Vous pouvez entrer des valeurs d'entrée dans le paramètre Number et voir le résultat sur la valeur de sortie dans la zone de rétroaction sur le côté gauche.

Notez également la liste déroulante du paramètre Preset qui vous permet de choisir parmi quatre réglages communs :

  • Power (Clamp 0 to 100) : Opération Clamp avec valeur minimal à 0 et valeur maximal à 100.
  • Power (Clamp -100 to 100) : Opération Clamp avec valeur minimal à -100 et valeur maximal à 100.
  • Angle (Wrap Around 0 to 360) : Opération Wrap Around avec valeur minimal à 0 et valeur maximal à 360.
  • Angle (Wrap Around -180 to 180) : Opération Wrap Around avec valeur minimal à -180 et valeur maximal à 180.


L'utilisation d'un de ces préréglages est facultatif et vous pouvez aussi choisir un réglage personnalisé en choisissant l'option Custom dans cette même liste déroulante.

Voila qui clôt cette partie consacrée aux blocs mathématiques de la société HiTechnic.

 
 « Page précédente
Le robot fou
 1  2  3 ... 5  6  7  8  9 
Page suivante »
Conclusion 
 
 
1 Note
Ecrit par: FRED_80 Le: 10/03/12