Aller au contenu


Photo
- - - - -

Code de mon robot


  • Veuillez vous connecter pour répondre
81 réponses à ce sujet

#21 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 21 mai 2012 - 04:34

OK , donc en fait c'est plus simple de faire une ligne de code et plus rapide que de faire plusieurs lignes qui veulent dire la même chose. Merci beaucoup ;)


Mais pour mon clavier , quand j'utiliserais if else , case et des fonctions switch , comment le programme saura que j'appuie sur mon clavier d'ordinateur ?
Merci a tous
Cordialement Dylan.

#22 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 21 mai 2012 - 11:23

Bon voila je tes préparé un morceau de code a toi , de comprendre ça description , je tes détaller le code.

int EN1 = 6; 
int EN2 = 5;  
int IN1 = 7;
int IN2 = 4; 
  
 
 
void Motor1(int pwm, boolean reverse)
        {
          analogWrite(EN1,pwm); //définir le contrôle PWM, 0 pour l'arrêt, et 255 pour une vitesse maximale
         if(reverse)
         {
          digitalWrite(IN1,HIGH);//(HAUT)   
         }
        else
        {
          digitalWrite(IN1,LOW); //(BAS)  
         }
        } 
         
void Motor2(int pwm, boolean reverse)
        {
          analogWrite(EN2,pwm);
         if(reverse)
         {
          digitalWrite(IN2,HIGH);//(HAUT)   
         }
        else
        {
          digitalWrite(IN2,LOW);//(BAS)   
         }
        } 
        
void setup()// fonction setup - début de l'exécution du programme
{
    int i;
    for(i=4;i<=7;i++)  //Pour Arduino Shield moteur
    pinMode(i, OUTPUT);  //régler les broche 4,5,6,7 au mode de sortie
    Serial.begin(9600); // ouvre le port série et fixe le debit de communication à 9600 bauds 
}
 
 
void loop()// fonction loop - est exécutée en boucle , une fois que la fonction setup a été exécutée               
{
  int x,delay_en;
  char val; // déclare une variable char
  while(1) // tant que l'expression est vraie
  {
    val = Serial.read();// lit l'octet entrant
    if(val!=-1)
       {
          switch(val)// debut de la structure 
           {
             case 'w'://Aller de l'avant
             
             //Vous pouvez changer la vitesse, comme moteur (50, true)
                        Motor1(100,true); //true (=VRAI)
                        Motor2(100,true);//true (=VRAI)
                         break;// sortie de la boucle
                         
             case 'x'://reculer
                        Motor1(100,false); //false (= FAUX)
                        Motor2(100,false);//false (= FAUX)
                         break;// sortie de la boucle
                         
             case 'a'://tourner à gauche
                        Motor1(100,false);//false (= FAUX)
                        Motor2(100,true);//true (=VRAI)
                         break;  // sortie de la boucle 
                         
             case 'd'://tourner à droite
                        Motor1(100,true);  //true (=VRAI)
                        Motor2(100,false);//false (= FAUX)
                        break; // sortie de la boucle 
                        
               case 's'://stop
                        Motor1(0,false); //false (= FAUX)
                        Motor2(0,false);//false (= FAUX)
                         break;// sortie de la boucle
                                   
           }
            }
             }                          
              }


si tu ne comprend pas certaine définition vas faire un tour ICI ou ICI , ou pose tes question sur ton topic bien sure

#23 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 21 mai 2012 - 12:52

alors le debut j'ai pas compris quelque chose ... qu'est ce que IN(moteur?) et qu'est ce que EN(le en du l293d ? ) ??

le reste j'ai compris et ce morceau la j'ai pas compris non plus :

val = Serial.read();// lit l'octet entrant    
if(val!=-1)
{          
switch(val)// debut de la structure            
{
case 'w'://Aller de l'avant  
//Vous pouvez changer la vitesse, comme moteur (50, true)                        
Motor1(100,true); //true (=VRAI)                        
Motor2(100,true);//true (=VRAI)                         
break;// sortie de la boucle

??
Merci a tous
Cordialement Dylan.

#24 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 21 mai 2012 - 01:26

alors le debut j'ai pas compris quelque chose ... qu'est ce que IN(moteur?) et qu'est ce que EN(le en du l293d ? ) ??


alors le IN c'est l'appellation de la déclaration du moteur , tu peux faire comme ce si aussi

Sur le code
int EN1 = 6; 
int EN2 = 5;  
int IN1 = 7;
int IN2 = 4;


Exemple de changement
int moteur1 = 6; 
int moteur2 = 5;  
int vitesse1 = 7;
int vitesse2 = 4;

Le EN c'est la même chose que IN ^^

Pour le reste je te laisse faire quelque recherche sur les liens que je tes fourni , ou vas sur google.

#25 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 22 mai 2012 - 05:41

Donc si je comprends bien sans faire de faute (j'espère ;) ) tu déclare tes 2 moteurs au début du code . Ensuite plus bas on a les touches du clavier . Quand tu appuie sur W on a les 2 moteurs qui sont TRUE donc il roule les 2 en même temps(VITESSE 100).Quand tu appui sur X on a les 2 Moteurs qui sont sur FALSE mais avec une vitesse 100 , donc il font marche arrière . Quand tu appuie sur D on a le moteur de droite qui est sur FALSE (vitesse 0) donc il ne bouge pas et le moteur de gauche est sur TRUE (vitesse 100) donc lui tourne normalement , c'est ce qui fait tourner le robot. Pareil pour tourner a gauche ,mais on fait l'inverse. Quand tu appuie sur S les 2 moteurs sont sur FALSE et leurs vitesse est de zéro , donc il ne bouge plus. dis moi si je me suis trompe ou si il manque quelque chose .

Au fait hier soir j'ai trouver ce code sur internet, qui parle su contrôle d'un pince (la même que la mienne :D)et c'est pile ce que j'ai besoin . Après il faudra rajouter le Bluetooth .Je voudrais savoir s'il est bon (Arduino scketch):
/* controls each motor in an Edge Robotic Arm using data sent from 
    a Processing Sketch
*/
// set the output pins
// 14-18 are actually analog pins 0-4
int baseMoteurEnablePin = 2;
int baseMoteurPin1 = 3;                             
int baseMoteurPin2 = 4;                           
int epauleMoteurEnablePin = 14;
int epauleMoteurPin1 = 15;                             
int epauleMoteurPin2 = 16; 
int coudeMoteurEnablePin = 8;
int coudeMoteurPin1 = 9;                             
int coudeMoteurPin2 = 10;                           
int poigneeMotorEnablePin = 5;
int poigneeMotorPin1 = 6;                             
int poigneeMotorPin2 = 7; 
int pinceMotorEnablePin = 11;
int pinceMotorPin1 = 17;                             
int pinceMotorPin2 = 18; 
// set a variable to store the byte sent from the serial port
int incomingByte;
 
void setup() {
  // set the L293D pins as outputs:
  pinMode(baseMoteurPin1, OUTPUT);
  pinMode(baseMoteurPin2, OUTPUT);
  pinMode(baseMoteurEnablePin, OUTPUT);
  digitalWrite(baseMoteurEnablePin, HIGH);
  pinMode(epauleMoteurPin1, OUTPUT);
  pinMode(epauleMoteurPin2, OUTPUT);
  pinMode(epauleMoteurEnablePin, OUTPUT);
  digitalWrite(epauleMoteurEnablePin, HIGH);
  pinMode(coudeMoteurPin1, OUTPUT);
  pinMode(coudeMoteurPin2, OUTPUT);
  pinMode(coudeMoteurEnablePin, OUTPUT);
  digitalWrite(coudeMoteurEnablePin, HIGH);
  pinMode(poigneeMoteurPin1, OUTPUT);
  pinMode(poigneeMoteurPin2, OUTPUT);
  pinMode(poigneeMoteurEnablePin, OUTPUT);
  digitalWrite(poigneeMoteurEnablePin, HIGH);
  pinMode(pinceMoteurPin1, OUTPUT);
  pinMode(pinceMoteurPin2, OUTPUT);
  pinMode(pinceMoteurEnablePin, OUTPUT);
  digitalWrite(pinceMoteurEnablePin, HIGH);
  // start sending data at 9600 baud rate
  Serial.begin(9600);
}
 
void loop() {
  // check that there's something in the serial buffer
  if (Serial.available() > 0) {
    // read the byte and store it in our variable 
    // the byte sent is actually an ascii value
    incomingByte = Serial.read();
    // note the upper casing of each letter!
    // diferrent lettre pour les directions.
    if (incomingByte == 'Q') {
    digitalWrite(baseMotorPin1, LOW);   
    digitalWrite(baseMotorPin2, HIGH);  
    } 
    if (incomingByte == 'W') {
    digitalWrite(baseMotorPin1, HIGH);   
    digitalWrite(baseMotorPin2, LOW);  
    }
    if (incomingByte == 'E') {
    digitalWrite(epauleMoteurPin1, LOW);   
    digitalWrite(epauleMoteurPin2, HIGH);  
    } 
    if (incomingByte == 'R') {
    digitalWrite(epauleMoteurPin1, HIGH);   
    digitalWrite(epauleMoteurPin2, LOW);  
    }
    if (incomingByte == 'A') {
    digitalWrite(coudeMoteurPin1, LOW);   
    digitalWrite(coudeMoteurPin2, HIGH);  
    } 
    if (incomingByte == 'S') {
    digitalWrite(coudeMoteurPin1, HIGH);   
    digitalWrite(coudeMoteurPin2, LOW);  
    }
    if (incomingByte == 'D') {
    digitalWrite(poigneeMoteurPin1, LOW);   
    digitalWrite(poigneeMoteurPin2, HIGH);  
    } 
    if (incomingByte == 'F') {
    digitalWrite(poigneeMoteurPin1, HIGH);   
    digitalWrite(poigneeMoteurPin2, LOW);  
    }
    if (incomingByte == 'Z') {
    digitalWrite(pinceMoteurPin1, LOW);   
    digitalWrite(pinceMoteurPin2, HIGH);  
    } 
    if (incomingByte == 'X') {
    digitalWrite(pinceMoteurPin1, HIGH);   
    digitalWrite(pinceMoteurPin2, LOW);  
    }
    // si O est envoyer les moteurs ne s'allumeront pas (OFF)
    if (incomingByte == 'O') {
    digitalWrite(baseMotorPin1, LOW);   
    digitalWrite(baseMotorPin2, LOW);  
    digitalWrite(epauleMoteurPin1, LOW);   
    digitalWrite(epauleMoteurPin2, LOW); 
    digitalWrite(coudeMoteurPin1, LOW);   
    digitalWrite(coudeMoteurPin2, LOW);  
    digitalWrite(poigneeMoteurPin1, LOW);   
    digitalWrite(poigneeMoteurPin2, LOW); 
    digitalWrite(pinceMoteurPin1, LOW);   
    digitalWrite(pinceMoteurPin2, LOW); 
    }
  }
}

Merci a tous
Cordialement Dylan.

#26 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 22 mai 2012 - 11:49

Oui c'est bien ça , tu a compris.

Pour ce qui et du code , je les compilé , et il y a des erreurs , les voici en image, et il

y en a d'autre encore.

Image IPB

Donc, c'est des petite erreurs d’inattention , je tes corrigé toutes les erreurs.

Voici le code propre.

int baseMoteurEnablePin = 2;
int baseMoteurPin1 = 3;                             
int baseMoteurPin2 = 4;                           
int epauleMoteurEnablePin = 14;
int epauleMoteurPin1 = 15;                             
int epauleMoteurPin2 = 16; 
int coudeMoteurEnablePin = 8;
int coudeMoteurPin1 = 9;                             
int coudeMoteurPin2 = 10;                           
int poigneeMotorEnablePin = 5;
int poigneeMotorPin1 = 6;                             
int poigneeMotorPin2 = 7; 
int pinceMotorEnablePin = 11;
int pinceMotorPin1 = 17;                             
int pinceMotorPin2 = 18; 
// set a variable to store the byte sent from the serial port
int incomingByte;
 
void setup() {
  // set the L293D pins as outputs:
  pinMode(baseMoteurPin1, OUTPUT);
  pinMode(baseMoteurPin2, OUTPUT);
  pinMode(baseMoteurEnablePin, OUTPUT);
  digitalWrite(baseMoteurEnablePin, HIGH);
  pinMode(epauleMoteurPin1, OUTPUT);
  pinMode(epauleMoteurPin2, OUTPUT);
  pinMode(epauleMoteurEnablePin, OUTPUT);
  digitalWrite(epauleMoteurEnablePin, HIGH);
  pinMode(coudeMoteurPin1, OUTPUT);
  pinMode(coudeMoteurPin2, OUTPUT);
  pinMode(coudeMoteurEnablePin, OUTPUT);
  digitalWrite(coudeMoteurEnablePin, HIGH);
  pinMode(poigneeMotorPin1, OUTPUT);
  pinMode(poigneeMotorPin2, OUTPUT);
  pinMode(poigneeMotorEnablePin, HIGH);
  pinMode(pinceMotorPin1, OUTPUT);
  pinMode(pinceMotorPin2, OUTPUT);
  pinMode(pinceMotorEnablePin, OUTPUT);
  digitalWrite(pinceMotorEnablePin, HIGH);
  // start sending data at 9600 baud rate
  Serial.begin(9600);
}
 
void loop() {
  // check that there's something in the serial buffer
  if (Serial.available() > 0) {
    // read the byte and store it in our variable 
    // the byte sent is actually an ascii value
    incomingByte = Serial.read();
    // note the upper casing of each letter!
    // diferrent lettre pour les directions.
    if (incomingByte == 'Q') {
    digitalWrite(baseMoteurPin1, LOW);   
    digitalWrite(baseMoteurPin2, HIGH);  
    } 
    if (incomingByte == 'W') {
    digitalWrite(baseMoteurPin1, HIGH);   
    digitalWrite(baseMoteurPin2, LOW);  
    }
    if (incomingByte == 'E') {
    digitalWrite(epauleMoteurPin1, LOW);   
    digitalWrite(epauleMoteurPin2, HIGH);  
    } 
    if (incomingByte == 'R') {
    digitalWrite(epauleMoteurPin1, HIGH);   
    digitalWrite(epauleMoteurPin2, LOW);  
    }
    if (incomingByte == 'A') {
    digitalWrite(coudeMoteurPin1, LOW);   
    digitalWrite(coudeMoteurPin2, HIGH);  
    } 
    if (incomingByte == 'S') {
    digitalWrite(coudeMoteurPin1, HIGH);   
    digitalWrite(coudeMoteurPin2, LOW);  
    }
    if (incomingByte == 'D') {
    digitalWrite(poigneeMotorPin1, LOW);   
    digitalWrite(poigneeMotorPin2, HIGH);  
    } 
    if (incomingByte == 'F') {
    digitalWrite(poigneeMotorPin1, HIGH);   
    digitalWrite(poigneeMotorPin2, LOW);  
    }
    if (incomingByte == 'Z') {
    digitalWrite(pinceMotorPin1, LOW);   
    digitalWrite(pinceMotorPin2, HIGH);  
    } 
    if (incomingByte == 'X') {
    digitalWrite(pinceMotorPin1, HIGH);   
    digitalWrite(pinceMotorPin2, LOW);  
    }
    // si O est envoyer les moteurs ne s'allumeront pas (OFF)
    if (incomingByte == 'O') {
    digitalWrite(baseMoteurPin1, LOW);   
    digitalWrite(baseMoteurPin2, LOW);  
    digitalWrite(epauleMoteurPin1, LOW);   
    digitalWrite(epauleMoteurPin2, LOW); 
    digitalWrite(coudeMoteurPin1, LOW);   
    digitalWrite(coudeMoteurPin2, LOW);  
    digitalWrite(poigneeMotorPin1, LOW);   
    digitalWrite(poigneeMotorPin2, LOW); 
    digitalWrite(pinceMotorPin1, LOW);   
    digitalWrite(pinceMotorPin2, LOW); 
    }
  }
}


#27 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 22 mai 2012 - 12:13

Merci énormément seb03000 , donc je peux utiliser ce code sans problème( celui avec ta correction) ?
Merci a tous
Cordialement Dylan.

#28 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 22 mai 2012 - 12:17

et après rajouter un bout de code pour contrôler avec bluetooth ?
Merci a tous
Cordialement Dylan.

#29 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 22 mai 2012 - 12:26

oui celui avec la correction , après pour réellement voir si le code et bon , il faudrait la pince , pour savoir si cela

fonction .

et après rajouter un bout de code pour contrôler avec bluetooth ?


heu... désolé je n'est jamais fait de teste pour contrôlé mon propre robot par Bluetooth , donc je ne te serré pas utile pour

cela.

#30 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 22 mai 2012 - 12:51

J'ai la meme pince qu'il utilise ;) . Aurais tu un lien avec des bouts codes sur bluetooth ? En tout cas vraiment merci de ton aide.
Merci a tous
Cordialement Dylan.

#31 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 22 mai 2012 - 01:14

Déjà tu possède quoi comme module Bluetooth sur ton robot ???

Ton PC , c'est un PC potable qui a le Bluetooth intégré , ou aise un PC bureaux , et tu possède une clés Bluetooth.

#32 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 22 mai 2012 - 05:38

Alors je vais acheter ce module et j'ai un PC bureaux et je vais acheter une petite clé USB Bluetooth .

simple question en passant . Le code que tu m'as corrige , sais tu comment les moteurs fonctionnent quand j'appuie sur une touche . Je m'explique plus clairement . Si j'appuie sur W pour avancer , si j'appuie un bref coup sur la touche le robot avancera un tout petit peu , ou avancera t-il quelques dizaines de cm ? si tu n'as pas compris , fais moi signe , j'essaierais d'être plus clair ;)
Merci a tous
Cordialement Dylan.

#33 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 23 mai 2012 - 09:53

Le code que tu m'as corrige , sais tu comment les moteurs fonctionnent quand j'appuie sur une touche . Je m'explique plus clairement . Si j'appuie sur W pour avancer , si j'appuie un bref coup sur la touche le robot avancera un tout petit peu , ou avancera t-il quelques dizaines de cm ? si tu n'as pas compris , fais moi signe , j'essaierais d'être plus clair ;)


Le code que je tes fourni exemple celui si:

int EN1 = 6; 
int EN2 = 5;  
int IN1 = 7;
int IN2 = 4; 
  
 
 
void Motor1(int pwm, boolean reverse)
        {
          analogWrite(EN1,pwm); //définir le contrôle PWM, 0 pour l'arrêt, et 255 pour une vitesse maximale
         if(reverse)
         {
          digitalWrite(IN1,HIGH);//(HAUT)   
         }
        else
        {
          digitalWrite(IN1,LOW); //(BAS)  
         }
        } 
         
void Motor2(int pwm, boolean reverse)
        {
          analogWrite(EN2,pwm);
         if(reverse)
         {
          digitalWrite(IN2,HIGH);//(HAUT)   
         }
        else
        {
          digitalWrite(IN2,LOW);//(BAS)   
         }
        } 
        
void setup()// fonction setup - début de l'exécution du programme
{
    int i;
    for(i=4;i<=7;i++)  //Pour Arduino Shield moteur
    pinMode(i, OUTPUT);  //régler les broche 4,5,6,7 au mode de sortie
    Serial.begin(9600); // ouvre le port série et fixe le debit de communication à 9600 bauds 
}
 
 
void loop()// fonction loop - est exécutée en boucle , une fois que la fonction setup a été exécutée               
{
  int x,delay_en;
  char val; // déclare une variable char
  while(1) // tant que l'expression est vraie
  {
    val = Serial.read();// lit l'octet entrant
    if(val!=-1)
       {
          switch(val)// debut de la structure 
           {
             case 'w'://Aller de l'avant
             
             //Vous pouvez changer la vitesse, comme moteur (50, true)
                        Motor1(100,true); //true (=VRAI)
                        Motor2(100,true);//true (=VRAI)
                         break;// sortie de la boucle
                         
             case 'x'://reculer
                        Motor1(100,false); //false (= FAUX)
                        Motor2(100,false);//false (= FAUX)
                         break;// sortie de la boucle
                         
             case 'a'://tourner à gauche
                        Motor1(100,false);//false (= FAUX)
                        Motor2(100,true);//true (=VRAI)
                         break;  // sortie de la boucle 
                         
             case 'd'://tourner à droite
                        Motor1(100,true);  //true (=VRAI)
                        Motor2(100,false);//false (= FAUX)
                        break; // sortie de la boucle 
                        
               case 's'://stop
                        Motor1(0,false); //false (= FAUX)
                        Motor2(0,false);//false (= FAUX)
                         break;// sortie de la boucle
                                   
           }
            }
             }                          
              }

Fait en sorte cas chaque pression de touche de ton clavier ton robot avance , recule , tourne , ou

s’arrête.

En gros tu presse la touche W il avance en permanence , mes pour l’arrêté il faut pressé la

touche S , c'est la même chose pour les autre touche.

Voila , désolé pour mon tant de réponse.

@Amicalement.

Voila.

#34 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 23 mai 2012 - 01:40

Je vois . Mais moi je veux que si j'appuie sur la touche W pendant 20 secondes , et bien le moteur qui est commande par la touche W tourne pendant 20 secondes. En gros , qu'il roule seulement quand la touche est appuyée et quand la touche est relâchée il s'arrête (le moteur). est-ce possible de faire ceci ?
Merci a tous
Cordialement Dylan.

#35 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 24 mai 2012 - 08:31

Salut a tous ,

Alors voila j'ai publier la 1ère partie de mon code sur "Projet et réalisation" et je reviens donc sur la catégorie Informatique pour continuer mon code.

Il me reste le contrôle de mes 2 servomoteurs , ceux qui servent a faire avancer mon châssis. Donc avant de commencer j'ai une question , puis-je utiliser les flèches de mon clavier pour les contrôler ?
Merci a tous
Cordialement Dylan.

#36 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 24 mai 2012 - 11:02

Non tu ne pourra pas utilisé les flèche de ton clavier , tu pourra utilisé que les lettres ,

et les chiffres de ton clavier.

#37 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 24 mai 2012 - 01:05

ah d'accord , alors j'utiliserais les chiffres .

pour mon code pour mes servomoteurs , je voudrais savoir si vous avez un bout ou un tutoriel . car je suis tomber sur celui la et je suis pas sur . http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertServoControlePositionClavierPC
Merci a tous
Cordialement Dylan.

#38 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 24 mai 2012 - 01:36

Le lien que tu me présente et très bien , c'est même ( on vas dire un bon tuto ) a toi de l'étudier maintenant.

Tu pourra télécharger le logiciel Processing ICI

en fonction de ton Système d'exploitation de ton PC.

#39 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 24 mai 2012 - 06:46

#include <Servo.h> // librairie pour servomoteur


const int SERVO1=11;
const int SERVO2=12;

int ReceptionOctet=0; // variable de stockage des octets reçus par port série
int ReceptionNombre=0; // variable de calcul du nombre reçu par port série
int impulsion=1500; // variable pour impulsion - valeur médiane initiale

 Servo servo_1;
 Servo servo_2;
 

void setup()   { 

 servo_1.attach(SERVO1);  
 servo_2.attach(SERVO1);

Serial.begin(115200); 

pinMode(SERVO1, OUTPUT);
pinMode(SERVO2, OUTPUT);


}

void loop(){

if (Serial.available()>0) { 


   while (Serial.available()>0) { 

     ReceptionOctet= Serial.read(); 
     ReceptionOctet=ReceptionOctet-48; 

     if ((ReceptionOctet>=0)&&(ReceptionOctet<=9))     ReceptionNombre = (ReceptionNombre*10)+ReceptionOctet; 
     

     delay(1); 
   } 

    Serial.print ("Nombre recu= ");
    Serial.println(ReceptionNombre); 


    impulsion=ReceptionNombre; 

     if (impulsion>2600)impulsion=2500; 
     if (impulsion<300)impulsion=500; 
     
     servo_1.writeMicroseconds(impulsion);
     servo_2.writeMicroseconds(impulsion);
     
     Serial.print ("Impulsion servomoteur = ");
     Serial.print(impulsion); 
     Serial.println (" microsecondes ");

     delay (1000); 

     ReceptionNombre=0; 

} 


} 
  

Quand dites vous pour ce début ?
Merci a tous
Cordialement Dylan.

#40 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 24 mai 2012 - 08:52

Ton code , comment dire , tu pourra pas le contrôlé avec ton clavier , les lettre dans ton code , ne son pas déclaré ,

tu ne pourra pas contrôlé tes servo avec ton clavier.




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users