IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

programme de déplacement aléatoire d' un robot


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut programme de déplacement aléatoire d' un robot
    bonjour je suis en terminale SI et je dois réaliser un programme en C.
    je dispose d' un robot (pop lob). le but du programme est le suivant :
    lorsque je met en marche le robot, le robot doit suivre un parcours totalement aléatoire(gauche,droite,avance,recule)puis lors d'un signal (claquement des mains) le robot doit se diriger automatiquement jusqu'à la base puis s' y fixer.

    - pour la programmation je ne suis vraiment pas une bête. il me semble qu'il faut utiliser "random", après je pensais à ceci. créer une liste de variable(MOVELEFT, etc...) et que le robot toute les 1s aille piocher dedans puis exécute celle ci.cela serait-il possible?


    - le robot peut partir de n' importe ou. donc lors du signal, il ne sait pas ou est la base. peut on mettre un émetteur dans la base qui envoie un signal que le robot capte. petite contrainte, le signal émis par l' émetteur doit se déclencher au claquement des mains et n'a pas le droit d' être émis avant celui ci. de plus le signal doit se déclencher tout seul et non pas par l'aide physique d' un homme (exemple appuyer sur un bouton)

    - j'ai pensé qu'il faudrait mettre un capteur pour que le robot détecte les murs et ne se les prennent pas.

    - pour la fixation du robot, pourquoi pas des pinces ?

    je vous ai mit un lien http://img44.imageshack.us/img44/9376/sanstitrewl.png (dessin sur paint) pour que vous visualisiez mieux la demande.

    merci de me donner vos idée de fixation ou encore de programme car ce n' est pas mon point fort

    merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Avril 2010
    Messages : 66
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Hélas, je ne m'y connais pas du tout en robotique, mais côté software, pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    - pour la programmation je ne suis vraiment pas une bête. il me semble qu'il faut utiliser "random", après je pensais à ceci. créer une liste de variable(MOVELEFT, etc...) et que le robot toute les 1s aille piocher dedans puis exécute celle ci.cela serait-il possible?
    En effet, c'est possible.
    Voici un exemple d'utilisation de la fonction rand() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    srand(time(0)); // Permet d'initialiser la fonction random, c'est très important
    int nb1 = rand(); // Génère un nombre aléatoire compris entre 0 et RAND_MAX(ex: 15689423)
    int nb2 = rand() % 10; // Génère un nombre compris entre 0 et 10
    Après pour ta liste, tu peux définir des macros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    # define MOVELEFT	0
    # define MOVERIGHT	1
    # define MOVEFORWARD	2
    # define MOVEBACK	3
    # define NBCOMMAND	4 // Nombre de commandes MOVE...
    Puis dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    srand(time(0));
    int choice = rand() % NBCOMMAND; // Donne aléatoirement 0, 1, 2, 3
    switch (choice)
    {
       case MOVELEFT:
            funcMoveLeft();
            break;
       case MOVERight:
            funcMoveRight();
            break;
        etc...
    }
    Pour ce qui est du temps, il te faut, dans la boucle principale de ton programme, calculer le temps une première fois (start_time), puis le recalculer (end_time) jusqu'à ce que : end_time - start_time = 1s. A ce moment : end_time = start_time, puis tu exécutes la fonction décrite plus haut.

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/04/2011, 16h04
  2. Déplacement aléatoire d'une Image
    Par Ramdoulou dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/07/2008, 15h27
  3. Programmation de déplacement d'une souris
    Par greenday152 dans le forum Windows
    Réponses: 5
    Dernier message: 09/10/2007, 22h26
  4. [FLASH MX2004] Déplacement aléatoire sur un chemin
    Par dorignan dans le forum Flash
    Réponses: 2
    Dernier message: 09/02/2006, 17h17
  5. [FLASH 8] Déplacement aléatoire d'un MovieClip
    Par vieuxshish dans le forum Flash
    Réponses: 3
    Dernier message: 23/12/2005, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo