Aujourd'hui j'ai un petit projet en tête - construire un robot suiveur de ligne noir avec Arduino.
En fait c'est pour mon petit frère de 12 ans qui aime bien regarder ce que je fais , je veux donc lui donner gout a la robotique en lui proposant de construire quelque chose de simple et ludique pour lui. Donc pour faire simple je ne veux pas lui faire faire des circuit avec des capteur IR , des LED IR , des résistance, des condensateurs et des transistor , ect ....
beaucoup trop compliquer pour son age.
Je pensais utiliser deux/trois petit capteurs grove seeestudio a connecter directement sur l' Arduino , deux moteur DC et un L293D.
Donc je viens ici pour vous demander un petit peu d'aide />/>
Alors voila comme je l'ai dit je vais utiliser :
_ Deux/trois petit capteurs "grove seeestudio" - lien
_ connecteur du capteur - lien
_ Moteur à engrenages Pololu - lien
_ Deux support moteurs - lien
_ Deux roues - lien
_ Un L293D (Double pont en H)
_ Carte Arduino(J'ai une mega2560 , donc je vais l'utiliser pour les test)
donc je dois acheter les capteurs et les moteurs , le reste j'ai deja.
Maintenant mon problème c'est au niveau des capteurs. Combien de capteurs me faut il ? 2 ou 3 ?
je pensais mettre un a droite et un a gauche pour qu'il détectent le fond blanc et quand un des deux détecte la ligne noir il se repositionne. Ou alors mettre un 3eme au centre pour qu'il détecte la ligne noir et si il détecte du blanc il se repositionne.
Donc la je demande votre avis.
Pour le câblage des moteurs avec le L293D voir image ci dessous -
je connecte les EN (enable) ensemble et les connecte sur un pin de l' Arduino
je connecte les PMW chacun sur un pin différent de l' Arduino
les GND sur le GND de l'Arduino
les 9V sur le + de la pile 9 volt
Pour le code je viens de le faire (pour 2 capteurs seulement) et je ne sais pas ce qu'il manque , si quelqu'un peut m'éclairer
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 m'avoir lu et merci d'avance de votre aide.