Projet ICN robot télécommandé 2018/2019
De Informatique et Création Numérique
(Différences entre les versions)
Version du 19 décembre 2018 à 13:06
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. 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.