Zum Hauptinhalt springen
Version: 1.0.0

Liniensensor

Für die Steuerung des Liniensensors kann die Funktion line_sensor verwendet werden.

API

Für die Liniensensoren können folgende Konstanten benutzt werden:

class LineSensor:
SENSOR_L1 = 0
SENSOR_M = 1
SENSOR_R1 = 2
SENSOR_L2 = 3
SENSOR_R2 = 4
ALL = 5

line_sensor(sensor)

Gibt für den angegebenen Liniensensor an, ob er Schwarz (=1) oder Weiss (=0) sieht.

Aus der Vogelperspektive sind die Sensoren wie folgt angeordnet:

   /''''^''''\
/ L1 M R1 \
| |
|L2 R2|
o|.............|o

Parameter

sensor: int

LineSensor.SENSOR_L1

LineSensor.SENSOR_M

LineSensor.SENSOR_R1

LineSensor.SENSOR_L2

LineSensor.SENSOR_R2

LineSensor.ALL

Beispiel

Den mittleren Sensor abfragen:

line_sensor(LineSensor.M) # => 0 oder 1

Beispiel line_sensor(LineSensor.ALL)

Mit line_sensor(LineSensor.ALL) wird ein 5-Tupel mit den Werten von allen Fünf Liniensensoren zurückgegeben. Die Reihenfolge ist im Uhrzeigersinn, beginnend mit dem linken Sensor: (L2, L1, M, R1, R2)

line_sensor(LineSensor.ALL) # => Tupel aller Sensorwerte, (0, 1, 1, 0, 1)
# -> L1, M und R2 sind auf der Linie

line_sensor_data(sensor)

Gibt die Rohdaten des angegebenen Liniensensors zurück. Je näher der Sensorwert bei 0 ist, desto dunkler ist die gemessene Farbe. Je näher der Wert bei 255 ist, desto heller ist die gemessene Farbe. Für die Unterscheidung von Schwarz und Weiss kann bspw. folgender Schwellwert verwendet werden:

schwarz

< 100

weiss

> 100

Parameter

sensor: int

LineSensor.SENSOR_L1

LineSensor.SENSOR_M

LineSensor.SENSOR_R1

LineSensor.SENSOR_L2

LineSensor.SENSOR_R2

LineSensor.ALL

Beispiel

line_sensor_data(LineSensor.M) # => 0-256

Beispiel line_sensor_data(LineSensor.ALL)

Mit line_sensor(LineSensor.ALL) wird ein 5-Tupel mit den Rohwerten von allen Fünf Liniensensoren zurückgegeben. Die Reihenfolge ist im Uhrzeigersinn, beginnend mit dem linken Sensor: (L2, L1, M, R1, R2)

line_sensor_data(LineSensor.ALL) # => Tupel aller Sensorwerte (12, 130, 50, 72, 77)
# => Alle Sensoren messen Werte zwischen 0 und 255

Kalibrierung der Liniensensoren

Die Liniensensoren wurden im Werk kalibriert. Sollte die Kalibrierung nicht mehr präzise sein, können die Sensoren neu kalibriert werden.

  1. Maqueen auf einer schwarzen Fläche positionieren (bspw. auf der Rückseite der beigelegten Track Map)
  2. Den Calibration Key 5 Sekunden gedrückt halten