Contrôle d'un robot avec deux moteurs cc avec arduino
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 39

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



  1. #1
    manu49320

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


    ------

    Bonjour à tous,

    l'an dernier j'ai fait appel à vous pour contrôler deux moteurs dans les deux sens sans électronique. Du coup on utilisait deux interrupteurs trois positions pour commander la marche avant , la marche arrière et le fait de tourner (en n'activant qu'un moteur sur les deux).

    Je suis professeur de physique, j'ai quelques notions de programmations mais cela ne va pas très loin. Cette année j'ai pour projet d'intégrer l'électronique dans la conception du robot.

    En gros je souhaite pouvoir commander les deux moteurs du robot via une arduino uno et un shield moteur. Les moteurs cc sont alimentés en 12v. J'utiliserai avec les jeunes le logiciel arduino scratch pour que cela soit plus simple à comprendre pour eux.

    En gros je voudrais qu'en activant
    une pin 1 de la carte arduino , les deux moteurs tournent en avant
    une pin 2 de la carte arduino , les deux moteurs tournent en arrière
    une pin 3 de la carte arduino, un seul des deux moteurs
    une pin 4 de la carte arduino, l'autre moteur

    Cela parait tout bête mais j'ai beau cherché disons que je ne trouve pas une solution toute faîte, pourtant je suppose que ceci est la base d'une programmation robotique. J'ai vu des programmes pour commander un moteur. Mais pas plus loin.

    Pourriez vous m'aider en me guidant dans mes recherches ?


    Manu

    -----

  2. #2
    gabuzo

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

    Salut,

    le plus simple c'est :
    Une sortie actve le premier moteur, une seconde détermine le sens de rotation, une troisième active le second moteur et une dernière détermine le sens de rotation du dernier moteur. Avec ça tu fais ce que tu veux.
    Je suis Charlie

  3. #3
    grosmatou75001

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

    Et pour cela le plus simple est d'utiliser des relais, un pour marche/arrêt et un deuxième pour le sens de rotation. Avantage: On ne peut rien casser même si l'Arduino déconne.
    Autre solution: Un pont H, soit tout fait soit avec des Mosfet. Plus compliqué et si on fait une bêtise en programmant ça flambe...

  4. #4
    grosmatou75001

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

    En regardant de plus près, cette histoire a déjà été discutée?! http://forums.futura-sciences.com/el...s-moteurs.html

  5. A voir en vidéo sur Futura
  6. #5
    manu49320

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

    Bonjour,

    et bien en fait je compte utiliser un shield moteur pour gérer ces deux moteurs. La question porte plutôt sur comment on programme ce genre de choses. Nous avons utilisé cette année les relais pour faire tourner nos moteurs et cela fonctionnait très bien. Sauf que pour faire démarrer les moteurs en même temps et bien il fallait appuyer simultanément sur les deux interrupteurs. Donc pas toujours très pratique.

    Cette année je voudrais rajouter une carte pour la programmation de la commande de ces deux moteurs. D'ou mon interrogation pour les sorties sens de rotation ... si j'appuie sur un bouton pour indiquer le sens ce n'est pas très pratique non ?

    Ce que j'imaginais c'était plutôt ça :
    j'appuie sur un interrupteur : les deux moteurs tournent en marche avant.
    j'appuie sur l'autre coté de cet interrupteur (trois positions) et les deux moteurs tournent en marche arriere

    Avec un autre interrupteur
    j'appuie sur ce deuxième : j'ai un seul des deux moteurs qui tournent
    j'appuie sur l'autre coté de ce deuxième : j'ai l'autre moteur qui tourne seul


    Voilà en gros ce que je souhaite coder...

    ps pour grosmatou : oui on a déjà traité ça mais je passe à l'étape programmation maintenant

  7. #6
    gabuzo

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

    Ton "shield motor" (bouclier de moteur ????? ), s'il est prévu pour deux moteurs aura 4 entrées, deux pour les faire tourner, deux pour le sens de rotation. Ces 4 entrées seront reliées à 4 sorties de ta carte Arduino. Avec tes inters branchés en entrée sur ta carte arduino tu agis comme bon te semble (c'est le but de la programmation) sur ces 4 sorties pour que les moteurs fassent ce que tu veux.
    Je suis Charlie

  8. #7
    manu49320

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

    C'est ce que je pense en théorie, sauf que je n'ai encore jamais programmé ça. On va tester, le problème c'est qu'il ne va pas falloir que je me loupe. Parce que ma carte arduino a besoin d'une alimentation pas trop élevée, alors que mes moteurs eux ... vont devoir pomper si je peux me permettre l'expression.

    Et vu que je n'ai pas d'expérience avec cette carte, un avis d'un expert aurait été le bienvenu.

  9. #8
    Etienne42

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

    Bonjour à tous,
    Désolé de relancer cette discussion mais étant en classe de 1ere S option SI j'ai comme projet de TPE un robot détecteur de métaux. Le châssis du robot est donc le même qu'un tank, il me faut donc 2 moteurs, que je contrôlerai (mon prof m'a fait commander une carte arduino uno et un shield, mais je ne sais pas trop pourquoi...) de sorte que le robot avance si les 2 moteurs tournent dans un sens, recule les 2 moteurs tournent dans l'autre sens, et tourne si un des deux moteurs tourne et que l'autre est au repos. N'ayant aucune notion (ou très peu) en programmation j'ai fait beaucoup de recherche sur la carte arduino, mais je ne sais toujours pas comment programmer. Je suis tombé sur ce forum et j'ai vu que "manu49320" avait le même problème que moi...
    Du coup j'aimerai vraiment que quelqu'un m'aide. Si je pouvais avoir le programme ce serait génial! Peut-être que "manu49320" a résolu ce problème et pourrai ainsi m'aider...?
    Merci d'avance

  10. #9
    alainav1

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

    ce petit exemple devrait t'aider
    http://mchobby.be/wiki/index.php?tit...3-Raccordement
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  11. #10
    Etienne42

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

    Oui, merci!
    Mais moi je n'ai pas de relais, mais je n'en ai pas besoin je pense non?
    Et si je veux controler mes moteurs avec des interrupteurs (qui sont sur une table d'essai dont je dispose), comment faut-il programmer? (Parceque dans l'exemple, le programme tourne mais on ne controle pas vraiment les moteurs finalement... le programme se fait tout seul)?
    En faite, la finalité de mon projet serai que l'on puisse controler le robot grace a une application smartphone. Donc mon prof m'a fait acheter un kit "emetteur/recepteur bluetooth". Mais ce serai vraiment la cerise sur le gateau pour mon projet, et ce n'est pas le plus important. Mais je prefere le preciser parceque peut-etre que c'est important de le mettre dans le programme tout de suite ( j'en sais rien du tout... )

  12. #11
    gabuzo

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

    Si c'est pour commander les moteurs avec des interrupteurs ça ne sert à rien de faire un programme et il faut virer l'Arduino qui ne sert à rien.
    Si c'est pour faire un bidule dentbleuecommandé il faut virer les interrupteurs qui ne servent à rien.

    On en revient toujours au même problème, pas de cahier des charges => un projet qui part dans tous les sens.

    Donc tu décides une fois pour toute ce que tu veux faire et comment ça doit fonctionner et à partie de là tu peux commencer à bosser.

    NB : Vu le niveau de tes questions (débutant) je ne sais pas si le projet est vraiment à ta portée.
    Je suis Charlie

  13. #12
    Yvan_Delaserge

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

    On a parlé ces derniers jours d'une situation assez voisine de la tienne. Il y a un programme Arduino dont tu pourrais t'inspirer.


    http://forums.futura-sciences.com/el...ml#post5033061

    Ou mieux:

    http://forums.futura-sciences.com/el...-joystick.html
    ici, le programme est vraiment prévu pour un mobile genre tank.
    Dernière modification par Yvan_Delaserge ; 01/12/2014 à 10h27.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  14. #13
    arsene de gallium

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

    Bien bien bien !
    Comment dire ?
    1- impossible de piloter un moteur sans passer par une interface de puissance et de préférence purement électronique genre ULN2003.
    Pourquoi ?
    bah parce qu'une sortie d'un Arduino ou tout autre micro-controleur est limité à un courant de 20 mA ou un petit pueu plus alors qu'un moteur c'est plusieurs centaines de mA
    Le risque ?
    destruction du micro-controleur
    2- Utiliser un Arduino ou n'importe quel autre micro-controleur nécessite de faire de la programmation, en général C ou C++
    Pourquoi ?
    Un micro-controleur ne fait rien s'il n'a pas de programme dans sa mémoire. Rien de rien, c'est un bout de plastique et de métal et un peu de silicium à l'intérieur, oh pas beaucoup mais essentiel.
    3- pour construire un robot ou une machine à laver , il faut commencer par expliquer le plus précisément possible ce que l'on veut qu'il fasse ou quelle fasse: on appel ça un cahier des charges.
    4- Normalement si c'est pour un TPE, tu as eu les cours nécessaires à ce travail.
    Un TPE est fait pour mettre en valeur les connaissances acquises durant la période scolaire précédente.
    Un forum n'est pas fait pour palier les manques dus au manque d’assiduité des élèves aux cours ou au manque d'enseignement des profs.
    Squatter un sujet ouvert par un autre est la plus mauvaise solution pour avoir des réponses précises: OUVRE TON SUJET PERSONNEL.
    A+

  15. #14
    arsene de gallium

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

    Désolé mais j'ouvre une deuxième réponse, volontairement, pour préciser que le copier/coller bête, sans comprendre ce que l'on fait, est voué à l'échec.
    Ca revient à graisser la patte à un douanier: ça passe 1 fois, 2 fois mais un jour on est prit et là on voit son incommensurable ignorance.
    Il y a des forumeurs, ouais c'est un mot nouveau, qui entre dans le jeux et qui, de fait, provoquent des sujets (posts) à la longueur importante sans rien apporter aux demandeurs.
    Nous ne sommes pas dans un élevage de canidés ou autre animal de compagnie, mais dans l'aide de personnes confrontées à des problèmes dans leur réalisation personnel, même TPE, c'est à dire avec des points précis de leur réalisation.
    Aider c'est bien, et même très utile, mâcher le travail est le mal.

  16. #15
    Etienne42

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

    Merci pour vos réponses!
    Gabuzo tu as raison ce n'est pas assez précis ce que je vous ai demandé (pour mon niveau de "débutant", je m'excuse si c'est un problème, mais je suppose qu'on est tous passé par là, et le niveau de mon projet est certainement trop important mais je n'ai pas vraiment eu le choix). Alors Je précise mon projet :
    Un "robot détecteur de métaux". Je voudrais qu'il soit contrôlable à distance grâce à une application smartphone, sur laquelle il y aurai un signal lorsque le détecteur de métal s'active (d'ailleurs, le détecteur de métal, dont la référence figure dans la suite de ce message, dispose d'une LED qui s'allume lorsqu'il détecte du métal). Cette dernière fonction n'est pas la plus importante, mais peut-être que l'on peut la réaliser grâce à une camera placée au dessus de la LED, dont on verrait le film sur le smartphone... Pour fonctionner, mon robot dispose de 2 moteurs CC (qui demande 5 à 12 Vcc) qui doivent:
    - tourner dans un sens (qu'on nomme sens "1") pour avancer,
    - tourner dans un autre sens (qu'on nomme sens "-1") pour reculer,
    - et pour que le robot tourne, un des deux moteurs doit tourner dans le sens "1" et l'autre doit être au repos (ou tourner dans le sens "-1", selon ce qui est le plus simple).
    Ce robot dont je parle est le "POB-BOT Avoider", mais mon lycée donne seulement la base comprenant le châssis, les chenilles et les 2 moteurs CC.
    Je dispose aujourd'hui :
    -d'une carte "Arduino Uno",
    -d'un "Shield Motor 2 x 2 A DRI0009",
    -d'un "kit K7102 Détecteur de métaux",
    -d'un "kit émetteur-récepteur (bluetooth) 433MHZ",
    -de la base du robot POB et d'une platine d'expérimentation.
    Mes vraies difficultés sont : la programmation de la carte arduino, et le fait de connecter l'application smartphone avec la carte arduino, avec l'aide du kit bluetooth (parceque je ne sais pas comment faire pour que tel bouton de l'application smartphone fasse tel fonction de la carte arduino...). C'est pour ces difficultés que je demande votre aide, sachant qu je n'ai déjà que très très peu (autant dire jamais) programmé sur une carte arduino.
    S'il vous manque des informations ou que vous ne comprenez pas ce que j'ai écrit, n’hésitez pas à me le dire!
    Pour répondre à arsene de gallium, je dirai que malheureusement je ne dispose pas de "cours" de TPE, ni de cours de programmation. Mes professeurs qui s'occupe de ma classe en TPE sont un prof de physique qui ne sait pas programmer, et un prof de SI qui ne peut pas s'occuper de tous les groupes de ma classe. Je ne dispose donc d'AUCUN cours qui pourrai m'aider en TPE, ni de cette année, ni de l'année dernière. Je ne pense pas non plus que ce sois un manque d'"assiduité" de ma part, sinon je ne m’intéresserai pas à ce projet je pense. Je pense que c'est plutôt un manque de connaissances, pour un projet sûrement trop compliqué, mais j'aimerai beaucoup le réussir, c'est pour cela que je m'instruis et demande de l'aide sur ce forum.
    En attente d'une aide de votre part.
    Merci d'avance

  17. #16
    Etienne42

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

    Pour info : J'ai créé ma propre discussion :
    http://forums.futura-sciences.com/el...martphone.html
    J'ai vraiment besoin d'aide SVP!
    Merci!

  18. #17
    Yvan_Delaserge

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

    Voilà déjà le soft pour l'Arduino.
    Code:
    /*en activant 
     une pin 3 de la carte arduino , les deux moteurs tournent en avant
     une pin 4 de la carte arduino , les deux moteurs tournent en arrière
     une pin 5 de la carte arduino, un seul des deux moteurs 
     une pin 6 de la carte arduino, l'autre moteur*/
    
    
    const int buttonPin1 = 3;     // the number of the pushbutton pin
    const int buttonPin2 = 4;     // the number of the pushbutton pin
    const int buttonPin3 = 5;     // the number of the pushbutton pin
    const int buttonPin4 = 6;     // the number of the pushbutton pin
    const int moteurD1Pin = 7;     // the number of the moteur droit pin
    const int moteurD2Pin = 8;     // the number of the moteur gauche pin
    const int moteurG1Pin = 9;     // the number of the moteur gauche pin
    const int moteurG2Pin = 10;     // the number of the moteur droit pin
    
    int buttonState = 0;         // variable for reading the pushbutton status
    
    void setup() {
      // initialize the moteurs pin as an output:
      pinMode(moteurD1Pin, OUTPUT); 
      pinMode(moteurG1Pin, OUTPUT); 
      pinMode(moteurD2Pin, OUTPUT); 
      pinMode(moteurG2Pin, OUTPUT);  
      // initialize the pushbutton pin as an input:
      pinMode(buttonPin1, INPUT);
      pinMode(buttonPin2, INPUT);
      pinMode(buttonPin3, INPUT);
      pinMode(buttonPin4, INPUT);
    }
    
    void loop(){
      // read the state of the pushbutton 1 value:
      buttonState = digitalRead(buttonPin1);
    
      if (buttonState == HIGH) {     
        //les deux moteurs tournent en avant    
        digitalWrite(moteurD1Pin, HIGH);
        digitalWrite(moteurD2Pin, LOW); 
        digitalWrite(moteurG1Pin, LOW);
        digitalWrite(moteurG2Pin, HIGH);  
      } 
      buttonState = digitalRead(buttonPin2);
    
      if (buttonState == HIGH) {     
        //les deux moteurs tournent en avant    
        digitalWrite(moteurD1Pin, LOW);
        digitalWrite(moteurD2Pin, HIGH); 
        digitalWrite(moteurG1Pin, HIGH);
        digitalWrite(moteurG2Pin, LOW); 
    
        buttonState = digitalRead(buttonPin3);
    
        if (buttonState == HIGH) {     
          //les deux moteurs tournent en sens inverse D    
          digitalWrite(moteurD1Pin, HIGH);
          digitalWrite(moteurD2Pin, LOW); 
          digitalWrite(moteurG1Pin, HIGH);
          digitalWrite(moteurG2Pin, LOW);  
        } 
    
        buttonState = digitalRead(buttonPin4);
    
        if (buttonState == HIGH) {     
          //les deux moteurs tournent en sens inverse G    
          digitalWrite(moteurD1Pin, LOW);
          digitalWrite(moteurD2Pin, HIGH); 
          digitalWrite(moteurG1Pin, LOW);
          digitalWrite(moteurG2Pin, HIGH);  
        }  
      } 
    
    }
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  19. #18
    gabuzo

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

    Un soft sans le hard qui va avec c'est vachement utile
    Je suis Charlie

  20. #19
    Etienne42

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

    Merci beaucoup Yvan_Delaserge !!!
    ça m'avance déjà énormément!
    Je l'ai bien étudié, et du coup je commence à comprendre bien comment programmer. Mais au faite, il n'y a pas besoin de déclarer le shield?
    Et je ne suis pas sûr mais je crois qu'il manque juste un " } " après le deuxieme "if", c'est juste?
    Et concrètement, c'est quoi un hard et un soft? Je ne peux rien faire sans un hard?
    En tout cas merci beaucoup déjà pour le soft!!
    En attente de vos réponses
    Etienne

  21. #20
    Yvan_Delaserge

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

    Tu as raison et tu viens déjà de trouver le premier bug. Tes débuts sont prometteurs.
    Code:
    /*en activant 
     une pin 3 de la carte arduino , les deux moteurs tournent en avant
     une pin 4 de la carte arduino , les deux moteurs tournent en arrière
     une pin 5 de la carte arduino, un seul des deux moteurs 
     une pin 6 de la carte arduino, l'autre moteur*/
    
    
    const int buttonPin1 = 3;     // the number of the pushbutton pin
    const int buttonPin2 = 4;     // the number of the pushbutton pin
    const int buttonPin3 = 5;     // the number of the pushbutton pin
    const int buttonPin4 = 6;     // the number of the pushbutton pin
    const int moteurD1Pin = 7;     // the number of the moteur droit pin
    const int moteurD2Pin = 8;     // the number of the moteur droit pin
    const int moteurG1Pin = 9;     // the number of the moteur gauche pin
    const int moteurG2Pin = 10;     // the number of the moteur gauche pin
    
    int buttonState = 0;         // variable for reading the pushbutton status
    
    void setup() {
      // initialize the moteurs pin as an output:
      pinMode(moteurD1Pin, OUTPUT); 
      pinMode(moteurG1Pin, OUTPUT); 
      pinMode(moteurD2Pin, OUTPUT); 
      pinMode(moteurG2Pin, OUTPUT);  
      // initialize the pushbutton pin as an input:
      pinMode(buttonPin1, INPUT);
      pinMode(buttonPin2, INPUT);
      pinMode(buttonPin3, INPUT);
      pinMode(buttonPin4, INPUT);
    }
    
    void loop(){
      // read the state of the pushbutton 1 value:
      buttonState = digitalRead(buttonPin1);
    
      if (buttonState == HIGH) {     
        //les deux moteurs tournent en avant    
        digitalWrite(moteurD1Pin, HIGH);
        digitalWrite(moteurD2Pin, LOW); 
        digitalWrite(moteurG1Pin, LOW);
        digitalWrite(moteurG2Pin, HIGH);  
      } 
      buttonState = digitalRead(buttonPin2);
    
      if (buttonState == HIGH) {     
        //les deux moteurs tournent en avant    
        digitalWrite(moteurD1Pin, LOW);
        digitalWrite(moteurD2Pin, HIGH); 
        digitalWrite(moteurG1Pin, HIGH);
        digitalWrite(moteurG2Pin, LOW); 
    }
    
        buttonState = digitalRead(buttonPin3);
    
        if (buttonState == HIGH) {     
          //les deux moteurs tournent en sens inverse D    
          digitalWrite(moteurD1Pin, HIGH);
          digitalWrite(moteurD2Pin, LOW); 
          digitalWrite(moteurG1Pin, HIGH);
          digitalWrite(moteurG2Pin, LOW);  
        } 
    
        buttonState = digitalRead(buttonPin4);
    
        if (buttonState == HIGH) {     
          //les deux moteurs tournent en sens inverse G    
          digitalWrite(moteurD1Pin, LOW);
          digitalWrite(moteurD2Pin, HIGH); 
          digitalWrite(moteurG1Pin, LOW);
          digitalWrite(moteurG2Pin, HIGH);  
        }  
       
    
    }
    Le hard, c'est l'Arduino et le shield. Le soft, c'est ce programme..

    Ce soft peut s'adapter à n'importe quel montage, il suffit de changer le numéro des pins dans les premières instructions, celles qui commencent par const int. J'ai utilisé les pins 3 à 10 car les pins 0 et 1 sont utilisées par la liaison série. Ce qu'il faudrait maintenant savoir c'est quels sont les pins de commande du shield moteur. Envoie-nous ta doc ou à défaut des photos du shield.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  22. #21
    Yvan_Delaserge

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

    Je viens de voir la doc concernant le shield moteur:
    http://robotics.itee.uq.edu.au/~elec...bot%20Wiki.pdf

    Voilà ce qu'il nous faut:

    Nom : SHIELD.jpg
Affichages : 788
Taille : 119,2 Ko

    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
    Au fait, non, il n'y a pas besoin de déclarer le shield.

    Le shield permet de pas mal simplifier le programme. Il doit donc être modifié comme suit:

    Code:
    /*en activant 
     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*/
    
    
    
    const int controlPin2 = 2;     // the number of the pin de contrôle
    const int controlPin3 = 3;     // the number of the pin de contrôle
    const int moteurDEPin = 4;     // the number of the moteur droit enable pin
    const int moteurDDPin = 5;     // the number of the moteur droit direction pin
    const int moteurGDPin = 6;     // the number of the moteur gauche direction pin
    const int moteurGEPin = 7;     // the number of the moteur gauche enable pin
    
    int buttonState = 0;         // variable for reading the pushbutton status
    
    void setup() {
      // initialize the moteurs pin as an output:
      pinMode(moteurDEPin, OUTPUT); 
      pinMode(moteurDDPin, OUTPUT); 
      pinMode(moteurGDPin, OUTPUT); 
      pinMode(moteurGEPin, OUTPUT);  
      // initialize the pushbutton pin as an input:
      pinMode(controlPin2, INPUT);
      pinMode(controlPin3, INPUT);
    }
    
    void loop(){
      // read the state of the controlPin values:
      int State2 = digitalRead(controlPin2);
      int State3 = digitalRead(controlPin3);
    
    
      digitalWrite(moteurDEPin, HIGH);
      digitalWrite(moteurDDPin, State2); 
      digitalWrite(moteurGDPin, State3);
      digitalWrite(moteurGEPin, HIGH);  
    
    }
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  23. #22
    Yvan_Delaserge

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

    Petit resserrage de boulons au niveau des commentaires et autres
    Code:
    /*en activant 
     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*/
    
    
    
    const int controlPin2 = 2;     // the number of the pin de contrôle
    const int controlPin3 = 3;     // the number of the pin de contrôle
    const int moteurDEPin = 4;     // the number of the moteur droit enable pin
    const int moteurDDPin = 5;     // the number of the moteur droit direction pin
    const int moteurGDPin = 6;     // the number of the moteur gauche direction pin
    const int moteurGEPin = 7;     // the number of the moteur gauche enable pin
    
    
    
    void setup() {
      // initialize the moteurs pins as outputs:
      pinMode(moteurDEPin, OUTPUT); 
      pinMode(moteurDDPin, OUTPUT); 
      pinMode(moteurGDPin, OUTPUT); 
      pinMode(moteurGEPin, OUTPUT);  
      // initialize the control pins as  inputs:
      pinMode(controlPin2, INPUT);
      pinMode(controlPin3, INPUT);
    }
    
    void loop(){
      // read the state of the controlPin values:
      int State2 = digitalRead(controlPin2);
      int State3 = digitalRead(controlPin3);
    
    
      digitalWrite(moteurDEPin, HIGH);
      digitalWrite(moteurDDPin, State2); 
      digitalWrite(moteurGDPin, State3);
      digitalWrite(moteurGEPin, HIGH);  
    
    }
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  24. #23
    Etienne42

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

    Merci beaucoup Yvan_Delaserge!!
    Je ne suis pas sûr mais dans le dernier code que vous m'avez envoyé, vous avez enlevez cette déclaration de variable :
    int buttonState = 0; // variable for reading the pushbutton status
    Est-ce un oubli ou que cette déclaration était inutile?
    Merci encore pour cette aide précieuse. Je ne peux pas encore essayer ce programme, je pourrais l'essayer lundi. Pour le câblage sur la platine d’expérimentation, avez-vous des indications à m'apporter ? (normalement mon prof pourra peut-être m'aider, mais c'est vraiment pas sûr sachant qu'on est un peu laissé à l'abandon par nos profs de TPE... donc si vous pouvez encore une fois nous fournir des informations ce serait génial!)
    Merci d'avance,
    Etienne

  25. #24
    Etienne42

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

    Quelqu'un m'a dit que le la fréquence de kit Bluetooth n'est pas adapté à un smartphone (une histoire de 2.4GHz au lieu de 433MHz...).
    C'est vrai?
    Si oui, est-ce possible de créer une "manette de contrôle" ? Ou n'importe quoi qui pourrait communiquer avec la carte arduino et shield (et donc contrôler le robot)?
    PS : La référence du kit Bluetooth est : "kit émetteur-récepteur (bluetooth) 433MHZ"
    Merci d'avance
    Etienne

  26. #25
    Yvan_Delaserge

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

    Citation Envoyé par Etienne42 Voir le message
    Merci beaucoup Yvan_Delaserge!!
    Je ne suis pas sûr mais dans le dernier code que vous m'avez envoyé, vous avez enlevez cette déclaration de variable :
    int buttonState = 0; // variable for reading the pushbutton status
    Est-ce un oubli ou que cette déclaration était inutile?
    Elle l'est devenue puisqu'on n'utilise plus buttonstate, mais state1 et state 2
    Merci encore pour cette aide précieuse. Je ne peux pas encore essayer ce programme, je pourrais l'essayer lundi. Pour le câblage sur la platine d’expérimentation, avez-vous des indications à m'apporter ? (normalement mon prof pourra peut-être m'aider, mais c'est vraiment pas sûr sachant qu'on est un peu laissé à l'abandon par nos profs de TPE... donc si vous pouvez encore une fois nous fournir des informations ce serait génial!)
    Merci d'avance,
    Etienne
    Regarde bien la doc du shield. Tout à la fin, voir expérimentalement dans quel sens câbler chacun des 2 moteurs pour qu'ils aillent chacun dans le bon sens.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  27. #26
    Yvan_Delaserge

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

    Citation Envoyé par Etienne42 Voir le message
    Quelqu'un m'a dit que le la fréquence de kit Bluetooth n'est pas adapté à un smartphone (une histoire de 2.4GHz au lieu de 433MHz...).
    C'est vrai?
    Si ton smatphone est équipé de Bluetooth, ça devrait marcher, quand même! Mais je ne puis t'en dire plus sur ce sujet.Google est ton ami.
    Si oui, est-ce possible de créer une "manette de contrôle" ?
    J'ai écrit avec l'aide d'Antoane un soft pour faire fonctionner un Arduino avec un joystick pour un mobile à 2 moteurs. Je t'ai donné la référence sur ce fil il y a quelques jours.
    Ou n'importe quoi qui pourrait communiquer avec la carte arduino et shield (et donc contrôler le robot)?
    PS : La référence du kit Bluetooth est : "kit émetteur-récepteur (bluetooth) 433MHZ"
    Merci d'avance
    Etienne
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  28. #27
    Yvan_Delaserge

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

    Citation Envoyé par Etienne42 Voir le message
    Quelqu'un m'a dit que le la fréquence de kit Bluetooth n'est pas adapté à un smartphone (une histoire de 2.4GHz au lieu de 433MHz...).
    C'est vrai?
    Le système Bluetooth opère dans les bandes de fréquences ISM* (Industrial, Scientific and Medical) 2,4 GHz dont l'exploitation ne nécessite pas de licence vu la faible puissance d'émission et le risque faible d'interférences. Cette bande de fréquences est comprise entre 2 400 et 2 483,5 MHz. Un transceiver à sauts de fréquences est utilisé pour limiter les interférences et l'atténuation.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  29. #28
    Etienne42

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

    Ok parfait merci beaucoup!
    J'ai regardé le fil sur le contrôle avec le joystick, et ça me parait être une très bonne idée de secours!
    Mais pour l'instant le projet reste sur le contrôle par application. Et là apparait un nouveau problème : comment faire pour qu'un bouton de l'application envoi une information (et donc contrôle) la carte arduino, et fasse une action programmé? Faut-il modifier le code? Et quel information doit envoyer l'application à la carte arduino (j'avais pensé que un bouton envoi 1 ou 0 à un pin qui contrôle une action, mais je ne suis pas sûr... est -ce que c'est ça, et comment faire)?
    Merci d'avance
    Etienne

  30. #29
    Yvan_Delaserge

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

    /*en activant
    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)

  31. #30
    Etienne42

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

    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 ? :
    /*en activant
    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 ne tournent pas
    la pin 2 HIGH la pin 3 LOW , le droit en avant, le gauche ne tourne pas
    la pin 3 HIGH la pin 2 LOW , le gauche en avant, le droit ne tourne pas*/
    Et pour le Bluetooth, j'ai compris ça :
    /*en activant
    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
    Mais concrètement, comment faire? Je m'explique : Dans le montage que je vais tester demain, je vais tout relier sur la platine d’expérimentation, donc les boutons seront directement reliés au shield. Donc quand je mettrais le kit Bluetooth, il faut que ce dernier "fasse tous le travail" des fils de connexions qui relient les boutons au shield. Sachant que je veux créer une application androïde, que faut-il que l'application envoie comme information au récepteur Bluetooth? "pin 2 HIGH" par exemple? J'avoue que je suis un peu dans le flou, même si ça peut paraitre simple...

Page 1 sur 2 1 DernièreDernière

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
Découvrez nos comparatifs produits sur l'informatique et les technologies.