KY-033 Tracking Sensor Modul: Unterschied zwischen den Versionen

Aus Linkerkit.de

Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „==Bild== 358x358px ==Technische Daten / Kurzbeschreibung== Das Sensor-Modul erkennt ob sich eine lichtreflektierende oder lichtabsor…“)
 
(Codebeispiel Raspberry Pi)
 
(5 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Bild==
 
==Bild==
[[Datei:KY-001.jpg|none|358x358px]]
+
[[Datei:ky-033.jpg|none|358x358px]]
  
 
==Technische Daten / Kurzbeschreibung==
 
==Technische Daten / Kurzbeschreibung==
Das Sensor-Modul erkennt ob sich eine lichtreflektierende oder lichtabsorbierende Fläche vor dem Sensor befindet; der digitale Ausgang gibt aus was aktuell der Fall ist—dies kann man z.B. dazu nutzen, um eine Linie zu folgen. Die Empfindlichkeit des Sensors, kann hierbei mit dem Regler reguliert werden.
+
Das Sensor-Modul erkennt ob sich eine lichtreflektierende oder lichtabsorbierende Fläche vor dem Sensor befindet. Was aktuell der Fall ist, gibt das Modul an seinem digitalen Ausgang aus, wie es in den unteren Bildern aufgezeigt ist. Die Empfindlichkeit (resultierender Mindestabstand) des Sensors, kann hierbei mit dem Regler reguliert werden.
 +
 
 +
Dieses Verhalten kann man in Steuerungen einsetzten, wie sie z.B. bei Robotern Verwendung finden, um damit autonom einer Linie folgen zu können.
 +
 
 +
 
 +
<u>'''Zustand 1''': Line Tracker ist über einer Line (nicht reflektierenden Fläche) [LED auf dem Modul: Aus] [Sensor Signal= Digital Ein]</u>
 +
 
 +
[[Datei:KY-033_LineOn.jpg|none|632x355px]]
 +
 
 +
 
 +
<u>'''Zustand 2''': Line Tracker ist außerhalb einer Line (reflektierenden Fläche) [LED auf dem Modul: AN] [Sensor Signal= Digital Aus]</u>
 +
 
 +
 [[Datei:KY-033_LineOff.jpg|none|632x355px]]
 +
 
  
  
Zeile 10: Zeile 23:
  
 
==Codebeispiel Arduino==
 
==Codebeispiel Arduino==
<pre class="brush:cpp">
+
Das Programm liest den aktuellen Status des Sensor-Pins aus und gibt in der seriellen Konsole aus, ob der Linetracker sich aktuell auf der Linie befindet oder nicht
int sensorPin = A5; / / select the input pin
+
 
int ledPin = 13; / / select the pin for the LED
+
<pre class="brush:cpp">int Sensor = 10; // Deklaration des Sensor-Eingangspin
int sensorValue = 0; / / variable to store the value coming from the
+
 
sensor
+
void setup ()
void setup () {
+
{
pinMode (ledPin, OUTPUT);
+
  Serial.begin(9600); // Initialisierung serielle Ausgabe
Serial.begin (9600);
+
  pinMode (Sensor, INPUT) ; // Initialisierung Sensorpin
 
}
 
}
void loop () {
+
 
sensorValue = analogRead (sensorPin);
+
// Das Programm liest den aktuellen Status des Sensor-Pins aus und
digitalWrite (ledPin, HIGH);
+
// gibt in der seriellen Konsole aus, ob der Linetracker sich aktuell
delay (sensorValue);
+
// auf der Linie befindet oder nicht
digitalWrite (ledPin, LOW);
+
void loop ()
delay (sensorValue);
+
{
Serial.println (sensorValue, DEC);
+
  bool val = digitalRead (Sensor) ; // Das gegenwärtige Signal am Sensor wird ausgelesen
 +
 
 +
  if (val == HIGH) // Falls ein Signal erkannt werden konnte, wird die LED eingeschaltet.
 +
  {
 +
    Serial.println("LineTracker ist ueber der Linie");
 +
  }
 +
  else
 +
  {
 +
    Serial.println("Linetracker ist ausserhalb der Linie");
 +
  }
 +
  Serial.println("------------------------------------");
 +
  delay(500); // Pasuse zwischen der Messung von 500ms
 
}
 
}
 +
 +
</pre>
 +
 +
'''Anschlussbelegung Arduino:'''
 +
 +
{| style="height: 58px; padding-left: 30px;" width="228"
 +
|-
 +
||Sensor Signal
 +
||=
 +
||[Pin 10]
 +
|-
 +
||Sensor +V
 +
||=
 +
||[Pin 5V]
 +
|-
 +
||Sensor GND
 +
||=
 +
||[Pin GND]
 +
|}
 +
 +
'''Beispielprogramm Download'''
 +
 +
[[Medium:KY-033_TrackingSensor.zip|KY-033_TrackingSensor.zip]]
 +
 +
==Codebeispiel Raspberry Pi==
 +
Das Programm liest den aktuellen Status des Sensor-Pins aus und gibt in der seriellen Konsole aus, ob der Linetracker sich aktuell auf der Linie befindet oder nicht
 +
 +
<pre class="brush:py">
 +
# Benoetigte Module werden importiert und eingerichtet
 +
import RPi.GPIO as GPIO
 +
import time
 +
 +
GPIO.setmode(GPIO.BCM)
 +
 +
# Hier wird der Eingangs-Pin deklariert, an dem der Sensor angeschlossen ist.
 +
GPIO_PIN = 24
 +
GPIO.setup(GPIO_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP)
 +
 +
# 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 GPIO.input(GPIO_PIN) == True:
 +
                print "LineTracker ist ueber der Linie"
 +
            else:
 +
                print "Linetracker ist ausserhalb der Linie"
 +
            print "---------------------------------------"
 +
 +
            # Reset + Delay
 +
            time.sleep(delayTime)
 +
 +
# Aufraeumarbeiten nachdem das Programm beendet wurde
 +
except KeyboardInterrupt:
 +
        GPIO.cleanup()
 +
 +
</pre>
 +
'''Anschlussbelegung Raspberry Pi:'''
 +
 +
{| style="height: 58px; padding-left: 30px;" width="228"
 +
|-
 +
||Signal
 +
||=
 +
||GPIO24
 +
||[Pin 18]
 +
|-
 +
||+V
 +
||=
 +
||3,3V
 +
||[Pin 1]
 +
|-
 +
||GND
 +
||=
 +
||Masse
 +
||[Pin 6]
 +
|}
 +
 +
'''Beispielprogramm Download'''
 +
 +
[[Medium:KY-033_RPi_Trackingsensor.zip|KY-033_RPi_Trackingsensor.zip]]
 +
 +
Zu starten mit dem Befehl:
 +
 +
<pre class="brush:bash">sudo python KY-033_RPi_Trackingsensor.py
 
</pre>
 
</pre>

Aktuelle Version vom 8. April 2016, 12:01 Uhr

Bild

ky-033.jpg

Technische Daten / Kurzbeschreibung

Das Sensor-Modul erkennt ob sich eine lichtreflektierende oder lichtabsorbierende Fläche vor dem Sensor befindet. Was aktuell der Fall ist, gibt das Modul an seinem digitalen Ausgang aus, wie es in den unteren Bildern aufgezeigt ist. Die Empfindlichkeit (resultierender Mindestabstand) des Sensors, kann hierbei mit dem Regler reguliert werden.

Dieses Verhalten kann man in Steuerungen einsetzten, wie sie z.B. bei Robotern Verwendung finden, um damit autonom einer Linie folgen zu können.


Zustand 1: Line Tracker ist über einer Line (nicht reflektierenden Fläche) [LED auf dem Modul: Aus] [Sensor Signal= Digital Ein]

KY-033 LineOn.jpg


Zustand 2: Line Tracker ist außerhalb einer Line (reflektierenden Fläche) [LED auf dem Modul: AN] [Sensor Signal= Digital Aus]

 
KY-033 LineOff.jpg


Pin-Belegung

3 S V G.png

Codebeispiel Arduino

Das Programm liest den aktuellen Status des Sensor-Pins aus und gibt in der seriellen Konsole aus, ob der Linetracker sich aktuell auf der Linie befindet oder nicht

int Sensor = 10; // Deklaration des Sensor-Eingangspin
  
void setup ()
{
  Serial.begin(9600); // Initialisierung serielle Ausgabe
  pinMode (Sensor, INPUT) ; // Initialisierung Sensorpin
}
  
// Das Programm liest den aktuellen Status des Sensor-Pins aus und
// gibt in der seriellen Konsole aus, ob der Linetracker sich aktuell 
// auf der Linie befindet oder nicht
void loop ()
{
  bool val = digitalRead (Sensor) ; // Das gegenwärtige Signal am Sensor wird ausgelesen
  
  if (val == HIGH) // Falls ein Signal erkannt werden konnte, wird die LED eingeschaltet.
  {
    Serial.println("LineTracker ist ueber der Linie");
  }
  else
  {
    Serial.println("Linetracker ist ausserhalb der Linie");
  }
  Serial.println("------------------------------------");
  delay(500); // Pasuse zwischen der Messung von 500ms
}

Anschlussbelegung Arduino:

Sensor Signal = [Pin 10]
Sensor +V = [Pin 5V]
Sensor GND = [Pin GND]

Beispielprogramm Download

KY-033_TrackingSensor.zip

Codebeispiel Raspberry Pi

Das Programm liest den aktuellen Status des Sensor-Pins aus und gibt in der seriellen Konsole aus, ob der Linetracker sich aktuell auf der Linie befindet oder nicht

# Benoetigte Module werden importiert und eingerichtet
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

# Hier wird der Eingangs-Pin deklariert, an dem der Sensor angeschlossen ist.
GPIO_PIN = 24
GPIO.setup(GPIO_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP)

# 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 GPIO.input(GPIO_PIN) == True:
                print "LineTracker ist ueber der Linie"
            else:
                print "Linetracker ist ausserhalb der Linie"
            print "---------------------------------------"

            # Reset + Delay
            time.sleep(delayTime)

# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
        GPIO.cleanup()

Anschlussbelegung Raspberry Pi:

Signal = GPIO24 [Pin 18]
+V = 3,3V [Pin 1]
GND = Masse [Pin 6]

Beispielprogramm Download

KY-033_RPi_Trackingsensor.zip

Zu starten mit dem Befehl:

sudo python KY-033_RPi_Trackingsensor.py