KY-033 Linetracking-Sensor
Das Sensor-Modul erkennt, ob sich eine lichtreflektierende oder lichtabsorbierende Fläche vor dem Sensor befindet.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Dieses Line-Tracking-Sensor-Modul erkennt, ob sich eine lichtreflektierende oder lichtabsorbierende Fläche vor dem Sensor befindet und gibt das Ergebnis am digitalen Ausgang aus. Diese Fähigkeit macht das Modul ideal für Steuerungssysteme, wie sie bei Robotern zur autonomen Verfolgung von Linien verwendet werden. Roboter können mithilfe dieses Sensors präzise auf vorgegebenen Pfaden navigieren, indem sie reflektierende Linien auf dem Boden verfolgen. Die Empfindlichkeit des Sensors kann über zwei Regler angepasst werden, um eine optimale Leistung unter verschiedenen Lichtbedingungen und Oberflächenbeschaffenheiten zu gewährleisten. Dies ermöglicht eine zuverlässige und anpassbare Lösung für eine Vielzahl von Anwendungen in der Robotik und Automatisierung.
Zustand 1: Line-Tracker ist über einer Line [LED auf dem Modul: Aus] [Sensor Signal: Digital Ein]
Zustand 2: Line Tracker ist außerhalb einer Line [LED auf dem Modul: Ein] [Sensor Signal: Digital Aus]
Anschlussbelegung
Arduino | Sensor |
---|---|
5 V | +V |
GND | GND |
Pin 10 | Signal |
Code-Beispiel
Das Programm liest den aktuellen Status des Sensor-Pins aus und gibt diesen in der seriellen Ausgabe aus. Somit kann ermittelt werden, ob sich der Linetracker auf einer Linie befindet oder nicht.
Um das folgende Codebeispiel auf Ihren Arduino zu laden, empfehlen wir die Verwendung der Arduino IDE. In der IDE können Sie den passenden Port und das richtige Board für Ihr Gerät auswählen.
Kopieren Sie den unten stehenden Code in Ihre IDE. Um den Code auf Ihren Arduino hochzuladen, klicken Sie einfach auf den Upload-Button.
int linetracking = 10; // Deklaration des Sensor-Eingangspin
int value; // Temporaere Variable
void setup () {
pinMode(linetracking, INPUT); // Initialisierung Sensorpin
digitalWrite(linetracking, HIGH); // Aktivierung interner Pull-up-Widerstand
Serial.begin(9600); // Initialisierung des seriellen Monitors
Serial.println("KY-033 Linetracking");
}
void loop () {
// Das Stromsignal am Sensor wird ausgelesen.
value = digitalRead(linetracking);
// Wenn ein Signal erkannt werden konnte, wird das auf dem seriellen Monitor angezeigt.
if (value == HIGH) {
Serial.println("Linie erkannt");
delay(200); // 200 ms Pause
}
}
Dieses Line-Tracking-Sensor-Modul erkennt, ob sich eine lichtreflektierende oder lichtabsorbierende Fläche vor dem Sensor befindet und gibt das Ergebnis am digitalen Ausgang aus. Diese Fähigkeit macht das Modul ideal für Steuerungssysteme, wie sie bei Robotern zur autonomen Verfolgung von Linien verwendet werden. Roboter können mithilfe dieses Sensors präzise auf vorgegebenen Pfaden navigieren, indem sie reflektierende Linien auf dem Boden verfolgen. Die Empfindlichkeit des Sensors kann über zwei Regler angepasst werden, um eine optimale Leistung unter verschiedenen Lichtbedingungen und Oberflächenbeschaffenheiten zu gewährleisten. Dies ermöglicht eine zuverlässige und anpassbare Lösung für eine Vielzahl von Anwendungen in der Robotik und Automatisierung.
Zustand 1: Line-Tracker ist über einer Line [LED auf dem Modul: Aus] [Sensor Signal: Digital Ein]
Zustand 2: Line Tracker ist außerhalb einer Line [LED auf dem Modul: Ein] [Sensor Signal: Digital Aus]
Anschlussbelegung
Raspberry Pi | Sensor |
---|---|
3,3 V [Pin 1] | +V |
GND [Pin 6] | GND |
GPIO 24 [Pin 18] | Signal |
Code-Beispiel
Das Programm liest den aktuellen Status des Sensor-Pins aus und gibt diesen in der seriellen Ausgabe aus. Somit kann ermittelt werden, ob sich der Linetracker auf einer Linie befindet oder nicht.
# -*- coding: iso-8859-1 -*-
from gpiozero import DigitalInputDevice
import time
# Initialisiere den Eingangs-Pin, an dem der Sensor angeschlossen ist
sensor = DigitalInputDevice(24, pull_up=True)
# Pause zwischen der Ausgabe des Ergebnisses wird definiert (in Sekunden)
delayTime = 0.5
print("Sensor-Test [druecken Sie STRG+C, um den Test zu beenden]")
# Hauptprogrammschleife
try:
while True:
if sensor.is_active: # True, wenn der Pin HIGH ist (LineTracker ist ueber der Linie)
print("LineTracker ist ausserhalb der Linie")
else: # False, wenn der Pin LOW ist (Linetracker ist ausserhalb der Linie)
print("Linetracker ist ueber der Linie")
print("---------------------------------------")
# Reset + Delay
time.sleep(delayTime)
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
print("Programm wurde durch Benutzer unterbrochen")
Dieses Line-Tracking-Sensor-Modul erkennt, ob sich eine lichtreflektierende oder lichtabsorbierende Fläche vor dem Sensor befindet und gibt das Ergebnis am digitalen Ausgang aus. Diese Fähigkeit macht das Modul ideal für Steuerungssysteme, wie sie bei Robotern zur autonomen Verfolgung von Linien verwendet werden. Roboter können mithilfe dieses Sensors präzise auf vorgegebenen Pfaden navigieren, indem sie reflektierende Linien auf dem Boden verfolgen. Die Empfindlichkeit des Sensors kann über zwei Regler angepasst werden, um eine optimale Leistung unter verschiedenen Lichtbedingungen und Oberflächenbeschaffenheiten zu gewährleisten. Dies ermöglicht eine zuverlässige und anpassbare Lösung für eine Vielzahl von Anwendungen in der Robotik und Automatisierung.
Zustand 1: Line-Tracker ist über einer Line [LED auf dem Modul: Aus] [Sensor Signal: Digital Ein]
Zustand 2: Line Tracker ist außerhalb einer Line [LED auf dem Modul: Ein] [Sensor Signal: Digital Aus]
Anschlussbelegung
Micro:Bit | Sensor |
---|---|
Pin 1 | Signal |
3 V | +V |
GND | GND |
Code-Beispiel
Hierbei handelt es sich um ein Beispielprogramm, welches Text Seriell ausgibt, wenn am Sensor ein Signal detektiert wurde.
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)
}
})
Beispielprogramm Download
Dieses Line-Tracking-Sensor-Modul erkennt, ob sich eine lichtreflektierende oder lichtabsorbierende Fläche vor dem Sensor befindet und gibt das Ergebnis am digitalen Ausgang aus. Diese Fähigkeit macht das Modul ideal für Steuerungssysteme, wie sie bei Robotern zur autonomen Verfolgung von Linien verwendet werden. Roboter können mithilfe dieses Sensors präzise auf vorgegebenen Pfaden navigieren, indem sie reflektierende Linien auf dem Boden verfolgen. Die Empfindlichkeit des Sensors kann über zwei Regler angepasst werden, um eine optimale Leistung unter verschiedenen Lichtbedingungen und Oberflächenbeschaffenheiten zu gewährleisten. Dies ermöglicht eine zuverlässige und anpassbare Lösung für eine Vielzahl von Anwendungen in der Robotik und Automatisierung.
Zustand 1: Line-Tracker ist über einer Line [LED auf dem Modul: Aus] [Sensor Signal: Digital Ein]
Zustand 2: Line Tracker ist außerhalb einer Line [LED auf dem Modul: Ein] [Sensor Signal: Digital Aus]
Anschlussbelegung
Raspbery Pi Pico | Sensor |
---|---|
3.3V | +V |
GND | GND |
GPIO18 | Signal |
Code-Beispiel
Das Programm liest den aktuellen Status des Sensor-Pins aus und gibt diesen in der seriellen Ausgabe aus. Somit kann ermittelt werden, ob sich der Linetracker auf einer Linie befindet oder nicht.
Um das folgende Codebeispiel auf Ihren Pico zu laden, empfehlen wir die Verwendung von der Thonny IDE. Sie müssen nur zunächst unter Run > Configure interpreter … > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico) auswählen.
Kopieren Sie den untenstehenden Code nun in Ihre IDE und klicken Sie auf Run.
# Bibliotheken laden
from machine import Pin
from time import sleep
# Initialisierung von GPIO18 als Input
sensor = Pin(18, Pin.IN, Pin.PULL_UP)
print("KY-033 Linienerkennung")
# Dauerschleife für kontinuierliche Serielle Ausgabe
while True:
if sensor.value() == 0:
print("Keine Linie erkannt")
else:
print("Linie erkannt")
print("------------------------------------------------------")
sleep(1)