Projet ICN robot télécommandé 2018/2019
De Informatique et Création Numérique
(Différences entre les versions)
(7 révisions intermédiaires par un utilisateur sont masquées) |
Version actuelle en date du 30 janvier 2019 à 14:17
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.
J'ai ensuite installé une batterie portable, en plus des piles, reliée à la raspberry pour l'alimenter sans utiliser les piles.
Tous les éléments sont sur le robot, il me reste juste à tout organiser pour gagner de l'espace.