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:04
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.