- Robot Maker
- → Affichage d'un profil : Messages: Juventin19
Statistiques de la communauté
- Groupe Membres
- Messages 38
- Visites sur le profil 3 408
- Titre Nouveau membre
- Âge Âge inconnu
- Date de naissance Anniversaire inconnu
-
Gender
Non spécifié
Outils utilisateur
Amis
Juventin19 n'a pas encore ajouté d'ami.
Derniers visiteurs
Aucun visiteur à afficher
Messages que j'ai postés
Dans le sujet : Projet de fin d'année Très important
20 mai 2019 - 08:31
Puis dans ma section void(droite) je rajoute un i++
Et je modifier le côté if(distance.. car je lui mettre une condition
Cest bien sa ?
Dans le sujet : Projet de fin d'année Très important
19 mai 2019 - 05:50
Finalement le robot tourne bien quand il y a un mur avec le capteur ultrason et même chose pour le capteur d'humidité.
Mais j'ai envie de encore améliorer, en effet j'ai remarqué que quand le robot détecte un mur il tourne (par exemple a droite) mais s'il rencontre un obstacle après avoir tourné, il retournera dans le même sens (à droite) et non dans l'autre sens (à gauche), il tournera en rond.
Mon professeur m'a proposé de faire une incrémentation, quand i=1 alors i+1 tourne a gauche (je ne sais pas si c'est bon),
Alors voici le code, le problème est que celui tourne a droite puis automatiquement il tourne a gauche, il avance pas (normalement le robot doit détecte un obstacle il s’arrête il tourne à droite et avance mais la la roue de droite tourne puis la gauche puis la droite automatiquement)
#include <Ultrasonic.h> Ultrasonic ultrasonic(7); int sensorHum = A0; int humidity = 0; const byte vitesseMotAPin = 3; const byte sensMotA1Pin = 5; const byte sensMotA2Pin = 4; const byte vitesseMotBPin = 11; const byte sensMotB1Pin = 13; const byte sensMotB2Pin = 12; const int buttonPin = A2; int buttonState = 0; int i=0; void setup () { Serial.begin(9600); pinMode(sensorHum,INPUT); pinMode(buttonPin, INPUT); pinMode(vitesseMotAPin, OUTPUT); pinMode(sensMotA1Pin, OUTPUT); pinMode(sensMotA2Pin, OUTPUT); pinMode(vitesseMotBPin, OUTPUT); pinMode(sensMotB1Pin, OUTPUT); pinMode(sensMotB2Pin, OUTPUT); stop(); delay(3000); } void stop() { digitalWrite(vitesseMotAPin, LOW); digitalWrite(vitesseMotBPin,LOW); } void avance() { digitalWrite(sensMotA1Pin,LOW); digitalWrite(sensMotA2Pin,HIGH); digitalWrite(sensMotB1Pin,LOW); digitalWrite(sensMotB2Pin,HIGH); analogWrite(vitesseMotBPin,30); analogWrite(vitesseMotAPin, 30); } void droite() { digitalWrite(sensMotA1Pin,LOW); digitalWrite(sensMotA2Pin,HIGH); digitalWrite(vitesseMotBPin,LOW); analogWrite(vitesseMotAPin, 40); delay(4500); } void gauche() { digitalWrite(sensMotB1Pin,LOW); digitalWrite(sensMotB2Pin,HIGH); analogWrite(vitesseMotBPin,40); digitalWrite(vitesseMotAPin, LOW); delay(4500); } void loop() { long distance; distance = ultrasonic.MeasureInCentimeters(); Serial.print("La distance est de: "); Serial.print(distance); Serial.println(" cm"); humidity = analogRead(sensorHum); Serial.print("Le sable mouillé est de: " ); Serial.println(humidity); buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { analogWrite(vitesseMotBPin,30); analogWrite(vitesseMotAPin, 30); if(humidity <= 100) { avance(); } else { stop(); delay(1000); droite(); } if(distance >= 55) { i=i+1; if (i>1) { avance(); stop(); delay(1000); droite(); } } else { avance(); stop(); delay(1000); gauche(); } } else { digitalWrite(vitesseMotAPin, LOW); digitalWrite(vitesseMotBPin, LOW); } }
Dans le sujet : Projet de fin d'année Très important
30 avril 2019 - 02:48

Dans le sujet : Projet de fin d'année Très important
26 avril 2019 - 10:57
Dans le sujet : Projet de fin d'année Très important
26 avril 2019 - 02:50
Malheureusement je n'ai plus le temps d’utilisé un capteur, je fais quelque mesure pour un tour.
Le robot doit faire un parcours sur le sable plat avec un capteur ultrason pour le mur et le capteur d'humidité pour le sable mouillé.
voici le code entier:
#include "Ultrasonic.h" Ultrasonic ultrasonic(7); int sensorPin = A0; int humidity = 0; const byte vitesseMotAPin = 3; const byte sensMotA1Pin = 5; const byte sensMotA2Pin = 4; const byte vitesseMotBPin = 11; const byte sensMotB1Pin = 13; const byte sensMotB2Pin = 12; void setup () { Serial.begin(9600); pinMode(vitesseMotAPin, OUTPUT); pinMode(sensMotA1Pin, OUTPUT); pinMode(sensMotA2Pin, OUTPUT); pinMode(vitesseMotBPin, OUTPUT); pinMode(sensMotB1Pin, OUTPUT); pinMode(sensMotB2Pin, OUTPUT); stop(); delay(3000); } void stop() { digitalWrite(vitesseMotAPin, LOW); digitalWrite(vitesseMotBPin,LOW); } void avance() { digitalWrite(sensMotA1Pin,LOW); digitalWrite(sensMotA2Pin,HIGH); digitalWrite(sensMotB1Pin,LOW); digitalWrite(sensMotB2Pin,HIGH); analogWrite(vitesseMotBPin,50); analogWrite(vitesseMotAPin, 50); } void droite() { digitalWrite(sensMotA1Pin,LOW); digitalWrite(sensMotA2Pin,HIGH); digitalWrite(vitesseMotBPin,LOW); analogWrite(vitesseMotAPin, 40); delay(2000); } void gauche() { digitalWrite(sensMotB1Pin,LOW); digitalWrite(sensMotB2Pin,HIGH); analogWrite(vitesseMotBPin,40); digitalWrite(vitesseMotAPin, LOW); delay(2000); } void loop() { long distance; distance = ultrasonic.MeasureInCentimeters(); Serial.print("La distance est de: "); Serial.print(distance); Serial.println(" cm"); humidity = analogRead(sensorPin); Serial.print("Moisture = " ); Serial.println(humidity); if(humidity <= 100) { avance(); } else { stop(); delay(1000); droite(); } if(distance >= 20) { avance(); } else { stop(); delay(1000); droite(); } }
le parcours ainsi que la vidéo du robot en pièces jointes
- Robot Maker
- → Affichage d'un profil : Messages: Juventin19
- Privacy Policy