Bonjour à tous!

Aujourd’hui, j’ai un petit projet en cours: construire un robot ligne noire avec Arduino.
En fait c’est pour mon petit frère de 12 ans qui adore regarder ce que je fais, je veux qu’il donne la goutte à la robotique en lui proposant de lui construire une valde simple et ludique. Donc par souci de simplicité je ne veux pas faire le circuit avec le capteur IR, la LED IR, la résistance, les condensateurs et le transistor, ect ….
beaucoup trop compliqué pour son âge.

Je pense que j’utilise deux / trois petits capteurs Grove Seeestudio pour me connecter directement à l’Arduino, deux moteurs DC et un L293D.

Alors je suis venu ici pour te demander un peu d’aide :)/> />

Alors, voici comment je l’ai utilisé:
_ Deux / trois petits capitaines « Grove Seeestudio » – lien
_ connecteur du capitaine – lien
_ Moteur d’ingénierie Pololu – lien
_ Deux moteurs de support – lien
_ Deux roues – lien
_ Un L293D (Double pont en H)
Carte Arduino (j’ai un mega2560, donc je vais l’utiliser pour le test)

donc je dois acheter les capitaines et les moteurs, le reste que j’ai.

Le maintien de mon problème se situe au niveau des capitaines. De combien de ravisseurs ai-je besoin? 2 ou 3?
Je pense que j’ai une droite et une gauche car il détecte le fond blanc et quand l’un des deux détecte la ligne noire il repositionne. Mettez ensuite un 3ème au centre pour détecter la ligne noire et si le détecteur blanc est repositionné.
Alors je vous demande votre avis.

Pour le câblage des moteurs avec le L293D, voir l’image ci-dessous –
Je connecte l’ensemble EN (enable) et les connecte à une broche Arduino
Je connecte le PMW chacun à une broche différente de l’Arduino
le GND sur le GND de l’Arduino
le 9V sur le + du pôle 9 volts

Häll le code je viens de le faire (pour 2 capitaines seulement) et je ne sais pas ce qu’il manque, le cas échéant je peux l’expliquer

int signalPin_Gauche = 2; //capteur de ligne grove seeedstudio
int signalPin_Droite = 3; //capteur de ligne grove seeedstudio
int Motor1 = 4; // L293D - premier moteur pin 1 (Gauche)
int Motor2 = 5; // L293D - premier moteur pin 2 (Gauche)
int Motor3 = 6; // L293D - second moteur pin 1 (Droite)
int Motor4 = 7; // L293D - second moteur pin 2 (Droite)
int Enable1_2 = 8; // L293D - les 2 pins enable

void setup() {
  
pinMode(signalPin_Gauche, INPUT); 
pinMode(signalPin_Droite, INPUT);
pinMode(Motor1, OUTPUT); // Gauche
pinMode(Motor2, OUTPUT); // Gauche
pinMode(Motor3, OUTPUT); // Droite
pinMode(Motor4, OUTPUT); // Droite
pinMode(Enable1_2 , OUTPUT);
digitalWrite(Enable1_2, HIGH);

Serial.begin(9600);
}


void loop()
{
 
if(HIGH == digitalRead(signalPin_Gauche)) // si le capteur de gauche se met en etat HIGH le robot doit se deplacer ver la droite
{
digitalWrite(Motor3, LOW); // Droite eteint
digitalWrite(Motor4, LOW);  // Droite eteint
digitalWrite(Motor1, HIGH); // Gauche allumer
digitalWrite(Motor2, HIGH); // Gauche allumer
}

else // sinon on allume les 2 moteurs et le robot va tout droit
{
digitalWrite(Motor1, HIGH); // Droite allumer
digitalWrite(Motor2, HIGH); // Droite allumer
digitalWrite(Motor3, HIGH); //Gauche allumer
digitalWrite(Motor4, HIGH); //Gauche allumer
}

if(HIGH == digitalRead(signalPin_Droite)) // si le capteur de droite se met en etat HIGH le robot doit se deplacer ver la gauche
{
digitalWrite(Motor3, HIGH); // Droite allumer
digitalWrite(Motor4, HIGH); // Droite allumer
digitalWrite(Motor1, LOW); //Gauche eteint
digitalWrite(Motor2, LOW); //Gauche eteint
}

else // sinon on allume les 2 moteurs et le robot va tout droit
{
digitalWrite(Motor1, HIGH); // Droite allumer
digitalWrite(Motor2, HIGH); // Droite allumer
digitalWrite(Motor3, HIGH); //Gauche allumer
digitalWrite(Motor4, HIGH); //Gauche allumer
}

}



En tout cas, merci de l’avoir lu et merci d’avance pour votre aide.

Rejoindre des photos

  • IMG_2524.JPG

Merci à tous
Cordialement Dylan.

.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *