Projet ICN robot télécommandé 2018/2019

De Informatique et Création Numérique
Aller à : Navigation, rechercher

J'ai d'abord commencé par reprendre le programme présent dans un robot utilisé les années précédentes. Je l'ai modifié afin de l'adapter à mon projet. Voici le programme:

int pwmB = 11;
int bin2 = 13;
int bin1 = 12;
int stby = 8;
int ain1 = 7;
int ain2 = 4;
int pwmA = 3;
 void tour(int vitesse,int temps) //Déclare la fonction qui fait effectuer un tour au robot
{
  Serial.println("Tour");
  digitalWrite(ain1, LOW);//Lance le courant...
  digitalWrite(ain2, HIGH);//et fait en sorte qu'un des moteurs tourne a l'envers pour que le robot tourne sur lui-même
  digitalWrite(stby, HIGH);
  digitalWrite(bin1, HIGH);
  digitalWrite(bin2, LOW);
  analogWrite(pwmA, vitesse);//Donne la puissance du moteur 1
  analogWrite(pwmB, vitesse);//Donne la puissance du moteur 2 
  delay(temps);
  digitalWrite(stby, LOW);//arrête les moteurs
} 
void avancer(int vitesse,int temps)//Déclare la fonction qui fait avancer le robot
{
  Serial.println("Avant");
  digitalWrite(ain1, HIGH);//Lance le courant
  digitalWrite(ain2, LOW);
  digitalWrite(stby, HIGH);
  digitalWrite(bin1, HIGH);
  digitalWrite(bin2, LOW);
  analogWrite(pwmA, vitesse);//Donne la puissance du moteur 1
  analogWrite(pwmB, vitesse);//Donne la puissance du moteur 2 (pour qu'il aille droit)
  delay(temps);
  digitalWrite(stby, LOW);
}
void reculer(int vitesse,int temps)//Déclare la fonction qui fait reculer le robot
{
  Serial.println("Recul");
  digitalWrite(ain1, LOW);//Lance le courant
  digitalWrite(ain2, HIGH);
  digitalWrite(stby, HIGH);
  digitalWrite(bin1, LOW);
  digitalWrite(bin2, HIGH);
  analogWrite(pwmA, vitesse);//Donne la puissance du moteur 1
  analogWrite(pwmB, vitesse);//Donne la puissance du moteur 2
  delay(temps);
  digitalWrite(stby, LOW);
}
void setup()
{
  Serial.begin(9600);
  pinMode(pwmB, OUTPUT);
  pinMode(bin2, OUTPUT);
  pinMode(bin1, OUTPUT);
  pinMode(stby, OUTPUT);
  pinMode(ain1, OUTPUT);
  pinMode(ain2, OUTPUT);
  pinMode(pwmA, OUTPUT);   
}
void loop()
{
 if(Serial.available()>0){
   int c  =  Serial.read();
   switch(c){
     case 'A' :
        avancer(125,1000);
        break;
     case 'T' :
        tour(133,310);
        break;
     case 'R' :
        reculer(125,1000);
        break; 
  }
}

}



Une fois que tout fonctionnait j'ai commencé à utiliser la raspberry pour pouvoir commander mon robot depuis mon téléphone sans fil. Je dois maintenant modifier le robot afin d'installer une batterie portable pour éviter que mon robot soit branché à un ordinateur en continu ou de devoir recharger les piles.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Outils