Devices / UE9 Interface

LabJack bietet nicht nur Linuxtreiber für ihr UE9 an, sondern ebenfalls eine Schnittstelle zu Python. Damit ist es möglich, das gesamte Gerät vergleichsweise einfach zu nutzen.

Um die Nutzung für unsere Zwecke weiter zu vereinfachen, sind wir noch einen Schritt weiter gegangen: Mittels Vererbung haben wir die von LabJack bereitgestellte UE9 Klasse um Methoden erweitert, welche speziell auf unsere Zwecke abgestimmt sind. Dazu gehören etwa Methoden, welche die Ampelsequenz abspielen oder die Lichtschranken an der Startlinie abfragen. Auf diese Weise kann das eigentliche Messprogramm frei von kryptischen Portabfragen bleiben und stattdessen Methoden mit aussagekräftigen Namen verwenden, welche das Programm lesbarer machen.

Weiterhin hat diese Abstraktion den zusätzlichen Vorteil, dass das Messprogramm auch mit anderen Geräten verwendet werden kann: Es kann selbst unverändert bleiben, lediglich die Abstraktionsschicht muss für andere Geräte neu geschrieben werden. Neben dem Interface für das UE9 wurde daher auch ein virtuelles Messgerät geschrieben. Das virtuelle Gerät ist sehr nützlich, wenn man die Software testen möchte, jedoch keinen UE9 zur Verfügung hat. Das virtuelle Gerät löst dabei zufällig unterschiedliche Aktionen aus, wie etwa das Passieren des Ziels, und zeigt Informationen an, die es erhält, etwa das ein- oder ausschalten der Stromfreigabe.

Standardmäßig versucht das Programm zunächst, eine Verbindung zu einem realen UE9 aufzubauen, wenn das fehlschlägt, wird auf das virtuelle zurückgegriffen. Geplant ist außerdem ein Einstellungsdialog, welcher die Möglichkeit bieten soll, während des Betriebes zwischen verschiedenen Geräten zu wechseln.

Im Folgenden sind die von LabJack bereitgestellten Methoden nicht aufgeführt.

class devices.UE9(*args, **kwargs)
computer_speed

Deprecated. Selfdriving car is now controlled via the Arduino.

power_off(*tracks)

Disables the power for the given tracks. Pass -1 to disable all.

power_on(*tracks)

Enables the power for the given tracks. Pass -1 to enable all.

sensor_state()

Returns the state of the sensors at the finish line.

The state is returned as a list with four booleans, one for each sensor. It uses the ports EIO0 - EIO3.

traffic_lights

Set the state of the traffic lights.

  • 0 = 0 red, 0 green
  • 1 = 1 red, 0 green
  • 2 = 2 red, 0 green
  • 3 = 3 red, 0 green
  • 4 = 0 red, 1 green

Uses ports FIO0 - FIO4

class devices.Virtual

Virtual device for testing purposes.

power_off(*tracks)

Disables the power for the given tracks. Pass -1 to disable all.

power_on(*tracks)

Enables the power for the given tracks. Pass -1 to enable all.

sensor_state()

Returns the state of the sensors at the finish line.

The state is returned as a list with four booleans, one for each sensor. It “activates” the sensors randomly.

traffic_lights

Set the state of the traffic lights.

  • 0 = 0 red, 0 green
  • 1 = 1 red, 0 green
  • 2 = 2 red, 0 green
  • 3 = 3 red, 0 green
  • 4 = 0 red, 1 green

Die Dokumentation der Pinbelegung befindet sich im Hardware Teil.

Vorheriges Thema

Spieler

Nächstes Thema

Grafische Oberfläche

Diese Seite