Contrôle d'un robot avec deux moteurs cc avec arduino - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 39 sur 39

Contrôle d'un robot avec deux moteurs cc avec arduino



  1. #31
    Etienne42

    Re : Contrôle d'un robot avec deux moteurs cc avec arduino


    ------

    Et sinon, est-ce que ce code (du fil pour vinvin69) est utilisable avec le materiel que j'ai (la liste que j'ai faite au début de ce fil, en sachant que je peux y ajouter des transistors et un joystick) :

    // These constants won't change:
    const int sensorPinx = A0; // pin du pot x
    const int sensorPiny = A1; // pin du pot y
    const int ledPin = 13; // pin that the LED is attached to
    const int relaisDPin = 2; // pin that controls the right relay
    const int relaisGPin = 4; // pin that controls the left relay
    const int moteurDPin = 3; // pin that controls the right motor
    const int moteurGPin = 5; // pin that controls the left motor
    const int blanc = 10; // zone morte de part et d'autre du neutre

    // variables:
    int x = 0; // the x value
    int xmed = 0; // valeur de x au neutre
    int xmin = 1023; // minimum x value
    int xmax = 0; // maximum x value
    int y = 0; // the y value
    int ymed = 0; // valeur de y au neutre
    int ymin = 1023; // minimum y value
    int ymax = 0; // maximum y value

    void setup() {
    // turn on LED to signal the start of the calibration period:
    pinMode(13, OUTPUT);
    digitalWrite(13, HIGH);

    // calibrate during the first five seconds
    while (millis() < 5000) {
    x = analogRead(sensorPinx);
    y = analogRead(sensorPiny);

    // record the maximum sensor value
    if (x > xmax) {
    xmax = x;
    }
    if (y > ymax) {
    ymax = y;
    }

    // record the minimum sensor value
    if (x < xmin) {
    xmin = x;
    }
    if (y < ymin) {
    ymin = y;
    }
    }
    // signal the end of the calibration period
    digitalWrite(13, LOW);


    // initialize the relay pin as an output:
    pinMode(relaisDPin, OUTPUT);
    pinMode(relaisGPin, OUTPUT);

    }

    void loop() {
    // read the sensor:
    x = analogRead(sensorPinx);
    y = analogRead(sensorPiny);

    // apply the calibration to the sensor reading
    x = map(x, xmin, xmax, -64 - blanc, 64 + blanc);
    y = map(y, ymin, ymax, -64 - blanc, 64 + blanc);

    // if x+y is >0, turn right motor relay on :
    if (x+y > 0) {
    digitalWrite(relaisDPin, HIGH);
    }
    else {
    digitalWrite(relaisDPin,LOW);
    }

    delay(1); // delay in between reads for stability

    // if y-x is >0, turn left motor relay on :
    if (y-x > 0) {
    digitalWrite(relaisGPin, HIGH);
    }
    else {
    digitalWrite(relaisGPin,LOW);
    }

    delay(1); // delay in between reads for stability

    //définition de la zone morte centrale
    if (x > blanc)
    {
    x=(x-blanc);
    }
    else if (x < -blanc)
    {
    x=(x+blanc) ;
    }
    else {
    x=0;
    } //dans la zone neutre

    if (y > blanc)
    {
    y=(y-blanc);
    }
    else if (y < -blanc)
    {
    y=(y+blanc) ;
    }
    else {
    y=0;
    } //dans la zone neutre

    // calculer le signal PWM pour les moteurs
    int moteurdroit = y - x ;
    int moteurgauche = y + x ;

    // on sature à 128 le cas échéant
    moteurdroit = constrain(moteurdroit, -128, 128);
    moteurgauche = constrain(moteurgauche, -128, 128);

    // on calcule la valeur absolue
    moteurdroit = abs(moteurdroit);
    moteurgauche = abs(moteurgauche);

    // on transpose les valeurs, car les agrs de analogwrite doivent être entre 0 et 255
    moteurdroit = map(moteurdroit,0,128,0,255);
    moteurgauche = map(moteurgauche,0,128,0,255);

    // send PWM to the motors
    analogWrite(moteurDPin, moteurdroit);
    analogWrite(moteurGPin, moteurgauche);

    }

    -----

  2. #32
    Yvan_Delaserge

    Re : Contrôle d'un robot avec deux moteurs cc avec arduino

    Citation Envoyé par Etienne42 Voir le message
    Il y a quelque chose que je ne comprend pas... Si je veux activer pin 2 HIGH, il faut que j'appuie sur le bouton que j'aurai connecté au pin 2, et si je lâche le bouton, le moteur s’arrête de tourner, mais du coup je peux peux pas activer pin 2 LOW (car il y a 2 positions sur un bouton (1 et 0))?? Il faut que j'utilise un joystick? Ou il faut que je mette un bouton pour le pin 2 HIGH et un autre pour le pin 2 LOW? Mais il n'y a qu'une seule sortie pour le pin 2??? (ma question peux se résumer en : comment mettre le pin 2 HIGH ou LOW). Ou alors peut-être que il y a une erreur, et que les moteurs ne tourne pas en arriere et ça nous donnerai ça ? :
    Il faut mettre des résistances de pullup de 10 K entre chacune des pins 2 et 3 et le + Vcc.
    Les boutons sot à câbler entre les pins 2 et 3 et la masse.
    Si le bouton est relâché, la pin est HIGH. S'il est appuyé, la pin est LOW.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  3. #33
    Yvan_Delaserge

    Re : Contrôle d'un robot avec deux moteurs cc avec arduino

    Citation Envoyé par Etienne42 Voir le message
    Et sinon, est-ce que ce code (du fil pour vinvin69) est utilisable avec le materiel que j'ai (la liste que j'ai faite au début de ce fil, en sachant que je peux y ajouter des transistors et un joystick) :
    Il faut un joystick avec 2 potentiomètres et en sortie 2 transistors et 2 relais. Tout est expliqué sur le fil mentionné.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  4. #34
    Etienne42

    Re : Contrôle d'un robot avec deux moteurs cc avec arduino

    Bonjour Yvan_Delaserge,
    Ce matin j'ai essayer des câblages, mais ça n'a pas été une réussite (les moteurs tournaient comme bon leur semblait, quelque fois ils accéléraient, puis s’arrêtaient...) Alors serait-ce possible d'avoir un schéma du câblage? Mon professeur n'a pas pu m'aider, même pire, il nous a fait perdre du temps car il nous a fait chercher des informations complêtement inutiles... L'examen du TPE approche à grands pas, et j'ai encore plus envie de le réussir car je viens d'apprendre qu'il peut compter pour les écoles que j'envisage de faire plus tard!
    Je n'ai aucune autre source d'aide que ce forum car je n'ai pas de cours, et pas de professeur ayant les possibilités de m'aider...
    Merci d'avance
    Etienne

  5. #35
    Etienne42

    Re : Contrôle d'un robot avec deux moteurs cc avec arduino

    Et mes professeurs n'ont pas trouvé de boutons poussoirs, alors on a du utiliser des "interrupteurs" à 3 positions qui se trouve sur la platine d’expérimentation... c'est peut-être pour ça que ça n'a pas marché...?
    SVP j'ai vraiment besoin d'aide!
    Merci
    Etienne

  6. #36
    Yvan_Delaserge

    Re : Contrôle d'un robot avec deux moteurs cc avec arduino

    le schéma est aussi sur l'autre fil. Tu n'as pas regardé?

    Et oui, si on veut des résultats fiables, il faut un matériel avec un minimum de fiabilité. Si les contacts ont des rebonds, il faudrait peut-être ajouter un condensateur en parallèle.
    Dernière modification par Yvan_Delaserge ; 08/12/2014 à 19h48.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  7. #37
    gabuzo

    Re : Contrôle d'un robot avec deux moteurs cc avec arduino

    On ne fait pas un anti rebond avec un simple condo car rien ne limite l'intensité dans le BP, il faut une résistance de limitation. il faudrait aussi une entrée à trigger de schmitt, je ne sais pas si la carte Arduino en possède.
    L'idéal c'est l'anti rebond logiciel, Yvan va te pondre ça en deux coups de copier/coller.
    Je suis Charlie

  8. #38
    Etienne42

    Re : Contrôle d'un robot avec deux moteurs cc avec arduino

    J'ai revu le fil dont vous m'aviez parlé, et il y a ce schéma :
    http://forums.futura-sciences.com/at...k-branche2.jpg
    Mais je parlais d'un schéma pour un programme comme celui que vous m'aviez donné. Mais peut-être que je peux utiliser ce schéma pour ce dernier programme, en remplaçant les joysticks par des bouton? C'est ça?
    Pour les rebonds, je pense que je pourrais utiliser (la prochaine fois que j'aurais cours de TPE) un autre matériel, en espérant qu'il ne fasse pas la même chose!

  9. #39
    Yvan_Delaserge

    Re : Contrôle d'un robot avec deux moteurs cc avec arduino

    Non, ce schéma avec joystick est à utiliser avec le soft conçu pour les joystick, sans shield moteur.

    Avec des boutons et un shield moteur, L'Arduino utilise les sorties 4,5,6 et 7 pour commander le shield.
    Les pins 2 et 3 sont utilisées pour commander l'Arduino

    Il faut mettre des résistances de pullup de 10 K entre chacune des pins 2 et 3 et le + Vcc.
    Les boutons sot à câbler entre les pins 2 et 3 et la masse.
    Si le bouton est relâché, la pin est HIGH. S'il est appuyé, la pin est LOW.


    Avec les pin 2 et 3 de la carte arduino HIGH , les deux moteurs tournent en avant
    les pin 2 et 3 de la carte arduino LOW , les deux moteurs tournent en arrière
    la pin 2 HIGH la pin 3 LOW , le droit en avant, le gauche en arrière
    la pin 3 HIGH la pin 2 LOW , le gauche en avant, le droit en arrière
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Controle de 2 servomoteurs avec Arduino
    Par Hanna00006 dans le forum Électronique
    Réponses: 27
    Dernier message: 11/06/2013, 19h05
  2. probleme COM avec arduino
    Par invite14ce6ed4 dans le forum Électronique
    Réponses: 3
    Dernier message: 30/11/2012, 06h32
  3. carte de puissance pour robot à 4 moteurs 12V (commande depuis arduino)
    Par invite6c152313 dans le forum Électronique
    Réponses: 1
    Dernier message: 18/03/2012, 19h31
  4. P.P.E robot 4 roues motrices avec moteurs à encodeurs et capteur I.R "suiveur de ligne"
    Par invitef487e11e dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 19/02/2009, 13h03
  5. gérer deux moteurs avec PIC
    Par invitee601b486 dans le forum TPE / TIPE et autres travaux
    Réponses: 6
    Dernier message: 25/01/2007, 20h12
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...