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:24
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. Le robot:
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.