KY-033 Module suiveur de ligne
Le module capteur détecte si une surface réfléchissant ou absorbant la lumière se trouve devant le capteur.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Ce module de capteur de suivi de ligne détecte si une surface réfléchissant ou absorbant la lumière se trouve devant le capteur et transmet le résultat à la sortie numérique. Cette capacité rend ce module idéal pour les systèmes de contrôle tels que ceux utilisés par les robots pour le suivi autonome de lignes. Grâce à ce capteur, les robots peuvent naviguer avec précision sur des chemins prédéfinis en suivant des lignes réfléchissantes sur le sol. La sensibilité du capteur peut être ajustée à l'aide de deux commandes afin de garantir des performances optimales dans différentes conditions d'éclairage et d'état de surface. Cela permet de disposer d'une solution fiable et adaptable pour une multitude d'applications dans le domaine de la robotique et de l'automatisation.c
État 1 : le suiveur de ligne est au-dessus d'une ligne (surface non réfléchissante) [DEL du module : éteinte] [Signal du capteur = numérique activé].
État 2 : le suiveur de ligne est en dehors d'une ligne (surface réfléchissante) [LED sur le module : allumée] [Signal du capteur = Digital Off].
Affectation des broches
Arduino | Capteur |
---|---|
5V | +V |
GND | GND |
Pin 10 | Signal |
Exemple de code
Le programme lit l'état actuel de la broche du capteur et indique sur la console série si le suiveur de ligne est actuellement sur la ligne ou non.
Pour charger l'exemple de code suivant sur votre Arduino, nous vous recommandons d'utiliser l'IDE Arduino. Dans l'IDE, vous pouvez choisir le port et la carte qui conviennent à votre appareil.
Copiez le code ci-dessous dans votre IDE. Pour télécharger le code sur votre Arduino, il vous suffit de cliquer sur le bouton " Upload ".
int linetracking = 10; // Déclaration de la broche d'entrée du capteur
int value; // Variable temporelle
void setup () {
pinMode(linetracking, INPUT); // Initialisation de la broche du capteur
digitalWrite(linetracking, HIGH); // Activation de la résistance pull-up interne
Serial.begin(9600); // Initialisation du moniteur sériel
Serial.println("KY-033 Traçage de lignes");
}
void loop () {
// Le signal de courant au niveau du capteur est lu.
value = digitalRead(linetracking);
// Si un signal a pu être détecté, cela s'affiche sur le moniteur sériel
if (value == HIGH) {
Serial.println("Ligne détectée");
delay(200); // 200 ms de pause
}
}
Ce module de capteur de suivi de ligne détecte si une surface réfléchissant ou absorbant la lumière se trouve devant le capteur et transmet le résultat à la sortie numérique. Cette capacité rend ce module idéal pour les systèmes de contrôle tels que ceux utilisés par les robots pour le suivi autonome de lignes. Grâce à ce capteur, les robots peuvent naviguer avec précision sur des chemins prédéfinis en suivant des lignes réfléchissantes sur le sol. La sensibilité du capteur peut être ajustée à l'aide de deux commandes afin de garantir des performances optimales dans différentes conditions d'éclairage et d'état de surface. Cela permet de disposer d'une solution fiable et adaptable pour une multitude d'applications dans le domaine de la robotique et de l'automatisation.c
État 1 : le suiveur de ligne est au-dessus d'une ligne (surface non réfléchissante) [DEL du module : éteinte] [Signal du capteur = numérique activé].
État 2 : le suiveur de ligne est en dehors d'une ligne (surface réfléchissante) [LED sur le module : allumée] [Signal du capteur = Digital Off].
Affectation des broches
Exemple de code
Raspberry Pi | Capteur |
---|---|
3,3V [Pin 1] | +V |
GND [Pin 6] | GND |
GPIO 24 [Pin 18] | Signal |
Le programme lit l'état actuel de la broche du capteur et indique sur la console série si le suiveur de ligne est actuellement sur la ligne ou non.
from gpiozero import DigitalInputDevice
import time
# Initialiser la broche d'entrée à laquelle le capteur est connecté
sensor = DigitalInputDevice(24, pull_up=True)
# La pause entre la sortie du résultat est définie (en secondes).
delayTime = 0.5
print("Test du capteur [appuyez sur CTRL+C pour terminer le test]")
# Boucle du programme principal
try:
while True:
if sensor.is_active: # Vrai si la broche est HAUTE (LineTracker est au-dessus de la ligne)
print("LineTracker est en dehors de la ligne")
else: # Faux si la broche est BASSE (le traceur de ligne est en dehors de la ligne))
print("Le traceur de ligne est au-dessus de la ligne")
print("---------------------------------------")
# Réinitialisation + délai
time.sleep(delayTime)
# Nettoyer les lieux après la fin du programme
except KeyboardInterrupt:
print("Le programme a été interrompu par l'utilisateur")
Ce module de capteur de suivi de ligne détecte si une surface réfléchissant ou absorbant la lumière se trouve devant le capteur et transmet le résultat à la sortie numérique. Cette capacité rend ce module idéal pour les systèmes de contrôle tels que ceux utilisés par les robots pour le suivi autonome de lignes. Grâce à ce capteur, les robots peuvent naviguer avec précision sur des chemins prédéfinis en suivant des lignes réfléchissantes sur le sol. La sensibilité du capteur peut être ajustée à l'aide de deux commandes afin de garantir des performances optimales dans différentes conditions d'éclairage et d'état de surface. Cela permet de disposer d'une solution fiable et adaptable pour une multitude d'applications dans le domaine de la robotique et de l'automatisation.c
État 1 : le suiveur de ligne est au-dessus d'une ligne (surface non réfléchissante) [DEL du module : éteinte] [Signal du capteur = numérique activé].
État 2 : le suiveur de ligne est en dehors d'une ligne (surface réfléchissante) [LED sur le module : allumée] [Signal du capteur = Digital Off].
Affectation des broches
Micro:Bit | Capteur |
---|---|
Pin 1 | Signal |
3V | +V |
GND | GND |
Exemple de code
Ceci est un exemple MakeCode pour Micro:Bit qui fait essentiellement la même chose que les exemples pour les deux autres variantes. Cependant, cet exemple est plus proche de celui du Raspberry Pi que de celui de l'Arduino.
pins.setPull(DigitalPin.P1, PinPullMode.PullUp)
basic.forever(function () {
if (pins.digitalReadPin(DigitalPin.P1) == 1) {
serial.writeLine("No line")
basic.pause(100)
} else {
serial.writeLine("Line detected")
basic.pause(100)
}
})
Téléchargement d'un exemple de programme
Ce module de capteur de suivi de ligne détecte si une surface réfléchissant ou absorbant la lumière se trouve devant le capteur et transmet le résultat à la sortie numérique. Cette capacité rend ce module idéal pour les systèmes de contrôle tels que ceux utilisés par les robots pour le suivi autonome de lignes. Grâce à ce capteur, les robots peuvent naviguer avec précision sur des chemins prédéfinis en suivant des lignes réfléchissantes sur le sol. La sensibilité du capteur peut être ajustée à l'aide de deux commandes afin de garantir des performances optimales dans différentes conditions d'éclairage et d'état de surface. Cela permet de disposer d'une solution fiable et adaptable pour une multitude d'applications dans le domaine de la robotique et de l'automatisation.c
État 1 : le suiveur de ligne est au-dessus d'une ligne (surface non réfléchissante) [DEL du module : éteinte] [Signal du capteur = numérique activé].
État 2 : le suiveur de ligne est en dehors d'une ligne (surface réfléchissante) [LED sur le module : allumée] [Signal du capteur = Digital Off].
Affectation des broches
Raspbery Pi Pico | Capteur |
---|---|
3.3V | +V |
GND | GND |
GPIO18 | Signal |
Exemple de code
Le programme lit l'état actuel de la broche du capteur et le transmet à la sortie série. Ainsi, il est possible de déterminer si le suiveur de ligne est sur une ligne ou non.
Pour charger l'exemple de code suivant sur votre Pico, nous vous recommandons d'utiliser l'IDE Thonny. Il vous suffit de commencer par sélectionner Run > Configure interpreter ... > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico).
Copiez maintenant le code ci-dessous dans votre IDE et cliquez sur Run.
# Chargement des bibliothèques
from machine import Pin
from time import sleep
# Initialisation de GPIO18 comme entrée
sensor = Pin(18, Pin.IN, Pin.PULL_DOWN)
print("KY-033 Reconnaissance des lignes")
# Boucle continue pour une sortie série continue
while True:
if sensor.value() == 0:
print("Aucune ligne détectée")
else:
print("Ligne détectée")
print("------------------------------------------------------")
sleep(1)