Aller au contenu


Contenu de Juventin19

Il y a 35 élément(s) pour Juventin19 (recherche limitée depuis 03-mai 13)



#103581 Projet de fin d'année Très important

Posté par Juventin19 sur 20 mai 2019 - 08:31 dans Programmation

Je vois un peu, donc je déclare ma variable i=0
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 ?



#103574 Projet de fin d'année Très important

Posté par Juventin19 sur 19 mai 2019 - 05:50 dans Programmation

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);
    }
}
 
voici la vidéo finale avec comme condition une plage parfaite sans obstacle 
 
ps: je tiens a vous remercier pour l'aide que vous m'avez a porté



#103265 Projet de fin d'année Très important

Posté par Juventin19 sur 30 avril 2019 - 02:48 dans Programmation

Vous validez ?:)



#103217 Projet de fin d'année Très important

Posté par Juventin19 sur 26 avril 2019 - 10:57 dans Programmation

Je vois mais quand si tu regarde la vidéo, pour quil tourne à droite jai bloqué les roues de gauche et il fait un démon tout mais ne revient pas sur ses pas, il attaque une autre ligne



#103212 Projet de fin d'année Très important

Posté par Juventin19 sur 26 avril 2019 - 02:50 dans Programmation

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 

Image(s) jointe(s)

  • IMG_9322.jpg

Fichier(s) joint(s)




#103209 Projet de fin d'année Très important

Posté par Juventin19 sur 26 avril 2019 - 10:18 dans Programmation

Du coup, tu as bien un robot qui avance, qui s'arrête quand il détecte un obstacle puis tourne à droite pendant 2 secondes, puis soit il s'arrête à nouveau si il y a toujours un obstacle et tourne a nouveau, en boucle tant qu'il y a un obstacle, soit il repart en avant (dès qu'il ne détecte plus d'obstacle. 

C'est bien ça ? C'est le comportement que tu voulais ou pas?

c'est bien ça.

 

A moitié car je veux que sa s'arrête puis il dit tourné a 360 degrés puis soit il s’arrête et il repart soit il part directement.

Pour qu'il tourne à 360 degrés, faut il changer le delay?

(je ne sais pas si on peut mettre une vidéo)




#103205 Projet de fin d'année Très important

Posté par Juventin19 sur 25 avril 2019 - 11:35 dans Programmation

Alors je nai pas essayé avec le delay(1000);
Mais jai mis un delay(2000); à la fin de mon void droite et il tourne à droite après un arrêt
Quand je met un obstacle comme ma main le robot s arrête les roues de droite tourne mais quand jenlève ma main les 4 roues senclenche et il ne fais pas un tour 360 degré



#103191 Projet de fin d'année Très important

Posté par Juventin19 sur 25 avril 2019 - 01:48 dans Programmation

finalement c'est bon, merci

j'ai créer des fonction type 

 

void stop()
{
  digitalWrite(vitesseMotAPin, LOW);
  digitalWrite(vitesseMotBPin,LOW);
}

void avance()
{
  digitalWrite(sensMotA1Pin,LOW); 
  digitalWrite(sensMotA2Pin,HIGH);
  analogWrite(vitesseMotAPin, 125);
  
  digitalWrite(sensMotB1Pin,LOW); 
  digitalWrite(sensMotB2Pin,HIGH); 
  analogWrite(vitesseMotBPin,125);
}

void droite()
{
  digitalWrite(sensMotA1Pin,LOW); 
  digitalWrite(sensMotA2Pin,HIGH);
  analogWrite(vitesseMotAPin, 100);
  
  digitalWrite(sensMotB1Pin,LOW); 
  digitalWrite(sensMotB2Pin,HIGH); 
  analogWrite(vitesseMotBPin,LOW);

}

void gauche()
{
  digitalWrite(sensMotA1Pin,LOW); 
  digitalWrite(sensMotA2Pin,HIGH);
  analogWrite(vitesseMotAPin, LOW);
  
  digitalWrite(sensMotB1Pin,LOW); 
  digitalWrite(sensMotB2Pin,HIGH); 
  analogWrite(vitesseMotBPin,100);
}


void loop()
{
  long distance;
  distance = ultrasonic.MeasureInCentimeters();
  Serial.println("La distance est de: ");
  Serial.println(distance);
  Serial.println(" cm");
  
  if(distance >= 20)
  {
    avance();
      
  }
  else
  {
    stop();
    delay(2000);
    droite();
  }
}
 mais quand il s’arrête, les moteurs de droite ne veulent pas tourner 



#103187 Projet de fin d'année Très important

Posté par Juventin19 sur 25 avril 2019 - 11:10 dans Programmation

bonjour, 

j'ai une problème avec mon code, le message d'erreur :"expected primary-expression before '?' token"

 

voici le code:

#include <Ultrasonic.h>
Ultrasonic ultrasonic(7);
const byte vitesseMotAPin = 3;
const byte sensMotA1Pin = 5;
const byte sensMotA2Pin = 4;
 
const byte vitesseMotBPin = 11;
const byte sensMotB1Pin = 13;
const byte sensMotB2Pin = 12;
 
int N=125;
 
void setup () 
  Serial.begin(9600);
  pinMode(vitesseMotAPin, OUTPUT);
 pinMode(sensMotA1Pin, OUTPUT);
 pinMode(sensMotA2Pin, OUTPUT);
 
 pinMode(vitesseMotBPin, OUTPUT);
 pinMode(sensMotB1Pin, OUTPUT);
 pinMode(sensMotB2Pin, OUTPUT);
  delay(700);
}
 
void loop() 
{
  long distance;
  distance = ultrasonic.MeasureInCentimeters();
  
  if(distance >= 20) {        
 
  digitalWrite(sensMotA1Pin,LOW);
  digitalWrite(sensMotA2Pin,HIGH);
  analogWrite(vitesseMotAPin, N);
  
  analogWrite(vitesseMotBPin,N);
  digitalWrite(sensMotB2Pin,HIGH);  
  digitalWrite(sensMotB1Pin,LOW);  
                                
}
 
 else {                               
   digitalWrite(sensMotA1Pin,HIGH);    
   digitalWrite(sensMotA2Pin,LOW);
   analogWrite(vitesseMotAPin, N);      
   
   analogWrite(vitesseMotBPin,N);
   digitalWrite(sensMotB2Pin,LOW);
   digitalWrite(sensMotB1Pin,HIGH);
   delay(200);
   
   digitalWrite(sensMotA1Pin,LOW);
   digitalWrite(sensMotA2Pin,HIGH);
   analogWrite(vitesseMotAPin, N);
   
    analogWrite(vitesseMotBPin,N);
  digitalWrite(sensMotB2Pin,LOW);
   digitalWrite(sensMotB1Pin,HIGH);
   delay(200);
}
 
}
 
Pouvez-vous m'aider ? svp 
Ps: comment faites vous pour mettre le code sous un onglets.



#102994 Projet de fin d'année Très important

Posté par Juventin19 sur 12 avril 2019 - 10:47 dans Programmation

Voici la meilleure aide que l'on peut t'apporter :

- Arduino + capteur ultrason : http://bfy.tw/NBfd

- Arduino + capteur humidité : http://bfy.tw/NBfi

 

Pour rappel, ce n'est pas aux membres du forum de faire ton projet, surtout un projet scolaire.À toi de chercher, essayer, apprendre et comprendre ce que tu fais.

 

(accessoirement, il y a des exemples pour ces deux capteurs dans l'IDE arduino et/ou sur le site Arduino)

je le sais trés biens, je voulais juste un avis personnellement. Car sa la 3ème fois que je rame a cause d'une carte et que je recommence tous

et super sympa votre site sa m'a beaucoup aidé :clapping:




#102975 Projet de fin d'année Très important

Posté par Juventin19 sur 11 avril 2019 - 09:30 dans Programmation

En effets je voudrais un peux d'aide pour programmer le capteur ultrason ainsi que le capteur d'humidité.

Pouvez vous m'aider?




#102969 Projet de fin d'année Très important

Posté par Juventin19 sur 11 avril 2019 - 03:14 dans Programmation

il y a plus personne pour m'aider? T_T




#102949 Projet de fin d'année Très important

Posté par Juventin19 sur 10 avril 2019 - 10:12 dans Programmation

finalement sa marche.

J'ai essayé avec 4 moteurs et il y a aucune  surchauffe je l'ai fait tourné a vide pendant 20 min

Maintenant je dois le faire en fonction du capteur ultrason et humidité 




#102948 Projet de fin d'année Très important

Posté par Juventin19 sur 10 avril 2019 - 09:34 dans Programmation

je vais mettre 2 moteurs sur une carte elle peut supporter.

Mais j'arrive pas faire marcher 2 moteurs en même temps.

Individuellement sa marche mais en les 2 en même  temps non

 

voici le code

const byte vitesseMotAPin = 3;
const byte sensMotAPin = 12;
const byte vitesseMotBPin = 11;
const byte sensMotBPin = 13;
 
void setup()
{
 pinMode(vitesseMotAPin, OUTPUT);
 pinMode(sensMotAPin, OUTPUT);
 pinMode(vitesseMotBPin, OUTPUT);
 pinMode(sensMotBPin, OUTPUT);
}
void loop()
{
 digitalWrite(sensMotAPin,LOW); // sens 1
 digitalWrite(vitesseMotAPin, HIGH); // Vitesse maximale
 delay(4000); // 4 secondes
 digitalWrite(vitesseMotAPin, LOW); // Arrêt moteur A
 delay(4000); // 4 secondes
 
 digitalWrite(sensMotBPin,LOW); // sens 1
 digitalWrite(vitesseMotBPin, HIGH); // Vitesse maximale
 delay(4000); // 4 secondes
 digitalWrite(vitesseMotBPin, LOW); // Arrêt moteur A
 delay(4000); // 4 secondes
}
 

Image(s) jointe(s)

  • IMG_9208.jpg



#102828 Projet de fin d'année Très important

Posté par Juventin19 sur 03 avril 2019 - 11:47 dans Programmation

Finalement la rover était morte, jai testé avec un seul moteur du coup je voulais le tester avec 2 moteurs simultanés et la carte a non seulement fumé mais aussi à pris feu. Le Channel 1 est inutilisable mais les autres oui, la carte était bcq trop veille
Donc mon prof ma donné une autre carte 2 exactement, il ma essayé avec ceux là et si sa marche pas et commandera le driver 4cc

 

Voici ceux que le prof m'a donnée:

https://www.pololu.com/product/2994

Image(s) jointe(s)

  • WhatsApp Image 2019-04-03 at 13.40.03(1).jpeg
  • WhatsApp Image 2019-04-03 at 13.40.03.jpeg



#102824 Projet de fin d'année Très important

Posté par Juventin19 sur 03 avril 2019 - 09:27 dans Programmation

Si c'est bien celle là, ça me parait bon

attachicon.gifCapture d’écran_2019-04-02_14-09-13.png

oui je vais essayer, mais sur l'image tu as envoyé on peut voir écrire "Motor Suppy  4.5V-12V" donc elle doit prendre les 12V non?




#102818 Projet de fin d'année Très important

Posté par Juventin19 sur 03 avril 2019 - 08:04 dans Programmation

Comme Mike vous l'a écrit

 

 

 

là c'est à vous de choisir quelle sortie utiliser sur votre arduino

 

Par contre t'es sûr que votre carte rover peut accepter du 12v au niveau logique ?

sur l'image que j'ai partagée, il y a 2 connecteurs d'alim, un pour les moteurs de 4.5 à 12Vcc et un autre pour la partie logique en +5Vcc

et je ne suis pas convaincu que du +12Vcc (même fatigué) soit apprécié par la carte...

 

Il faudrait récupérer le 5Vcc de la carte arduino (vérifier avant si la consommation de la carte rover ne dépasse pas l'intensité max supportée par l'arduino)

il y a un moyen de le tester ? 




#102812 Projet de fin d'année Très important

Posté par Juventin19 sur 03 avril 2019 - 07:15 dans Programmation

faites attention à la tension d'alim de votre carte, j'ai vu que vous aviez une batterie de 12V

Jai vu quelle peut supporté les 12v en plus la batterie est un peu veille du coup elle est moins performante



#102811 Projet de fin d'année Très important

Posté par Juventin19 sur 03 avril 2019 - 07:13 dans Programmation

Tu branches tes moteurs sur les prises blanches, 
 
pour les faire tourner tu mets du PWM sur les pins PWM CH1 CH2 CH3 et CH4, pour changer de sens tu mets HIGH ou LOW  sur les pins directions CH1 CH2 CH3 et CH4 


CH1 pour le moteur 1 jusqu'à CH4 pour moteur 4.


Et niveau connection a larduino ?



#102805 Projet de fin d'année Très important

Posté par Juventin19 sur 02 avril 2019 - 09:21 dans Programmation

D'accord je vais d'abord essayer cette carte avant de commander l'autre

Mais il me faut un peut d'aide. Connaissez vous quelqu'un une personne qui est un expert en rover ? 




#102791 Projet de fin d'année Très important

Posté par Juventin19 sur 02 avril 2019 - 04:44 dans Programmation

Et cette Carte la ? C'est une Rover 5 motor driver 
Sachant  0.5 A par vide et 2 A a fond  pour les moteur CC chaque une

Malheureusement mon professeur ne peut l'acheter car on a pas de partenariat avec Robot  Maker, Mais cette carte ne fonctionne pas je l'achèterais personnellement (meme si un 20 euro pour une carte c'est chère)
De plus la Rover peut se connecter  n'importe quel 4.5 V-12 V DC moteur avec un décrochage actuelle de moins que 4.5A à ces pins

 

du coup je ne  sais pas comment elle fonctionne

 

et merci Forthman de nous aidez vraiment sympa :) :thank_you: 




#102775 Projet de fin d'année Très important

Posté par Juventin19 sur 02 avril 2019 - 10:44 dans Programmation

Et cette Carte la ? C'est une Rover 5 motor driver 

Sachant  0.5 A par vide et 2 A a fond  pour les moteur CC chaque une

Image(s) jointe(s)

  • IMG_9114.jpg



#102759 Projet de fin d'année Très important

Posté par Juventin19 sur 01 avril 2019 - 10:51 dans Programmation

Mike vous êtes toujours là ?



#102720 Projet de fin d'année Très important

Posté par Juventin19 sur 30 mars 2019 - 10:01 dans Programmation

J'ai l'impression que ce composant est crâmé ... 
On voit comme une petite bosse sur le CI ce qui arrive souvent quand un composant fume ...

.
Non T_T
Du coup je dois en acheter une autre ?
Connaissez-vous une carte qui peut le supporter ?
Pour 4 moteur Cc



#102716 Projet de fin d'année Très important

Posté par Juventin19 sur 30 mars 2019 - 05:57 dans Programmation

Non je nai pas Vérifier
Et non je nai pas en rab T-T

Image(s) jointe(s)

  • IMG_9091.jpg