[Arduino] Linefollower Avec Photorésistances: 5 étapes

[Arduino] Linefollower Avec Photorésistances: 5 étapes

Table des matières:

Anonim

Intro:

salut!

J'ai construit un robot Linefollower qui pourrait être utilisé de différentes manières et j'ai résumé mon projet en quelques étapes.

Pour commencer, tout ce dont vous avez besoin est constitué des parties suivantes:

Liste des pieces

Cadre -Robot

-Deux roues

-Deux moteurs à courant continu

- mini planche à pain

-Deux leds

-Deux photorésistances

-Deux résistances 56k

-Deux résistances 330

-Quelques fils

-Diodes (si pas déjà inclus dans le contrôleur de moteur)

-Contrôleur de moteur (j'ai utilisé L298)

-Grand planche à pain

-Trois batterie 1.5v

-Arduino UNO

Provisions:

Étape 1: Cadre du robot

Liste des pieces:

Cadre -Robot

-Deux roues

-Deux moteurs à courant continu

Comment:

J'ai utilisé un ancien bâti de robot à deux roues commandé par deux moteurs à courant continu, mais vous pouvez également utiliser une solution équivalente.

Étape 2: Capteur Ir + Photorésistance

Liste des pieces:

- mini planche à pain

-Deux leds

-Deux photorésistances

-Deux résistances 56k

-Deux résistances 330

-Quelques fils

Comment:

Calculez la distance entre les deux paires de leds et de photorésistances en vous basant sur la largeur de votre bande.

Positionnez les photorésistances et les leds comme indiqué sur les images.

Connectez les leds à deux résistances de 330 ohms et entourez-les de ruban adhésif non transparent pour éviter toute interférence avec les photorésistances

Placez la mini planche à pain dans la partie inférieure du cadre.

Étape 3: contrôleur de moteur

Liste des pieces:

-Quelques fils

-Diodes (si pas déjà inclus dans le contrôleur de moteur)

-Commande de moteur

-Grand planche à pain

-Trois piles 1.5v

Assemblage de capteurs:

Branchez les broches d’entrée du pont A sur les broches 11 et 12 d’Arduino.

Branchez les broches d’entrée du pont B sur les broches 6 et 5 d’Arduino.

Reliez avec des diodes les broches de sortie de chaque pont aux moteurs, si nécessaire.

Connectez la tension d'alimentation logique (Vss) à 5v d'Arduino et connectez la masse du contrôleur de moteur au gnd d'arduino.

Connectez la tension d'alimentation (Vs) à 3 piles AA.

Étape 4: Programmation Arduino

Liste des pieces:

-Arduino UNO

-Quelques fils

Utilisez ce code:

int PinSens_A = A5;

int PinSens_B = A4;

int ValSens_A = 0;

int ValSens_B = 0;

int Ris;

int PinMotorA_1 = 10;

int PinMotorA_2 = 11;

int PinMotorB_1 = 5;

int PinMotorB_2 = 6;

int SpeedMotor_A;

int SpeedMotor_B;

int difference = 0;

int RoL (int A, int B)

{

si (A> B)

retourne 1;

si (B> A)

retourne 2;

si (A = B)

retourne 0;

}

void Suivre (int val, int speedMax)

{

si (val == 2)

{

SpeedMotor_A = speedMax;

SpeedMotor_B = 0;

}

si (val == 1)

{

SpeedMotor_A = 0;

SpeedMotor_B = speedMax;

}

}

int Move (int dir)

{

si (dir == 0)

{

analogWrite (PinMotorA_1, SpeedMotor_A);

analogWrite (PinMotorB_1, SpeedMotor_B);

}

si (dir == 1)

{

analogWrite (PinMotorA_2, SpeedMotor_A);

analogWrite (PinMotorB_2, SpeedMotor_B);

}

}

int calcDiff ()

{

ValSens_A = analogRead (PinSens_A);

ValSens_B = analogRead (PinSens_B);

if (ValSens_A> ValSens_B)

{

int diff = ValSens_A - ValSens_B;

return diff;

}

if (ValSens_A <ValSens_B)

{

int diff = ValSens_B - ValSens_A;

return diff;

}

}

Déboguer nul ()

{

Serial.print (Ris);

Serial.print ("");

Serial.print (ValSens_A);

Serial.print ("");

Serial.print (ValSens_B);

Serial.println ("");

}

void setup()

{

Serial.begin (9600);

pinMode (PinMotorA_1, OUTPUT);

pinMode (PinMotorA_2, OUTPUT);

pinMode (PinMotorB_1, OUTPUT);

pinMode (PinMotorB_2, OUTPUT);

pinMode (PinSens_A, INPUT);

pinMode (PinSens_B, INPUT);

}

boucle vide ()

{

si (différence == 0)

{

différence = 1;

}

ValSens_A = analogRead (PinSens_A);

ValSens_B = analogRead (PinSens_B) +150; // utilise un nombre variable pour équilibrer les capteurs

Ris = RoL (ValSens_A, ValSens_B);

Suivez (Ris, 100);

Déplacer (0);

Déboguer();

};

Étape 5: test

Enfin, testez votre configuration pour obtenir les meilleures performances.