crlg.free.fr

Lundi 17 juin 2019

Accueil

Nouvelles

Téléchargement

Liens

 

Admin

Section LEGO

Proto LEGO

Le robot "LEGO" 2008

Progammation

Programmation Lego
Le principe de base du Lego est d'avoir une mécanique simple, des capteurs/actionneurs intégrés et une programmation simplifiée. Les briques Mindstorms sont programmables avec l'interface LabView fournie dans le kit, mais cette méthode ne permet pas la liberté nécessaire pour la programmation d'un robot "complexe".
Ces briques peuvent être programmées avec un langage s'assimilant au C, NQC (Non Quiet C) pour les briques RIS (jaunes) et NXC (Not eXactly C) pour les briques NXT (blanches) grâce à l'interface BrixCC, disponible ici

Cette année, nous allons utiliser une interface plus performante (mais non gratuite), il s'agit de RobotC.
Nous utilisons le multi-tâches permis par les briques Mindstorms (jusqu'à 10 tâches tournant en parallèle).

Les tâches sont les suivantes :
  • main : tâche principale, obligatoire.Elle appelle la fonction d'initialisation, ainsi que les autres tâches.
  • arrêt_urgence : gère le bouton d'arrêt/démarrage (un seul bouton pour l'interrupteur de départ et le bouton d'arrêt d'urgence) ainsi que la temporisation de 90s.
  • détection : gestion de l'arrêt de la machine d'état suite à une détection des capteurs de proximité ou sur un bocage des roues.
  • stratégie : machine d'état qui tourne en permanence. Des états sont prédéfinis pour un parcours sans encombre ainsi que des états d'évitement ou de debug.
  • calcul_position : cette tâche est appelée régulièrement et permet, en récupérant les infos des codeurs, de déterminer la position du robot en (x,y,alpha).Cette tâche détermine également la commande des moteurs en fonction de la cible et du type de déplacement que l'on souhaite avoir.

Il y a également des fonctions :
  • init : initialise toutes les variables
  • recherche_parade : appelée suite à un blocage, elle détermine la meilleure stratégie d'évitement et/ou de contournement de l'obstacle
  • finalise : appelée au bout de 90s ou lors d'un arrêt d'urgence. Elle arrête les moteurs et enregistre toutes les données pour analyse après la fin du match.

Comme nous le disions plus haut, on peut choisir pour chaque étape, le type de déplacement que l'on souhaite :
  • Pas de déplacement. utile pour attendre un retour capteur sans bouger.
  • Rotation simple. les roues tournent en sens inverse jusqu'à atteindre l'angle souhaité.
  • Déplacement rectiligne. utile pour les évitement
  • Asservissement polaire. on se dirige vers la cible grâce à une double régulation en distance et angle.
  • Asservissement directionnel. semblable au précédent, mais on donne en plus un angle d'arrivée à la cible. la trajectoire est différente mais l'enchainement est plus fluide.

Et pour chacun des déplacements, on peut choisir la marche avant ou arrière, et une vitesse nulle ou non en arrivant à la cible.

Les briques étant limitées en entrées/sorties, il faut envisager des communications entre briques. Les briques NXT communiquent entre elles en bluetooth, mais la communication est impossible avec les anciennes briques RIS (qui ont l'avantage d'utiliser des capteurs et actionneurs à dimensions réduites. On envisage une communication "mécanique" avec une brique qui fait tourner un moteur d'un certain angle, ce moteur étant lié à un capteur codeur sur l'autre brique. L'angle de rotation indique le message à transmettre. Ce type de communication et sa fiabilité sont encore à la phase d'étude au club.

Programmation cartes
A venir.

Imprimer la page  Imprimer la page

Dernière modification le : 03/02/2008 @ 10:06
Catégorie : Projet

Les coupes

2005

2006

2007

2008

Infos site

Webmaster : CRLG

Ce site est compatible avec les navigateurs de version 5 minimum.

Déjà 43278 visiteurs

Depuis le 22/10/2007

1 visiteurs connectés

Météo

Aujourd'hui

Département

Haut

Site créé avec Phortail 2.0.5
PHP version 4.4.3-dev

Page générée en 0,063 secondes