Wikijunior:Lego/Mindstorms Robotics

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Les capacités du robot[modifier le wikicode]

Lego Mindstorms Nxt-FLL.jpg

La principale composante de commande du robot est l'ordinateur qui est appelé la brique NXT. C'est une brique intelligente programmable et qui agit comme le cerveau du robot. La brique intelligente NXT peut prendre l'entrée à partir de quatre capteurs et de contrôler jusqu'à trois moteurs. La brique a une configuation de 100×64 pixels, un écran LCD monochrome et quatre boutons qui peuvent être utilisées pour naviguer d'une interface d'utilisateur en utilisant les menus hiérarchiques. L'ordinateur est également sur la brique et peut lire des fichiers audio avec un taux d'échantillonnage et jusqu'à 8 kHz. L'alimentation est fournie par 6 piles AA (1,5 V chacun) des piles et une batterie Li-ion rechargeable et un chargeur. En plus de la brique intelligente NXT, le robot de contrôle a les capacités suivantes:

Moteurs ;

Les moteurs sont la principale source d'alimentation. Le robot va utiliser les moteurs pour se déplacer, soulever des charges, et faire fonctionner les bras, attraper des objets, une pompe à air, et effectuer d'autres tâche qui nécessite une alimentation. Il existe également différents types de moteurs électriques qui partagent la propriété de convertir l'énergie électrique en énergie mécanique.

Capteurs tactiles ;

Les détecteurs de contact de travail plus ou moins comme une partie d'un bouton d'une sonnette, quand on insert un circuit il remplit les flux d'électricité à travers elle.

Capteur de lumière ;

Les capteurs de lumière détectent la lumière et mesure son intensité. En dépit de ses limites, vous pouvez l'utiliser pour une vaste gamme d'applications.

Défaillances techniques[modifier le wikicode]

Probablement le plus gros problème face à une commande du robot est la fiabilité générale du système. Un robot pourrait faire face à toute une combinaison des modes de défaillance suivants:

Défaillances mécaniques ;

Celles-ci pourraient aller d'un mouvement temporaire de trains d'engrenage coincé ou une panne mécanique grave.

Défaillances électriques ;

C'est quand l'ordinateur qui lui-même ne manquera pas, mais les connexions desserrées des moteurs et des capteurs qui sont un problème commun.

Manque de fiabilité du capteur ;

Les capteurs fourniront des données bruitées (données qui est parfois exactes, parfois non) ou de données qui est tout simplement incorrecte (capteur tactile ne parvient pas à être déclenchée).

La tâche de contrôle du robot peut être résolu en introduisant trois comportements différents robots ; pousser un objet, éviter la ligne noire, Errant autour

Le robot a aucun moyen de vérifier que la zone est libre d'objets qui doivent être enlevés et de nouveaux objets peuvent être déposés dans la région, ce qui signifie qu'il peut regarder comme si le robot est en patrouille, cherchant avidement des objets indésirables à jeter. Les comportements doivent être mises en œuvre par une sorte de servo-mécanisme, que nous pouvons considérer comme un principe d'exécution d'un comportement sélectionné uniquement dans un intervalle de temps très court avant les capteurs qui sont vérifiés à nouveau. Vous devrez d'abord décrire ces comportements de façon plus détaillée et pour chaque utilisation indiquer dans quelles conditions les lectures qui déclenchent et sont pertinentes à effectuer. Spécifiez également un ordre d'importance dans lequel les différents comportements doivent être activées, lorsque plus d'un est possible.

Matériels robotiques[modifier le wikicode]

Le kit Lego Mindstorms NXT se compose du matériel robotique suivantes ;

  • NXT Intelligent brique avec communication en infrarouge Bluetooth
  • Des capteurs à distance à ultrasons, de mouvement, gyroscopique, sonore, de luminosité avec une détection d'intensité, tactile (presse/publication/bosse de détection),
  • Trois servomoteurs interactifs,
  • Trois ports de sortie, six fils plate-forme numérique,
  • Quatre ports d'entrée, six fils plate-forme numérique,
  • Haut-parleur avec une qualité sonore de 8 kHz,
  • Alimentation: six piles AA (batteries non incluses dans les boîtes lego)
  • Guide de l'utilisateur avec un logiciel de base d'opération,
  • Pièces de Lego Technic.
  • Cartes

Autres capteurs[modifier le wikicode]

D'autres capteurs peuvent être connectés à Lego Mindstorms via un câble adaptateur.

accéléromètre, baromètre, sonomètre, capteur de charge et de force, colorimètre, des sondes ; de conductivité, courant, tension différentielle, d'oxygène dissous, température, amplificateur d'électrode, dynamomètre, amplificateur d'instrumentation, des capteur d'humidité relative des sols, de salinité, de pH, de gaz CO2, de débit, champ magnétique, pression de gaz, de turbidité capteur de rayon UVA et UVB

Les contrôles mathématiques du robot[modifier le wikicode]

Il y a trois sections mathématiques séquentielle dans la programmation du robot: moyennes, interpolation, hystérésis; les moyennes sont un instrument utile pour adoucir les différences entre les lectures simples et à ignorer les pics temporaires. Ils vous permettent de regrouper un ensemble de lectures et de le considérer comme une valeur unique. Lorsque vous faites affaire avec un flux de données provenant d'un capteur, la moyenne est l'outil idéal pour traiter les dernières lectures.

Voici une façon d'utiliser une moyenne de trois valeurs dans un programme:

int avg, v1, v2, v3;
v2 = Sensor_1;
v3 = Sensor_1;

while(true)
{
  v1 = v2;
  v2 = v3;
  v3 = Sensor_1;
  avg = (v1+v2+v3) / 3;
}

L'interpolation est une classe d'outils mathématiques conçus pour estimer les valeurs à partir de données connues. La technique d'interpolation s'avère utile lorsque vous voulez estimer la valeur d'une quantité qui se situe entre deux limites connues. L'interpolation linéaire trace une ligne droite entre deux points dans un graphique. Vous pouvez ensuite utiliser cette ligne pour calculer n'importe quelle valeur dans l'intervalle. L'hystérésis vous aidera à réduire le nombre de corrections de votre robot qui doit faire des tâches pour être conserver dans un comportement adéquat. En ajoutant une certain retard à votre alogrithms, votre robot sera moins réactifs aux changements, et pourra augmenter l'efficacité de votre système.

Ce programme montre l'hystérésis. Le programme permet d'effectuer des tâcher de tourner à gauche ou à droite.

#define GRAY 50
#define H 3

task main()
{
  SetSensor(Sensor_1, Sensor_Light);
  while(true)
  {
    If (Sensor_1>GRAY+H)
    PlayTone(440,20);
    Else If (Sensor_1<GRAY+H)
    PlayTone(1760, 20);
    Wait(20);
  }
}

Langages de programmation robot[modifier le wikicode]

Le kit LEGO MINDSTORMS NXT est livré avec les programmes appelé NXC. Le NXC est un langage de programmation simple pour les Lego Mindstorms. Le NXT a un interpréteur de bytecode qui est fourni par LEGO qui peut être utilisé pour exécuter les programmes. Le compilateur traduit un programme NXC source dans NXT bytecodes, qui peut être ensuite exécuté sur la cible elle-même.

Le NXC n'est pas un langage de programmation général, il y a beaucoup de restrictions qui découlent de l'interpréteur de bytecode NXT. Il décrit les fonctions du système, des constantes et des macros qui peuvent être utilisés par les programmes. Tous les application programmation d'interface sont définies dans un fichier spécial appelé "fichier d'entête", qui est automatiquement inclus lors de la compilation d'un programme. Les deux langues NXC et l'API fournit des informations nécessaires pour écrire les programmes NXC.

NXC est aussi un langage sensible à la casse, tout comme C et C++, ce qui signifie que l'identifiant par exemple «xyz» n'est pas le même identifiant que "xyz". De même, le "if" commence avec le mot clé "si" mais "SI", "Si", ou "SI" sont tous des identificateurs juste. NXC utilise également des règles lexicales pour décrire comment les sources de fichiers pause en jetons individuels. Cela comprend essentiellement la façon dont les commentaires sont écrits et des caractères valides pour les identificateurs.

Programmes[modifier le wikicode]

Il y a aussi beaucoup d'autres langages de programmation disponibles.

NXT-G (Windows, Mac) Pros ;

Facile à créer rapidement avec des programmes simples, le flux de programmation est facile à voir, il est inclus dans le kit standard de Lego, les inconvénients ; capacités de stockage limitées, seuls les nombres entiers à virgule flottante ne sont pas pris en charge, chaque opération de base en mathématiques (addition, soustraction, multiplication, division) nécessite un bloc séparé, une vitesse d'exécution relativement lente, utilisation de la mémoire vive.

Robolab (Windows, Mac) Pros ;

assez facile à utiliser, avec une programmation assez avancés est possible, très semblable à l'environnement LabVIEW, il est inclus dans le kit éducatif standards, les inconvénients ; la connexion du bloc peut devenir une source de confusion, pas de bonne méthode pour créer des fonctions opérations de blocs pour une réutilisation.

RobotC (Windows) Pros ;

rapidité d'exécution, programmation avancée, les inconvénients ; texte basé sur le langage qui est la plus difficile pour les débutants, doit être acheté séparément du kit.

LabVIEW Toolkit (Windows, Mac) Pros ;

peut créer des blocs pour une utilisation avec la programmation NXT-G, analyse avancée des données, environnement de programmation commune de l'industrie, les inconvénients ; compétences intermédiaire requis, programmation avancée plus limité que les langues basé sur du texte.

BricxCC (Windows) IDE, supporte plusieurs langages de programmation ;

  • NQC (C-langage basé sur la brique RCX)
  • NXC/NBC (code C basé et d'assemblage pour le NXT)
  • C/C + +, Pascal, pbForth, Lejos, Java